Skip to content
 
 

Latest commit

 

History

11 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

ru_punkt

Russian language support for NLTK's PunktSentenceTokenizer

Python 2.7 Python 3x

Instalation

  1. Install NLTK python package:
pip install nltk
  1. Download punkt data:
import nltk
nltk.download('punkt')
  1. Download ru_punkt:
git clone https://github.com/Mottl/ru_punkt.git
  1. Copy Russian tokenizer into nltk_data folder (ensure the appropriate location for your OS):
cp -r ru_punkt/nltk_data ~/nltk_data

Usage

import nltk

text = "Ай да А.С. Пушкин! Ай да сукин сын!"
print("Before:", nltk.sent_tokenize(text))
print("After:", nltk.sent_tokenize(text, language="russian"))

or

import nltk
tokenizer = nltk.data.load('tokenizers/punkt/russian.pickle')
text = "Ай да А.С. Пушкин! Ай да сукин сын!"
print("Before:", nltk.sent_tokenize(text))
print("After:", tokenizer.tokenize(text))

Output:

Before: ['Ай да А.С.', 'Пушкин!', 'Ай да сукин сын!']
After: ['Ай да А.С. Пушкин!', 'Ай да сукин сын!']

Training data

Data for sentence tokenization was taken from 3 sources:
– Articles from Russian Wikipedia (about 1 million sentences);
– Common Russian abbreviations from Russian orthographic dictionary, edited by V. V. Lopatin;
– Generated names initials.

Implementation notes

After some research it was found that the single params.abbrev_types performs better than together with params.collocations and params.ortho_content, so the latter were removed from the trained tokenizer.

About

Russian language support for NLTK's PunktSentenceTokenizer

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors