На данном сайте используются 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 р.