ТМ, Quanteda, text2vec. Получить строки слева от термина в списке слов в соответствии с шаблоном регулярного выражения

Я хотел бы проанализировать большую папку текстов на наличие имен, адресов и телефонов на нескольких языках.

Им обычно предшествуют слова «Адрес», «Номер телефона», «Имя», «Компания», «Больница», «Доставщик». У меня будет словарь этих слов.

Мне интересно, подойдут ли инструменты для анализа текста идеально для этой работы. Я хотел бы создать корпус для всех этих документов, а затем найти тексты, которые соответствуют конкретным (я думаю о критериях регулярных выражений) справа или снизу от данной словарной статьи.

Есть ли такой синтаксис в пакетах интеллектуального анализа данных в R, т.е. чтобы получить строки справа или снизу от записи списка слов, строки, соответствующие определенному шаблону?

Если нет, то был бы более подходящий инструмент в R для выполнения этой работы?


person Jacek Kotowski    schedule 31.07.2017    source источник


Ответы (1)


На ум приходят два варианта с Quanteda:

  1. Используйте kwic со своим списком целевых шаблонов с окном, достаточно большим, чтобы зафиксировать размер после нужного термина. Это вернет data.frame, из которого вы можете использовать столбцы keyword и post для анализа. Вы также можете создать корпус непосредственно из этого объекта (corpus(mykwic)), а затем сосредоточиться на новой docvar post, которая будет содержать нужный вам текст.

  2. Используйте corpus_segment там, где вы используете целевой список слов для создания типа "tag", и все, что следует за этим тегом, до следующего тега, будет преобразовано в новый документ. Это работает хорошо, но его немного сложнее настроить, так как вам нужно будет правильно подобрать регулярное выражение для тега.

person Ken Benoit    schedule 31.07.2017