Term extraction for Russian language
Project description
Вдохновлённая topia.termextract библиотека для извлечения ключевых слов из текстов на русском языке, использующая pymorphy2 для морфологического анализа.
Использование
>>> from rutermextract import TermExtractor >>> term_extractor = TermExtractor() >>> text = u'Съешь ещё этих мягких французских булок да выпей же чаю.' >>> for term in term_extractor(text): >>> print term.normalized, term.count мягкие французские булки 1 чай 1
Извлеченные ключевые слова приводятся в нормальную форму и упорядочиваются от более важных к менее важным.
Возможные применения
Автоматическое присвоение тегов.
Вычисление похожести текстов на основе извлеченных ключевых слов.
Вызов библиотеки
Аргументы при вызове экземпляра класса TermExtractor:
text — текст.
(опционально) limit — максимальное количество извлечённых ключевых слов. По умолчанию ограничения нет.
(опционально) weight — функция для вычисления веса извлеченного ключевого слова. В нее передается объект типа Term. По умолчанию ключевые слова упорядочиваются по количеству употреблений, затем по количеству слов.
(опционально) strings — True, если результатом вызова должен быть список нормализованных строк. По умолчанию возвращается список объектов типа Term.
Term имеет следующие свойства: words (список слов), word_count (количество слов), normalized (тёрм в виде нормализованной строки), count — количество употреблений.
Пример использования функции веса
>>> from rutermextract import TermExtractor >>> term_extractor = TermExtractor() >>> text = ... >>> idf = ... # Словарь соответствия ключевых слов их обратным частотам. >>> terms = term_extractor(text, weight=lambda term: idf.get(term.normalized, 1.0) * term.count)
Зависимости
Качество работы
Библиотека извлекает ключевые слова на основе заранее заданных правил. К сожалению, на данный момент это единственный возможный вариант, поскольку для русского языка не существует открытого синтаксического корпуса, который можно использовать для обучения синтаксических моделей.
Основные проблемы:
Неполные правила. Например, сейчас не извлекаются ключевые слова, содержащие предлоги («вор в законе», «сосед по парте»). Эта проблема может решаться при дальнейшем развитии библиотеки, но правил, покрывающих все случаи всё равно быть не может.
Неоднозначность при морфологическом разборе. Сейчас она разрешается выбором наиболее вероятного варианта, что в некоторых случаях неверно. Проблема может проявляться как при извлечении ключевых слов, так и при их нормализации. (Например, из заголовка «Мальчика назвали в честь нападающего футбольного клуба» будет извлечена фраза «нападающий футбольный клуб».)
Ложные ключевые слова. Некоторые извлеченные фразы могут не являться на самом деле ключевыми. Размера текста не всегда бывает достаточно для того, чтобы отличить важные для текста слова от неважных, основываясь только на количестве употреблений. Поэтому необходимо использовать сторонние модели (например, tf-idf) для определения важности ключевых слов.
Обратная связь
Буду рад услышать предложения по улучшению или сообщения о багах в issues или по почте.
Лицензия
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file rutermextract-0.1.zip
.
File metadata
- Download URL: rutermextract-0.1.zip
- Upload date:
- Size: 15.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e4bf19fad6e3585a036b66a2c9173fbdbd9878c6efb8ea6c0678039b8ddf35ac |
|
MD5 | cbdcd638c4f567d47467bccfcffc4bda |
|
BLAKE2b-256 | 6773094d652001971366774ef4dc6317cd77707802bcd53035e38e29861cb80a |