Skip to content

Instantly share code, notes, and snippets.

View menzenski's full-sized avatar

Matt Menzenski menzenski

View GitHub Profile
@menzenski
menzenski / RusTokenizer
Created September 12, 2013 04:02
tokenizes Russian text
#! /usr/bin/env python
# -*- coding: utf-8 -*-
import nltk
import codecs
from urllib import urlopen
def print_list(mylist):
'''Print a list containing unicode characters.'''
print '[' + ', '.join(
@menzenski
menzenski / RusTokenizerResults
Created September 12, 2013 04:04
results of tokenizing Russian text
139942
31179
[Мастер, и, Маргарита, Мастер, и, Маргарита, Михаил, Булгаков, , Москва, 1984, г., Текст, печатается, в, последней, прижизнен-, ной, редакции, (, рукописи, хранятся, в, руко-, писном, отделе, Государственной, библио-, теки, СССР, имени, В., И., Ленина, ), ,, а, также, с, исправлениями, и, дополнениями, ,, сделан-, ными, под, диктовку, писателя, его, женой, ,, Е., С., Булгаковой., Содержание, глава, I., Никогда, не, разговаривайте, с, неизвестными, /, 9, глава, II., Понтий, Пилат, /, 23, глава, III., седьмое, доказательство, /, 49, глава, IV., Погоня, /, 55, глава, V., Было, дело, в, грибоедове, /, 63, глава, VI., Шизофрения, ,, как, и, было, сказано, /, 77, глава, VII., Нехорошая, квартирка, /, 87, глава, VIII., Поединок, между, профессором, и, поэтом, /, 99, глава, IX., Коровьевские, штуки, /, 109, глава, X., Вести, из, Ялты, /, 119, глава, XI., раздвоение, ивана, /, 131, глава, XII., Черная, магия, и, ее, разоблачение, /, 135, глава, XIII., Явление, героя, /, 151, глава, XIV., слава, петуху,
# possible endings of diminutive stems
diminutive_endings = (
# first degree of expressiveness
#u"к",
u"ик",
u"чик",
u"ок", #u"ек",
u"ец", u"иц",
u"енок", u"онок", u"еныш",
u"инк", u"инок",
лиц 202
буфетчик 72
наконец 66
ник 66
лестниц 44
аннушк 41
улиц 34
милиц 33
пок 33
маленьк 31
from nltk.stem import SnowballStemmer
stemmer = SnowballStemmer("russian")
stemlist = []
for item in tokens:
barestem = stemmer.stem(unicode(item))
stemlist.append(barestem)
# possible endings of diminutive stems
diminutive_endings = (
# first degree of expressiveness
#u"к",
u"ик",
u"чик",
u"ок", #u"ек",
u"ец", u"иц",
u"енок", u"онок", u"еныш",
u"инк", u"инок",
diminutives = []
for word in stemlist:
if word.endswith(diminutive_endings):
diminutives.append(word)
from nltk import FreqDist
dim_fd = FreqDist(diminutives)