На данном сайте используются cookie-файлы и аналогичные технологии. Если, прочитав это сообщение, вы остаетесь на сайте, это означает, что вы не возражаете против использования этих технологий.
Подробнее Хорошо
vk pixel Заказать звонок
Извлекаем сущности!

Блог

24. 05. 2017г.
0

Введение

Существует достаточно много решений, которые позволяют извлекать так называемые "именованные сущности" из текста - например, определять в тексте что есть обозначение места, персоны, или организации. Для примера мы возьмем python-библиотеку polyglot (она работает с распространенной версией 2.7, если есть умение готовить python3 - рекомендую пакет "natasha").

Заодно вспомним очень старую технологию Common Gateway Interface (позволяющую запускать скрипты на сервере): отметьте в управлении хостингом галку Enable CGI и разрешите запускать файлы ".py".

Установка polyglot

Зайдем в корневую директорию сайта и в поддиректории cgi-bin выполним команды:

$ PYTHONUSERBASE=`pwd`/.pip pip install --user polyglot
$ PYTHONPATH=`pwd`/.pip/lib/python2.7/site-packages ./.pip/bin/polyglot \
download embeddings2.ru ner2.ru

Код распознавания

Ради примера возьмем описание новостей из RSS-потока сайта lenta.ru. Создадим исполняемый файл скрипта:


$ touch parse.py; chmod +x parse.py


и запишем в него следующий (весьма самобъясняющий для знающих английский язык код):


Запуск и результаты

Достаточно запустить через строку браузер http://yoursite.ru/cgi-bin/parse.py, чтобы получить что-то подобное:

words
(на этом рисунке с мелким текстом перечислены извлеченные именованные сущности:)).

Заключение

Учтите, для выполнения словарного (с помощью polyglot) разбора на сущности может понадобится прилично ресурсов сервера, а сама точность разбора может оказаться не очень высокой. У polyglot словари размечены на основе Wikipedia. Однако для ряда автоматизированных аналитических систем уже достаточно и этого.

Помимо словарного разбора также есть и статистический, например Lingvo NER (он уже на C#).
Назад
В корзине 0 товаров на 0 р.