Время прочтения: 6 мин.
Ниже читай ответы на вопросы, заданные в ходе вебинара
В новостях про Путина неверно обработано имя собственное «Россия». Результат был «0», хотя ожидалось «1». Выглядит как ошибка
Ирина Богоявленская: Задача стояла в распознавании ФИО. Названия стран могут являться именованными сущностями, при необходимости можно обучить модель выявлять именно их.
Какими инструментами Вы пользуетесь?
Ирина Богоявленская: Я использовала язык программирования python и библиотеки: nltk, keras и sklearn.
В каком формате были исходные документы, как извлекали текст?
Ирина Богоявленская: Документы были представлены в виде текстовых файлов в формате txt. Текст извлекался с помощью стандартных инструментов из языка python.
Если человек поменял фамилию (напр.девушка вышла замуж), предусмотрено ли какое-либо соответствие старой и новой фамилии?
Ирина Богоявленская: В рамках нашей задачи это было не предусмотрено.
Какие BI — системы применимы в банковской сфере?
Ирина Богоявленская: Данный вопрос не относится к теме доклада. В банковской сфере применимы такие BI системы как: Oracle, Power BI, SAP BI и SAS BI. Описание BI-систем: https://mopinion.com/business-intelligence-bi-tools-overview/
- Приведите, пожалуйста, пару кейсов аудита, в которых использовали технологию.
Ответ: Осуществление поиска конкретного человека по ФИО среди набора распоряжений, а так же извлечение из текста приказа/распоряжения ответственных участников процедуры, то есть извлечение списка ФИО, указанных в документе.
- Насколько я понял, lstm по умолчанию использует сигма-функцию в качестве функции активизации. Пробовали выбирать что-нибудь более быстрое в вычислении, типа ReLu?
Ответ: Сигмойду нельзя заменить на другую функцию в LSTM, потому что ее цель нормировка значений от 0 до 1.
- Какие еще критерии оценки качества распознания можно использовать, кроме перечисленных Вами (полнота и точность).
Ответ: Для данной задачи лучше всего подходит F-мера.
- Модель учитывает, что ФИО пишутся с заглавной буквы? Или модель ищет только на основе сочетаний букв, которые были в обучающей выборке?
Ответ: Написано ли слово с заглавной буквы или нет безусловно является важным признаком для модели. ФИО, написанные с маленькой буквы, могут хуже улавливаться нейронной сетью.
- То есть, если будут ошибочно написаны ФИО с маленькой буквы, то модель пропустит такое слово и не пометит как ФИО?
Ответ: Это является ухудшающим фактором, фамилии, написанные с маленькой буквы, могут хуже улавливаться нейронной сетью.
- С чего начать новичкам?
Ответ: Для анализа естественного языка с помощью нейронных сетей могу посоветовать CS224n: Natural Language Processing with Deep Learning.
- Не проще было бы использовать регулярные выражения? задать маску ФИО, и запустить поиск?
Ответ: «Наташа» построена на регулярных выражениях. Но по результатам тестирования, результат вышел неудовлетворительным для решения нашей задачи, упускалось слишком много фамилий и имен, поэтому решено было попробовать создать нейронную сеть.
- F-метрика, имеется в виду, F-1?
Ответ: Я использовала F-2, так как больше внимания уделялось полноте.
- С разными окончаниями находит?
Ответ: Да, библиотека pymorphy2 приводит слова в начальную форму.
- Почему во входных векторах была пунктуация? Вы её не убираете на предобработке?
Ответ: Нет, пунктуация является важным признаком для нейронной сети в рамках этой задачи.
- Таким образом можно обрабатывать только текстовые файлы или скан-копии документов тоже?
Ответ: Вид исходных данных не имеет значения, от этого зависит лишь их обработка.
- Скажите, пожалуйста, ещё раз про датасет.
Ответ: Я использовала Nerus и сгенерированные организационно-распорядительные документы. Ссылка на dataset: https://github.com/natasha/nerus Для генерации приказов/распоряжений использовались шаблоны, в которые вставлялись случайные функции судов РФ и случайные, сгенерированные ФИО.
- Добрый день, всем участникам! Можно ли получить dataset и тескт программы на python.
Ответ: К сожалению, не могу предоставить текст программы. Ссылка на dataset: https://github.com/natasha/nerus
- Анализирует документы Office или может распознавать с документов pdf или других картинок
Ответ: Вид исходных данных не имеет значения, от этого зависит лишь их обработка. Для извлечения текста из сканов или других картинок могу посоветовать библиотеку pytesseract.
- Со скан образами документов не работает?
Ответ: Модель на вход получает тензор из слов, замененных на индексы. Исходный формат текста не имеет значения, от этого лишь зависит его обработка.
- Возможно ли извлечение информации из файлов в формате pdf?
Ответ: Да, могу посоветовать библиотеку pytesseract.
- Если не находит фамилию. то как-то формируется список не найденных фамилий?
Ответ: Формирование такого списка возможно только для размеченных данных.
- НЛТК умеет работать с русским языком?
Ответ: Да, подробнее о библиотеке nltk можно прочитать по ссылке: https://www.nltk.org/api/nltk.tokenize.html
- Если в PDF формате, какое качество требуется?
Ответ: Нужно пробовать, многое зависит от предобработки изображения.
- Справляется ли сеть с распознаванием различных вариаций имен (Наталья-Наталия), разговорными формами имен (Наташа), склонениями или прилагательными, указывающими на принадлежность к тому или иному ФИО?
Ответ: Да, если различные формы записи присутствуют в словаре.
- Есть ли возможность обрабатывать формат pdf?
Ответ: Вид исходных данных не имеет значения, от этого зависит лишь их обработка. Для извлечения текста из сканов или других картинок могу посоветовать библиотеку pytesseract.
- Можно попросить еще список обучающей литературы прислать.
Ответ: Для анализа естественного языка с помощью нейронных сетей могу посоветовать CS224n: Natural Language Processing with Deep Learning.
- Где можно обучиться?
Ответ: Для анализа естественного языка с помощью нейронных сетей могу посоветовать CS224n: Natural Language Processing with Deep Learning.
- Какой был размер vocabulary у LSTМки?
Ответ: Словарь насчитывает более 50 000 слов.
- Распознаётся ли фамилия из 1-2 букв? Такие фамилии бывают.
Ответ: Да, размер фамилии не имеет значения.
- Где можно взять обучающую литературу?
Ответ: Для анализа естественного языка с помощью нейронных сетей могу посоветовать CS224n: Natural Language Processing with Deep Learning.
- Вебинар для программистов и ИТ специалистов?
Ответ: Доклад будет интересен людям, которым приходится просматривать много документов на предмет наличия именованных сущностей, а также просто тем, кто хочет поближе познакомиться с задачей NER.
- Качество скана влияет на результат?
Ответ: Да, чем лучше качество скана, тем лучше удастся извлечь текст, а чем точнее извлечен текст, тем лучше сработает модель.
- Здравствуйте! Опоздал немного) есть ли где датасет с фио для обучения?
Ответ: Nerus содержит размеченные ФИО. Ссылка на dataset: https://github.com/natasha/nerus
- В чем отличие от elastiksearch?
Ответ: Elasticsearch не решает задачу NER. Безусловно это очень полезный инструмент, но найти ФИО в тексте документа не поможет.
- А как выглядит результат отработки запроса? Выдается список документов с ФИО?
Ответ: Модель на выходе выдает тензор размерности входного тензора с 0 и 1. Далее выходной тензор обрабатывается и выходит список документов и извлеченных ФИО.
- Распознаются ли фамилии, соответствующие словам существительным (на пример: Кузнец, Скворец и т.д.)?
Ответ: Да, но возможны как и ложно-положительные, так и ложно-отрицательные срабатывания.
- Можно ли сократить имя НАТА и вытянуть все имена Наталия, Наталья и тд.
Ответ: Да это возможно, но выходит за рамки задачи NER.
- Где можно взять библиотеку для обучения?
Ссылка на dataset: https://github.com/natasha/nerus
- Где лежит готовая реализация ЛСТМки для кераса, которую можно импортировать как модуль и использовать? Внутри кераса доступна?
Ответ: Слой LSTM лежит в модуле keras.layers. Однако для реализации модели требуется добавление дополнительных слоев (как минимум Embedding, Dense).
- Если клиент поменяет, например, фамилию или имя, то не сможет найти?
Ответ: Хранение данных о изменении фамилии или имени не требовалось в рамках нашей задачи.
- Ирина, а есть ли реализация на pytorch?
Ответ: Да, модуль LSTM входит в состав библиотеки PyTorch.
- Распознаются ли двойные фамилии?
Ответ: Да, это не является сложной задачей для нейронной сети. К тому же в datasete присутствовали фамилии, состоящие из двух слов.
- Я имела в виду, что мы не знаем, что менял клиент демографические данные или нет, что в таком случае учитывается изменение или нет?
Ответ: Хранение демографических данных о клиенте не требовалось в рамках нашей задачи.