Задача: извлечь ключевые выражения из текста на русском языке. NLP на Python |
||
МЕНЮ Искусственный интеллект Поиск Регистрация на сайте Помощь проекту ТЕМЫ Новости ИИ Искусственный интеллект Разработка ИИГолосовой помощник Городские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Слежка за людьми Угроза ИИ ИИ теория Внедрение ИИКомпьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Распознавание лиц Распознавание образов Распознавание речи Техническое зрение Чат-боты Авторизация |
2019-09-21 05:23 Что было нужно в самом начале:
Полагаю, что неявно с проблемой многие сталкиваются ежедневно, после написания или анализа статьи, поста, комментария, заметки, отчета и т.д. Вот и мне по роду деятельности приходилось сталкиваться с данной проблемой по многу раз в день. Поэтому, можно сказать, к идее автоматизации меня привела «лень», в хорошем смысле этого слова. Сейчас, когда я пишу эту статью, сохранилась идея, но набор данных конечного результата сильно изменился:
Результаты работы ПО nrlpk (Natural Russian Language Processing by the Keys) подготавливают данные для:
Качество Чтобы не тянуть через всю статью тех, кто верит только цифрам, а не словам и тем, кто ожидает стопроцентного качества и другого не приемлет…
С полным списком статей, на которых шло тестирование, и развернутой статистикой результатов можно ознакомиться на GitHub. Что конкретно повлияло на качество результата в каждой статье, можно посмотреть в файле Reasons на GitHub. Как читать результаты В каждой папке для конкретной анализируемой статьи лежит 5 файлов с набором данных в юникоде:
И reasons_quality.txt – (необязательный) список выражений из статьи, отобранных вручную и не попавших в ключи, или попавших некорректно (по мнению автора nrlpk). Как читать эти файлы можно узнать из файла Legend на GitHub. nrlpk позволяет получить любой набор данных в одном из следующих форматов:
Методика тестирования
Инструменты nrlpk написан на Python 3.7.0. Уже в процессе проработки будущего ПО nrlpk появились два обязательных требования:
Эти требования поставили под сомнение использование NLTK и pymorphy2, которые могли бы решить часть стоящих задач. Для снятия сомнений была проведена ручная маркировка выборки текстов из СМИ, взятых с крупнейшего русскоязычного агрегатора новостей по тематике ВПК – ВПК.Name. Анализ маркировки выявил:
Кроме того, уже на данном этапе стала очевидной необходимость сбора и хранения разнообразной статистической информации об обрабатываемых объектах. С учетом этих факторов, в качестве базового пакета работы с данными был выбран Pandas, который помимо описанных выше задач позволил проводить пакетную лемматизацию. После анализа доступных для работы словарей русского языка за основу был взят OpenCorpora, к слову использующийся и в pymorphy2. Он подвергся трансформации в форму удобную для работы с Pandas, после чего из него выделены следующие словари:
Словари сохранены юникоде, в простом текстовом формате для управления из любой внешней программы. Поскольку основа для словарей в nrlpk и pymorphy2 идентична, то и обозначение частей речи (граммем) является идентичным. Число маркеров (нестандартных граммем) на данный момент составляет 16 и большинство из них, если маркированные выражения не состоят из нескольких слов, помимо маркера, имеют ещё и обозначение части речи базовой граммемы. Обозначение совпадающих маркеров (нестандартных граммем) с pymorphy2 идентично, в частности:
К слову, для выражений, содержащих числовые данные, в nrlpk, помимо NUMB и ROMN дополнительно используются следующие маркеры:
Что такое ключевое выражение, состоящее из нескольких слов? На примере NUSR:
Зачем понадобились describe к словам и ключам Сначала это было нужно для проверки работы алгоритмов nrlpk – не потерялись ли слова, не прошло ли лишнего объединения, какова доля ключей в тексте и т.д.
Анализ взаимного сочетания показателей статистики, может быть не менее интересен, например:
Для чего всё это написано nrlpk находится в состоянии готовности к работе с текущими показателями качества обработки русских текстов, но не предоставляется как сервис. Автор имеет четкие и понятные направления развития в сторону повышения процента качества и стабилизации этого процента. Для развития этой задачи требуется стратегический инвестор и/или новый правообладатель готовый к дальнейшему развитию проекта к обозначенным целям. P.S. Метки к этому (начальному — на Хабре чуть изменен) тексту (приведены ниже) автоматически сгенерированы nrlpk со следующими параметрами:
С детальными данными результата обработки nrlpk этой статьи, можно познакомиться на GitHub. Автор: avl33 Источник: habr.com Комментарии: |
|