Skip to content
Russian text segmenter and tokenizer
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
rutokenizer Пересборка словарной базы после чистки от составных существительных May 10, 2019
.gitignore Initial commit Jan 22, 2019
LICENSE Initial commit Jan 22, 2019
README.md
setup.py Пересборка словарной базы после чистки от составных существительных May 10, 2019

README.md

rutokenizer - инструменты для сегментации и токенизации русскоязычного текста с исправлением ошибок

Пакет содержит набор классов, которые умеют выделать предложения из текста (сегментация) и разбивать предложения на слова (токенизация) с учетом многословных единиц текста типа "из-за" или "какой-то".

Код рассчитан на быстрое прототипирование NLP приложений, допуская простую кастомизацию алгоритма токенизации путем модификации исходного текста. Разумеется, скорость работы данного токенизатора меньше, чем вариантов на C++.

Код написан для Питона 2й и 3й ветки, работает в Windows и Linux.

Установка

Наберите в консоли, возможно потребуется sudo:

pip install git+https://github.com/Koziev/rutokenizer

В комплект входят "батарейки" - файлы данных с правилами для многословных элементов, получаемых из Грамматического Словаря.

API

Для токенизации необходимо создать экземпляр класса rutokenizer.Tokenizer, вызвать у него метод load() для загрузки словарной информации, необходимой для правильной работы с многословными единицами. Далее нужно вызывать метод tokenize, передавая ему юникодную строку предложения и получая список слов.

Если кроме текстового содержания слов нужны их посимвольные позиции в исходной строке, то надо использовать метод tokenize2. Он вернет кортежи (слово, позиция_начала, позиция_конца+1).

Примеры

Токенизация предложения:

import rutokenizer

t = rutokenizer.Tokenizer()
t.load()
t.tokenize(u'Я-то из-за угла вышел.')

for t in t.tokenize(u'Я-то из-за угла вышел.'):
    print(u'{}'.format(t)

Результат работы:

Я
-
то
из-за
угла
вышел
.
You can’t perform that action at this time.