Files
Lexema-RPA_Studio_Docs/docs/text_analysis.md
karamovavv 284df07994 5.11.0.1
2021-05-19 18:51:46 +05:00

175 lines
12 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# МОДУЛИ ДЛЯ РАБОТЫ С ТЕКСТОМ
## Модуль «Обработка текста»
Модуль «Обработка текста» предлагает несколько методов сравнения текста.
В некоторых задачах требуется знание о том, как сильно различен текст
между эталонным и указанным. Это задачи, относящиеся к компьютерной
лингвистике и искусственному интеллекту.
### Интерфейс модуля
Окно модуля состоит из части составления команды, кнопок управления
командами и списком команд в виде таблицы. Часть составления команды
состоит из следующих полей: выпадающий список «Действие» с доступным
набором методов анализа текста, два поля «Строка 1» и «Строка 2»,
предназначенные для ввода двух строк текста или переменных, содержащих
текст, и поле «Переменная результат» - для названия переменной, в
которую будет помещен результат работы модуля.
<center><img src="../media/image301.png" style="width:4.33544in;height:4.49904in" /></center>
<center>Рис. 1. Окно модуля</center>
По кнопке «Добавить» созданная команда поместится в таблицу «Список
команд». Для редактирования команды из списка нужно выбрать её в
таблице, изменить необходимые поля и нажать на кнопку «Редактировать».
Для удаления команды нужно выбрать ее в списке и нажать на кнопку
«Удалить». С помощью стрелочек в углу таблицы можно менять команды
местами.
### Методы анализа текста
В модуле предложены следующие методы анализа текста:
1. **Расстрояние Левенштейна** рассчитывает разницу между двумя
> строками. Например «Lexema RPA» и «Lexema SR» отличаются на 3
> символа слова «Lexema» совпадают полностью, остальные символы
> различны, то есть результат, записанный в переменную, будет равен
> 3;
2. **3-граммы** метод, основанный на работе с n-граммами, в нашем
> случае n=3 оценивается схожесть каждых 3 символов. Чем больше
> число (до 1), тем большую схожесть имеют строки. В примере «Lexema
> RPA» и «Lexema SR» результатом будет число 0,52.
3. **Сходство Джаро-Винклера** мера схожести строк для измерения
> расстояния между двумя последовательностями символов. Чем меньше
> расстояние Джаро-Винклера для двух строк, тем больше сходства
> имеют эти строки друг с другом. Для примера «Lexema RPA» и «Lexema
> SR» результатом будет число 0,5.
## Модуль «Распознавание текста»
Модуль «Распознавание текста» предназначен для считывания текста с
указанного изображения и представления полученного текста в виде
объекта.
### Интерфейс модуля
Модуль состоит из двух полей «Путь к файлу» и «Переменная», и флажка
«Скриншот».
<center><img src="../media/image302.png" style="width:4.07792in;height:1.9344in" /></center>
<center>Рис. 2. Окно модуля</center>
**Поле «Путь к файлу».** Заполняется путем до файла, который необходимо
распознать. Это может быть картинка или PDF-документ.
**Поле «Переменная».** Заполняется названием переменной, начиная с
символов «v.», в которую будет помещен результат распознавания.
**Флажок «Скриншот»**. Флажок ставится, когда необходимо распознать
скриншот экрана в момент работы данного модуля в процессе выполнения
робота. В таком случае поле «Путь к файлу» указывать не нужно.
Структура результирующего объекта массив листов документа, каждый
элемент которого объект, состоящий из двух полей number и words.
Поле number содержит в себе номер листа документа (с 1-цы), поле words
представляет собой массив объектов всех слов со страницы. Структура
объекта слова value, x, y, page. В value содержится слово, в x и y
координаты слова x и y соответственно, в page номер страницы, на
котором содержится слово.
**ПРИМЕР.**
Пусть имеется следующее изображение формата jpeg. Подадим его в модуль
распознавания текста.
<center><img src="../media/image303.png" style="width:3.66621in;height:1.46857in" /></center>
<center>Рис. 3. Изображение, поданное на распознавание текста</center>
Результат, записанный в переменную при распознавании изображения:
<center><img src="../media/image304.png" style="width:4.46169in;height:4.15584in" /></center>
<center>Рис. 4. Пример заполнения переменной</center>
Результат содержит информацию о страницах, координате и значении каждого
слова изображения.
Пример получения некоторого слова со второго листа документа:
v.text\[1\].words\[100\].value, где v.text переменная, в которую
записан результат работы модуля, \[1\] номер листа в документе
(нумерация по переменным-спискам начинается с 0), \[100\] 101-ое слово
в файле, value само значение слова.
## Модуль «Распознавание текста ABBYY»
Модуль «Распознавание текста ABBYY» работает, в основном, с PDF-файлами.
В отличие от предыдущего модуля имеет более высокую точность и скорость
работы.
Результат распознавания записывается в переменную-объект, в которой
можно обратиться к конкретной строке, таблице, слову.
### Интерфейс модуля
Данный модуль состоит из двух полей «Путь к PDF-файлу» и «Переменная».
<center><img src="../media/image305.png" style="width:4.37819in;height:1.67675in" /></center>
<center>Рис. 5. Окно модуля</center>
**Поле «Путь к PDF файлу».** В поле указывается путь до распознаваемого
файла/картинки.
**Поле «Переменная»**. В поле вводится имя переменной, начиная с
символов «v.», в которую будет занесен результат распознавания.
PDF файл может состоять из нескольких страниц, поэтому переменная будет
являться списком страниц. Например, v.text\[0\] первая распознанная
страница файла.
Весь распознанный текст делится на две части основной текст и
табличная часть.
### Основной текст
Для обращения к тексту, необходимо обращаться к полю **rows\_word\[0\]**
(в данной записи \[0\] означает, что идет обращение к первой текстовой
части, в других версиях ABBYY возможно использование большего разбиения
текста). Затем указывается, как отдельное поле, номер строки и, через
точку, номер слова в строке **v.text\[0\].rows\_word\[0\].2.4**.
Затем, после выбора нужного слова, можно получить его значение,
обратившись к полю value **v.text\[0\].rows\_word\[0\].2.4.value**
такая строка выдаст значение слова, находящегося на первой странице
распознанного документа, во второй строке и является четвертой слева.
### Табличная часть
Для обращения к таблице, необходимо обращаться к полю **tables\[0\]**
(\[0\] нужен для корректной работы, его смысловая часть заложена в
продукте ABBYY). Затем отдельным полем вводится номер таблицы, так как
на странице их может быть несколько **v.text\[0\].tables\[0\].0**.
После этого вводится номер ячейки в таблице в виде одного числа. Если вы
хотите найти ячейку и знаете её номер колонки и строки, то можно
получить индекс рассматриваемой ячейки переменной в виде
«строка,колонка», обратившись к полю index
**v.text\[0\].tables\[0\].0.5.index** (5 пятая ячейка в массиве
распознанных ячеек). Для получения значения из ячейки нужно обратиться к
её значению, а затем либо собрать всю строку, записанную в ячейку, либо
обратиться к конкретному слову по его порядковому номеру
**v.text\[0\].tables\[0\].0.5.value.1.value** значение второго слова
из пятой ячейки первой таблицы с первой страницы распознанного текста.
Для получения количества ячеек в таблице используйте следующую
конструкцию **v.text\[0\].tables\[0\].0.length**, то есть используйся
метод «length» после того поля, после которого идет поле, количество
элементов которого необходимо узнать.
Для получения количества слов в ячейке используйте
**v.text\[0\].tables\[0\].0.5.length**.