In [1]:
%cd '/Users/max/Projects/Coreference/'


/Users/max/Projects/Coreference

In [2]:
%cd 'rucoref'
from anaphoralib.corpora import rueval
from anaphoralib.tagsets import multeast
from anaphoralib.tagsets.utils import same_grammemmes
from anaphoralib.experiments import mentionpair
from anaphoralib.experiments import coref_utils
from anaphoralib import utils
from anaphoralib.experiments import utils as exp_utils
%cd '..'
#%load_ext autoreload
#%autoreload 2

scorer_path = 'rucoref/external/reference-coreference-scorers/scorer.pl'


/Users/max/Projects/Coreference/rucoref
/Users/max/Projects/Coreference

Initialization


In [3]:
rucoref_train = rueval.RuCorefCorpus(multeast, rueval)
rucoref_test = rueval.RuCorefCorpus(multeast, rueval)

In [4]:
exp_utils.load_corpus(rucoref_train, 'Corpus-2015/Tokens.train.fixmorph.txt.parsed', 'Corpus-2015/Groups.train.txt')


Number of texts: 126
Number of GS texts: 126
Number of chains in a corpus: 2515
Number of words in all chains: 11453

In [5]:
exp_utils.load_corpus(rucoref_test, 'Corpus-2015/Tokens.test.fixmorph.txt.parsed', 'Corpus-2015/Groups.test.txt')


Number of texts: 55
Number of GS texts: 55
Number of chains in a corpus: 1123
Number of words in all chains: 5104

Defining the classifiers


In [6]:
class BaselineAllSingletonsClassifier(mentionpair.MentionPairClassifier):
    def pair_coreferent(self, pair, groups, words):
        return False

In [7]:
class BaselineAllInOneClassifier(mentionpair.MentionPairClassifier):
    def pair_coreferent(self, pair, groups, words):
        return True

In [8]:
class BaselineStrMatchClassifier(mentionpair.MentionPairClassifier):
    def pair_coreferent(self, pair, groups, words):
        is_pronoun = rucoref_test.tagset.pos_filters['pronoun'](pair[0])
        is_personal_pronoun = rucoref_test.tagset.extract_feature('person', pair[0]) in ('1', '2')
        
        return (not is_pronoun or is_personal_pronoun) and ' '.join(pair[0].lemma) == ' '.join(pair[1].lemma)

In [9]:
class BaselineHeadMatchClassifier(mentionpair.MentionPairClassifier):
    def pair_coreferent(self, pair, groups, words):
        is_pronoun = rucoref_test.tagset.pos_filters['pronoun'](pair[0])
        is_personal_pronoun = rucoref_test.tagset.extract_feature('person', pair[0]) in ('1', '2')
        
        return (not is_pronoun or is_personal_pronoun) and pair[0].lemma[pair[0].head] == pair[1].lemma[pair[1].head]

In [10]:
class BaselineHeadMatchProClassifier(mentionpair.MentionPairClassifier):
    def __init__(self, scorer_path):
        super(BaselineHeadMatchProClassifier, self).__init__(scorer_path)
        self.groups_match = lambda pair: pair[0].lemma[pair[0].head] == pair[1].lemma[pair[1].head]
    def pair_coreferent(self, pair, groups, words):
        tagset = rucoref_test.tagset
        
        is_pronoun = lambda w: tagset.pos_filters['pronoun'](w)
        is_deictic_pronoun = lambda w: tagset.extract_feature('person', w) in ('1', '2')
        
        number_agrees = lambda p: same_grammemmes('number', p, tagset)
        gender_agrees = lambda p: same_grammemmes('gender', p, tagset)
        
        if is_pronoun(pair[1]):
            heads = [np.words[np.head] if np.type != 'word' else np for np in pair]
            heads_indices = [words.index(head) for head in heads]

            nouns_agr_between = [word for word in words[heads_indices[0]+1:heads_indices[1]]
                                     if tagset.pos_filters['noun'](word)
                                     and number_agrees((word, pair[1]))
                                     and gender_agrees((word, pair[1]))
                                ]
        
        return (
                (is_deictic_pronoun(pair[0]) and self.groups_match(pair))
               or
                (not is_pronoun(pair[0]) and pair[0].lemma[pair[0].head] == pair[1].lemma[pair[1].head])
               or
               (
                not is_pronoun(pair[0]) and is_pronoun(pair[1])
                and number_agrees(pair)
                and gender_agrees(pair)
                and len(nouns_agr_between) == 0
               )
        )

In [11]:
class BaselineStrMatchProClassifier(BaselineHeadMatchProClassifier):
    def __init__(self, scorer_path):
        super(BaselineStrMatchProClassifier, self).__init__(scorer_path)
        self.groups_match = lambda pair: ' '.join(pair[0].lemma) == ' '.join(pair[1].lemma)

In [12]:
good_pronouns = {u'я', u'мы', 
                 u'ты', u'вы', 
                 u'он', u'она', u'оно', u'они', 
                 u'мой', 'наш', 
                 u'твой', u'ваш', 
                 u'его', u'ее', u'их',
                 u'себя', u'свой',
                 u'который'
                }
group_ok = lambda g: g.tag.startswith('N') or (g.tag.startswith('P') and g.lemma[0] in good_pronouns)

In [13]:
gs_mentions, gs_group_ids = coref_utils.get_gs_groups(rucoref_test)
gs_groups = gs_mentions

pred_mentions, pred_group_ids = coref_utils.get_pred_groups(rucoref_test, group_ok)
pred_groups = rucoref_test.groups

pred_mentions_gold_bound, pred_gold_bounds_ids = coref_utils.get_pred_groups_gold_boundaries(rucoref_test, group_ok)
pred_groups_gold_bound = rucoref_test.groups

In [14]:
print len(gs_mentions[1])
print len(pred_mentions[1])
print len(pred_mentions_gold_bound[1])


102
216
216

In [15]:
pred_mentions_gold_bound[0][:150]


Out[15]:
[Неприятности(Ncfpnn, 5),
 конце лета(Ncmsln, 30),
 лета(Ncnsgn, 37),
 старом деревенском доме(Ncmsln, 52),
 кривоногая такса Фунтик(Ncfsnn, 87),
 Фунтик(Ncmsnn, 104),
 Фунтика(Ncfsnn, 112),
 Москвы(Ncfsgn, 132),
 черный кот Степан(Ncmsny, 154),
 Степан(Npmsny, 165),
 крыльце(Ncnsln, 194),
 Он(P-3msnn, 228),
 растопыренную пятерню(Ncfsan, 237),
 всей силы(Ncfsgn, 290),
 обслюненной лапой(Ncfsin, 300),
 себя(P----gn, 320),
 ухом(Ncnsin, 328),
 Степан(Npmsny, 344),
 чей - то пристальный взгляд(Ncmsnn, 365),
 Он(P-3msnn, 392),
 лапой(Ncfsin, 416),
 ухо(Ncnsan, 438),
 Степана(Npmsgy, 449),
 Степана(Npmsgy, 449),
 злости(Ncfsgn, 469),
 Маленький рыжий пес(Ncmsny, 477),
 Одно ухо у него(Ncnsan, 510),
 него(P-3msgn, 521),
 любопытства(Ncnsgn, 549),
 пес(Ncmsny, 563),
 мокрым носом(Ncmsin, 576),
 Степану(Npmsdy, 592),
 этого загадочного зверя(Ncmsgy, 618),
 Степан(Npmsny, 670),
 Фунтика(Npmsay, 697),
 вывернутому уху(Ncnsdn, 708),
 Война(Ncfsnn, 731),
 тех пор(Ncfpgn, 759),
 Степана(Npmsgy, 779),
 Степана(Npmsgy, 779),
 всякую прелесть(Ncfsnn, 796),
 мордой о косяки дверей(Ncfsin, 864),
 косяки дверей(Ncmpan, 873),
 дверей(Ncfpgn, 892),
 солнце(Ncnsln, 916),
 колодца(Ncmsgn, 929),
 опаской(Ncfsin, 960),
 цыпочках(Ncmpln, 972),
 какое - нибудь дерево или забор(Ncnsnn, 1034),
 забор(Ncmsnn, 1058),
 Фунтика(Ncmsgn, 1089),
 Степана(Npmsgy, 1106),
 всех котов(Ncmpgy, 1121),
 твердые привычки(Ncfpan, 1140),
 Он(P-3msnn, 1158),
 утрам(Ncnpdn, 1170),
 заросший чистотелом сад(Ncmsan, 1185),
 сад(Ncmsan, 1205),
 старых яблонь воробьев(Ncfpgn, 1221),
 воробьев(Ncmpay, 1236),
 желтых бабочек - капустниц(Ncfpgy, 1253),
 капустниц(Ncfpgy, 1269),
 когти на скамье(Ncmpan, 1291),
 скамье(Ncfsln, 1311),
 сад(Ncmsan, 1351),
 земле(Ncfsdn, 1361),
 высокому забору , неизвестно зачем обтянутому заржавленной колючей проволокой и к тому же такому узкому(Ncmsdn, 1373),
 обтянутому заржавленной колючей проволокой(Ncfsin, 1407),
 временами(Ncnpin, 1484),
 Степан(Npmsny, 1494),
 лапу(Ncfsan, 1529),
 Степана(Npmsgy, 1557),
 Степана(Npmsgy, 1557),
 разные неприятности(Ncfpnn, 1572),
 он(P-3msnn, 1602),
 плотицу(Ncfsan, 1618),
 жабрах(Ncmpln, 1649),
 рыболовным крючком(Ncmsin, 1656),
 Степан(Npmsny, 1690),
 ему(P-3msdn, 1731),
 кривоногой собаки(Ncfsgy, 1767),
 крысу(Ncfsay, 1797),
 Степана(Npmsgy, 1808),
 Степана(Npmsgy, 1808),
 негодования(Ncnsgn, 1831),
 Один только раз(Ncmsan, 1850),
 все лето(Ncnsan, 1869),
 Степан(Npmsny, 1878),
 крыше(Ncfsln, 1894),
 дворе(Ncmsln, 1922),
 курчавой гусиной травы(Ncfsgn, 1937),
 деревянная миска с мутной водой(Ncfsnn, 1971),
 мутной водой(Ncfsin, 1991),
 нее(P-3fsan, 2009),
 корки черного хлеба для кур(Ncfsgn, 2021),
 черного хлеба для кур(Ncmsgn, 2028),
 кур(Ncfpgy, 2046),
 Фунтик(Npmsny, 2051),
 миске(Ncfsdn, 2068),
 воды(Ncfsgn, 2097),
 большую размокшую корку(Ncfsan, 2102),
 Сварливый голенастый петух(Ncmsny, 2133),
 Горлачом(Ncmsin, 2173),
 Фунтика(Npmsay, 2209),
 одним глазом(Ncmsin, 2217),
 голову(Ncfsan, 2246),
 другим глазом(Ncmsin, 2267),
 Петух(Ncmsny, 2282),
 бела дня(Ncmsgn, 2338),
 грабеж(Ncmsan, 2359),
 петух(Ncmsny, 2382),
 лапу(Ncfsan, 2396),
 его(P--msga, 2409),
 его(P--msga, 2409),
 кровью(Ncfsin, 2422),
 него(P-3msgn, 2440),
 петухе(Ncmsln, 2477),
 далекий гром(Ncmsnn, 2491),
 Степан(Npmsny, 2505),
 петух(Ncmsny, 2536),
 мозолистыми лапами(Ncfpin, 2591),
 петух(Ncmsny, 2613),
 Фунтика(Npmsay, 2632),
 его(P-3msan, 2652),
 спину(Ncfsan, 2659),
 короткий и крепкий стук(Ncmsnn, 2677),
 Фунтик(Npmsny, 2702),
 хлеб(Ncmsan, 2718),
 уши(Ncnpan, 2731),
 отчаянным воплем(Ncmsin, 2739),
 отдушину(Ncfsan, 2767),
 дом(Ncmsan, 2780),
 Петух(Ncmsny, 2791),
 крыльями(Ncnpin, 2815),
 густую пыль(Ncfsan, 2832),
 размокшую корку(Ncfsan, 2853),
 отвращением(Ncnsin, 2873),
 ее(P-3fsan, 2895),
 сторону(Ncfsan, 2901),
 корки(Ncfsgn, 2928),
 псиной(Ncfsin, 2940),
 Фунтик(Npmsny, 2954),
 домом(Ncmsin, 2976),
 несколько часов(Ncmpgn, 2982),
 вечеру(Ncmsdn, 3011),
 и сторонкой(Ncfsin, 3024),
 петуха(Ncmsgy, 3044),
 комнаты(Ncfpan, 3064),
 Морда(Ncfsnn, 3073),
 него(P-3msgn, 3082)]

In [16]:
gs_mentions_train, gs_group_ids_train = coref_utils.get_gs_groups(rucoref_train)
gs_groups_train = gs_mentions_train

pred_mentions_train, pred_group_ids_train = coref_utils.get_pred_groups(rucoref_train, group_ok)
pred_groups_train = rucoref_train.groups

pred_mentions_gold_bound_train, pred_gold_bounds_ids = coref_utils.get_pred_groups_gold_boundaries(rucoref_train, group_ok)
pred_groups_gold_bound_train = rucoref_train.groups

Testing the baseline classifiers:


In [17]:
coref_utils.get_score_table(BaselineAllInOneClassifier(scorer_path), rucoref_test, gs_mentions, gs_groups, False)
coref_utils.get_score_table(BaselineAllSingletonsClassifier(scorer_path), rucoref_test, gs_mentions, gs_groups, False)
coref_utils.get_score_table(BaselineStrMatchClassifier(scorer_path), rucoref_test, gs_mentions, gs_groups, False)
coref_utils.get_score_table(BaselineStrMatchProClassifier(scorer_path), rucoref_test, gs_mentions, gs_groups, False)
coref_utils.get_score_table(BaselineHeadMatchClassifier(scorer_path), rucoref_test, gs_mentions, gs_groups, False)
coref_utils.get_score_table(BaselineHeadMatchProClassifier(scorer_path), rucoref_test, gs_mentions, gs_groups, False)


\textsc{BaselineAllInOneClassifier} &  $99.89$  & $78.59$ & $99.84$ & $87.95$  & $13.48$ & $99.79$ & $23.76$  & $27.73$ \\
\textsc{BaselineAllSingletonsClassifier} &  $100.00$  & $0.00$ & $0.00$ & $0.00$  & $100.00$ & $22.15$ & $36.27$  & $22.15$ \\
\textsc{BaselineStrMatchClassifier} &  $100.00$  & $94.29$ & $37.36$ & $53.52$  & $97.09$ & $38.19$ & $54.82$  & $45.43$ \\
\textsc{BaselineStrMatchProClassifier} &  $100.00$  & $84.90$ & $52.42$ & $64.82$  & $89.34$ & $43.35$ & $58.37$  & $49.72$ \\
\textsc{BaselineHeadMatchClassifier} &  $100.00$  & $87.78$ & $47.06$ & $61.27$  & $92.11$ & $43.64$ & $59.22$  & $50.77$ \\
\textsc{BaselineHeadMatchProClassifier} &  $100.00$  & $84.89$ & $52.50$ & $64.87$  & $89.29$ & $43.38$ & $58.40$  & $49.76$ \\

In [18]:
coref_utils.get_score_table(BaselineAllInOneClassifier(scorer_path), rucoref_test, pred_mentions_gold_bound, pred_groups_gold_bound, False)
coref_utils.get_score_table(BaselineAllSingletonsClassifier(scorer_path), rucoref_test, pred_mentions_gold_bound, pred_groups_gold_bound, False)
coref_utils.get_score_table(BaselineStrMatchClassifier(scorer_path), rucoref_test, pred_mentions_gold_bound, pred_groups_gold_bound, False)
coref_utils.get_score_table(BaselineStrMatchProClassifier(scorer_path), rucoref_test, pred_mentions_gold_bound, pred_groups_gold_bound, False)
coref_utils.get_score_table(BaselineHeadMatchClassifier(scorer_path), rucoref_test, pred_mentions_gold_bound, pred_groups_gold_bound, False)
coref_utils.get_score_table(BaselineHeadMatchProClassifier(scorer_path), rucoref_test, pred_mentions_gold_bound, pred_groups_gold_bound, False)


\textsc{BaselineAllInOneClassifier} &  $50.49$  & $26.61$ & $88.90$ & $40.96$  & $1.71$ & $85.89$ & $3.36$  & $13.97$ \\
\textsc{BaselineAllSingletonsClassifier} &  $51.38$  & $0.00$ & $0.00$ & $0.00$  & $35.52$ & $20.84$ & $26.27$  & $12.12$ \\
\textsc{BaselineStrMatchClassifier} &  $51.38$  & $52.86$ & $32.29$ & $40.09$  & $33.54$ & $34.04$ & $33.79$  & $23.34$ \\
\textsc{BaselineStrMatchProClassifier} &  $51.19$  & $34.40$ & $45.46$ & $39.16$  & $26.89$ & $39.58$ & $32.02$  & $25.81$ \\
\textsc{BaselineHeadMatchClassifier} &  $51.19$  & $35.26$ & $41.38$ & $38.07$  & $29.57$ & $38.88$ & $33.59$  & $26.12$ \\
\textsc{BaselineHeadMatchProClassifier} &  $51.19$  & $34.40$ & $45.49$ & $39.18$  & $26.89$ & $39.58$ & $32.02$  & $25.81$ \\

In [30]:
coref_utils.get_score_table(BaselineAllInOneClassifier(scorer_path), rucoref_test, pred_mentions, pred_groups, False)
coref_utils.get_score_table(BaselineAllSingletonsClassifier(scorer_path), rucoref_test, pred_mentions, pred_groups, False)
coref_utils.get_score_table(BaselineStrMatchClassifier(scorer_path), rucoref_test, pred_mentions, pred_groups, False)
coref_utils.get_score_table(BaselineStrMatchProClassifier(scorer_path), rucoref_test, pred_mentions, pred_groups, False)
coref_utils.get_score_table(BaselineHeadMatchClassifier(scorer_path), rucoref_test, pred_mentions, pred_groups, False)
coref_utils.get_score_table(BaselineHeadMatchProClassifier(scorer_path), rucoref_test, pred_mentions, pred_groups, False)


\textsc{BaselineAllInOneClassifier} &  $37.66$  & $18.55$ & $65.65$ & $28.92$  & $1.04$ & $58.44$ & $2.04$  & $10.87$ \\
\textsc{BaselineAllSingletonsClassifier} &  $37.66$  & $0.00$ & $0.00$ & $0.00$  & $25.64$ & $15.66$ & $19.44$  & $10.52$ \\
\textsc{BaselineStrMatchClassifier} &  $37.66$  & $42.08$ & $23.35$ & $30.04$  & $23.96$ & $24.56$ & $24.26$  & $18.64$ \\
\textsc{BaselineStrMatchProClassifier} &  $37.66$  & $22.80$ & $31.42$ & $26.43$  & $18.21$ & $27.90$ & $22.04$  & $19.80$ \\
\textsc{BaselineHeadMatchClassifier} &  $37.66$  & $23.01$ & $28.23$ & $25.35$  & $21.01$ & $27.04$ & $23.65$  & $19.95$ \\
\textsc{BaselineHeadMatchProClassifier} &  $37.66$  & $22.82$ & $31.45$ & $26.45$  & $18.21$ & $27.90$ & $22.04$  & $19.80$ \\

In [19]:
scores, groups, chains_base = BaselineHeadMatchProClassifier(scorer_path).score(rucoref_test, 
                                                                                pred_mentions_gold_bound, 
                                                                                pred_groups_gold_bound, 
                                                                                metrics=('muc',), heads_only=False)

In [29]:
coref_utils.print_chains_in_text(rucoref_test, 1, chains_base, pred_mentions_gold_bound)


-- SYS --
Мальчик:мальчик(Ncmsny, 17)
он:он(P-3msnn, 58)

школу:школа(Ncfsan, 43)
новую хорошую школу:новый хороший школа(Ncfsan, 323)
новую хорошую школу:новый хороший школа(Ncfsan, 323)
этой школы:этот школа(Ncfsgn, 570)
этой школы:этот школа(Ncfsgn, 570)
прежней школе:прежний школа(Ncfsln, 607)
новую школу с гуманитарным уклоном:новый школа с гуманитарный уклон(Ncfsan, 801)
музыкальную школу:музыкальный школа(Ncfsan, 872)
новую школу:новый школа(Ncfsan, 2411)
музыкальной школы:музыкальный школа(Ncfsgn, 3636)
музыкальной школы:музыкальный школа(Ncfsgn, 3993)
музыкальной школы:музыкальный школа(Ncfsgn, 3993)
школу:школа(Ncfsan, 4475)

метро:метро(Ncnsln, 84)
метро:метро(Ncnsln, 893)

две остановки на троллейбусе ( трудный путь:два остановка на троллейбус ( трудный путь(Ncfsgn, 126)
две остановки на автобусе:два остановка на автобус(Ncfsgn, 904)

троллейбусе ( трудный путь:троллейбус ( трудный путь(Ncmsln, 143)
троллейбусе:троллейбус(Ncmsln, 939)

трудный путь:трудный путь(Ncmsnn, 156)
этот путь:этот путь(Ncmsan, 3272)
Он:он(P-3msnn, 3283)

три вида транспорта и десять минут пешком - - такова:три вид транспорт и десять минута пешком - - таков(Ncmsgn, 250)
трех видах транспорта:три вид транспорт(Ncmpln, 2387)

транспорта и десять минут:транспорт и десять минута(Ncmsgn, 259)
транспорта:транспорт(Ncmsgn, 2398)

мальчика:мальчик(Ncmsgy, 386)
Мальчик:мальчик(Ncmsny, 843)
мальчик:мальчик(Ncmsny, 1089)
мальчик:мальчик(Ncmsny, 1327)
Мальчик:мальчик(Ncmsny, 2122)
Он:он(P-3msnn, 2160)

ребенок:ребенок(Ncmsny, 421)
ребенка:ребенок(Ncmsgy, 1681)
своего:свой(P--msga, 1692)

даже один раз:даже один раз(Ncmsan, 2818)
его:он(P-3msan, 2840)

Тугие соображения насчет химии и физики:тугой соображение насчет химия и физика(Ncnpnn, 3145)
Они:они(P-3-pnn, 3384)

мать:мать(Ncfsny, 520)
Она:она(P-3fsnn, 526)

Мальчик:мальчик(Ncmsny, 3348)
него:он(P-3msgn, 3427)

дорога:дорога(Ncfsnn, 780)
дорога настоящего мужчины:дорога настоящий мужчина(Ncfsnn, 3315)

гуманитарным уклоном:гуманитарный уклон(Ncmsin, 815)
гуманитарный уклон:гуманитарный уклон(Ncmsnn, 2439)
друг с детского садика:друг с детский садик(P---snn, 2478)

перемене:перемена(Ncfsln, 3456)
грядущих перемен , тяжелых , нелогичных , беспричинных изменений:грядущий перемена , тяжелый , нелогичный , беспричинный изменение(Ncfpgn, 4719)

Мальчик:мальчик(Ncmsny, 3495)
Мальчик:мальчик(Ncmsny, 4217)
Я:я(P-1-snn, 4238)
Я:я(P-1-snn, 4280)

неделю:неделя(Ncfsan, 961)
уже неделю:уже неделя(Ncfsan, 4032)

красивая и любимая учительница по сольфеджио:красивый и любимый учительница по сольфеджио(Ncfsny, 994)
которая:который(P--fsna, 1040)

сольфеджио:сольфеджио(Ncnsdn, 1028)
сольфеджио:сольфеджио(Ncnsan, 1476)

вечером:вечер(Ncmsin, 3625)
поздний вечер:поздний вечер(Ncmsan, 4524)

детьми:дитя(Ncnpiy, 1069)
дети:дитя(Ncnpny, 1249)
детей сверхнапряжения:дитя сверхнапряжения(Ncnpgy, 1982)

оперу:опера(Ncfsan, 1076)
опера:опера(Ncfsnn, 2076)
их оперу:они опера(Ncfsan, 2175)
свою:свой(P--fsaa, 2186)

сне:сон(Ncmsln, 3737)
сном:сон(Ncmsin, 3765)
он:он(P-3msnn, 3770)

несколько раз:несколько раз(Ncmsan, 3773)
Ему:он(P-3msdn, 3860)

мамой:мама(Ncfsiy, 1142)
маме:мама(Ncfsdy, 3529)
маму:мама(Ncfsay, 3800)
мама:мама(Ncfsny, 3899)
Мама:мама(Ncfsny, 4339)
Маме:мама(Ncfsdy, 4642)

ноги:нога(Ncfpan, 3843)
Ноги:нога(Ncfpnn, 4302)

этих уроках:этот урок(Ncmpln, 1388)
уроки:урок(Ncmpan, 3674)

музыкальные диктанты:музыкальный диктант(Ncmpan, 1590)
Обычные диктанты:обычный диктант(Ncmpnn, 2005)

учительницы:учительница(Ncfsgy, 1624)
Она:она(P-3fsnn, 1654)

мальчик:мальчик(Ncmsny, 4539)
Его:его(P--msga, 4584)

своего класса:свой класс(Ncmsgn, 1692)
Его:его(P-3msan, 1718)

этих наполеоновских планов:этот наполеоновский план(Ncmpgn, 1765)
горячие планы:горячий план(Ncmpan, 2631)

свою партию:свой партия(Ncfsan, 2186)
свою партию:свой партия(Ncfsan, 2186)
которую:который(P--fsaa, 2199)

Утром:утро(Ncnsin, 2290)
Утром:утро(Ncnsin, 3558)

отец:отец(Ncmsny, 2312)
отцу:отец(Ncmsdy, 3546)
он:он(P-3msnn, 3564)

Мальчик:мальчик(Ncmsny, 2330)
Мальчик:мальчик(Ncmsny, 2508)
Мальчик:мальчик(Ncmsny, 2616)
мальчика:мальчик(Ncmsgy, 2967)
Мальчика:мальчик(Ncmsay, 3192)
ним:он(P-3msin, 3241)

дому:дом(Ncmsgn, 2349)
дому:дом(Ncmsgn, 3578)

все перемены:весь перемена(Ncfpnn, 2516)
они:они(P-3-pnn, 2565)

классом этого друга:класс это друг(Ncmsin, 2540)
собственный класс мальчика:собственный класс мальчик(Ncmsan, 2949)

год:год(Ncmsan, 2577)
год:год(Ncmsan, 2657)
Он:он(P-3msnn, 2702)

экзамены:экзамен(Ncmpan, 2668)
ними:они(P-3-pin, 2696)

фортепьяно:фортепьяно(Ncnsdn, 4077)

педагог по фортепьяно:педагог по фортепьяно(Ncmsny, 4066)

той , продвинутой и почти гуманитарной школки:тот , продвинуть и почти гуманитарный школка(Ncfsgn, 4128)

заботливая и милая женщина:заботливый и милый женщина(Ncfsny, 4089)

роль:роль(Ncfsan, 1105)

такой новостью:такой новость(Ncfsin, 4368)

автобусе:автобус(Ncmsln, 921)

коридоре:коридор(Ncmsln, 2858)

младше - классника:молодой - классника(Afcmsnf, 2798)

всякого гуманитарного уклона:всякий гуманитарный уклон(Ncmsgn, 2999)

Че:че(Npmsny, 2895)

нему:он(P-3msdn, 2761)

окрестных дворов:окрестный двор(Ncmpgn, 3042)

сборная окрестных дворов:сборная окрестный двор(Ncfsnn, 3034)

посещений:посещение(Ncnpgn, 2788)

их:они(P-3-pan, 2705)

серьезные восьмиклассники:серьезный восьмиклассник(Ncmpny, 2589)

квартире:квартира(Ncfsdn, 4436)

другая преподавательница:другой преподавательница(Ncfsny, 1728)

пижамке:пижамке(Ncfsln, 4575)

кровати:кровать(Ncfsln, 4555)

Его небольшие глаза:его небольшой глаз(Ncmpan, 4584)

терпение:терпение(Ncnsnn, 1636)

Зрачки:зрачок(Ncmpnn, 4614)

результате:результат(Ncmsln, 1573)

Пение , двухголосие по учебнику:пение , двухголосие по учебник(Ncnsnn, 2084)

учебнику:учебник(Ncmsdn, 2106)

двухголосие по учебнику:двухголосие по учебник(Ncnsan, 2091)

ночами:ночь(Ncfpin, 2138)

тумаки , мат:тумак , мат(Ncmpnn, 3132)

тем же образом , три вида транспорта и десять минут пешком - - такова:то же образ , три вид транспорт и десять минута пешком - - таков(Ncmsin, 234)

вино:вино(Ncnsnn, 3118)

Плевки , тумаки , мат:плевок , тумак , мат(Ncmpnn, 3124)

Спорт , драки , вино:спорт , драка , вино(Ncmsnn, 3104)

драки , вино:драка , вино(Ncfpnn, 3111)

ребята неграмотные и не понимающие алгебры:ребята неграмотный и не понимать алгебра(Ncmpnn, 3060)

алгебры:алгебра(Ncfsgn, 3095)

маршрутном такси:маршрутном такси(Ncnsln, 100)

химии и физики:химия и физика(Ncfsgn, 3170)

легко возбудимая натура:легко возбудимая натура(Ncfsnn, 1336)

основной предмет:основной предмет(Ncmsan, 1454)

радости:радость(Ncfsgn, 1273)

декорациях:декорация(Ncfpln, 1295)

костюмах:костюм(Ncmpln, 1309)

материал ( довольно сложный:материал ( довольно сложный(Ncmsan, 1513)

небыстрый темп:небыстрый темп(Ncmsnn, 2023)

чувством юмора:чувство юмор(Ncnsin, 1902)

юмора:юмор(Ncmsgn, 1911)

весь район:весь район(Ncmsan, 1808)

сверхнапряжения:сверхнапряжения(Ncnsgn, 1988)

педагогический талант:педагогический талант(Ncmsnn, 1918)

Новая учительница:новый учительница(Ncfsny, 1948)

себя:себя(P----an, 3296)

физики:физика(Ncfsgn, 3178)

Новенький:новенький(Ncmsny, 3246)

настоящего мужчины:настоящий мужчина(Ncmsgy, 3322)

десять минут:десять минута(Ncfpgn, 272)

перехода в новую хорошую школу:переход в новый хороший школа(Ncmsgn, 312)

обожаемый старший друг мальчика , еще с детского садика:обожать старший друг мальчик , еще с детский садик(Ncmsny, 363)

детского садика:детский садик(Ncmsgn, 402)

всю весну:весь весна(Ncfsan, 472)

Они:они(P-3-pnn, 3412)

все деньги:весь деньги(Ncmpan, 3432)

туалет на перемене:туалет на перемена(Ncmsan, 3446)

предчувствие чего:предчувствие что(Ncnsnn, 4679)

Сознание грядущих перемен , тяжелых , нелогичных , беспричинных изменений:сознание грядущий перемена , тяжелый , нелогичный , беспричинный изменение(Ncnsnn, 4710)

какой - то холод:какой - то холод(Ncmsnn, 4647)

кожу:кожа(Ncfsan, 4673)

тяжелых , нелогичных , беспричинных изменений:тяжелый , нелогичный , беспричинный изменение(Ncnpgn, 4737)

целый день:целый день(Ncmsan, 3601)

мат:мат(Ncmsnn, 3140)

широким жестом:широкий жест(Ncmsin, 762)

поле:поле(Ncnsln, 756)

пахарь в поле:пахарь в поле(Ncmsny, 747)

зимней темноте:зимний темнота(Ncfsln, 2369)

муках:мука(Ncfpln, 2217)

похвалы:похвала(Ncfpan, 2240)

его:его(P-3msan, 2296)

новая математичка:новый математичка(Ncfsny, 698)

двойки:двойка(Ncfpan, 735)

Родители:родитель(Ncmpny, 489)

просвещенному директору этой школы:просвещенный директор этот школа(Ncmsdy, 546)

классная руководительница:классный руководительница(Ncfsny, 663)

ребенок:ребенок(Ncmsny, 4014)

бьши:бьши(Ncfsgn, 1226)

Репетиции бьши:репетиция бьши(Ncfpnn, 1216)

отцу:отец(Ncmsdy, 3904)

Глупости:глупость(Ncfpnn, 3952)

рогами:рог(Ncmpin, 1178)

шапочку с рогами:шапочка с рог(Ncfsan, 1168)

резинке:резинке(Ncfsln, 1207)

бороду:борода(Ncfsan, 1197)

Козла:козел(Ncmsgy, 1129)

две арии Козла:два ария козел(Mcf-a, 1120)

они:они(P-3-pnn, 1136)



-- GS --
педагог по фортепьяно:педагог по фортепьяно(Ncmsny, 4066)
заботливая и милая женщина:заботливый и милый женщина(Ncfsny, 4089)

музыкальную школу:музыкальный школа(Ncfsan, 872)
музыкальной школы:музыкальный школа(Ncfsgn, 3636)
музыкальной школы:музыкальный школа(Ncfsgn, 3993)

отец:отец(Ncmsny, 2312)
отцу:отец(Ncmsdy, 3546)
отцу:отец(Ncmsdy, 3904)

Новенький:новенький(Ncmsny, 3246)
Он:он(P-3msnn, 3283)
себя:себя(P----an, 3296)

собственный класс мальчика:собственный класс мальчик(Ncmsan, 2949)
сборная окрестных дворов:сборная окрестный двор(Ncfsnn, 3034)
ребята неграмотные и не понимающие алгебры:ребята неграмотный и не понимать алгебра(Ncmpnn, 3060)
Они:они(P-3-pnn, 3384)
Они:они(P-3-pnn, 3412)

классом этого друга:класс это друг(Ncmsin, 2540)
они:они(P-3-pnn, 2565)
серьезные восьмиклассники:серьезный восьмиклассник(Ncmpny, 2589)
ними:они(P-3-pin, 2696)
их:они(P-3-pan, 2705)

обожаемый старший друг мальчика , еще с детского садика:обожать старший друг мальчик , еще с детский садик(Ncmsny, 363)
друг с детского садика:друг с детский садик(P---snn, 2478)
этого друга:это друг(P---san, 2548)
этот друг:этот друг(P---snn, 2725)

две арии Козла:два ария козел(Mcf-a, 1120)
свою партию:свой партия(Ncfsan, 2186)
которую:который(P--fsaa, 2199)

оперу:опера(Ncfsan, 1076)
опера:опера(Ncfsnn, 2076)
их оперу:они опера(Ncfsan, 2175)

детьми:дитя(Ncnpiy, 1069)
дети:дитя(Ncnpny, 1249)

другая преподавательница:другой преподавательница(Ncfsny, 1728)
Новая учительница:новый учительница(Ncfsny, 1948)

красивая и любимая учительница по сольфеджио:красивый и любимый учительница по сольфеджио(Ncfsny, 994)
которая:который(P--fsna, 1040)
учительницы:учительница(Ncfsgy, 1624)
Она:она(P-3fsnn, 1654)
своего:свой(P--msga, 1692)
та:тот(P--fsna, 1861)
педагогический талант:педагогический талант(Ncmsnn, 1918)
той:тот(P--fsga, 2039)

новую хорошую школу:новый хороший школа(Ncfsan, 323)
этой школы:этот школа(Ncfsgn, 570)
новую школу с гуманитарным уклоном:новый школа с гуманитарный уклон(Ncfsan, 801)
новую школу:новый школа(Ncfsan, 2411)
той , продвинутой и почти гуманитарной школки:тот , продвинуть и почти гуманитарный школка(Ncfsgn, 4128)
школу:школа(Ncfsan, 4475)

мать:мать(Ncfsny, 520)
Она:она(P-3fsnn, 526)
мамой:мама(Ncfsiy, 1142)
маме:мама(Ncfsdy, 3529)
маму:мама(Ncfsay, 3800)
мама:мама(Ncfsny, 3899)
тебе:ты(P-2-sdn, 4243)
Мама:мама(Ncfsny, 4339)
Маме:мама(Ncfsdy, 4642)

Мальчик:мальчик(Ncmsny, 17)
он:он(P-3msnn, 58)
мальчика:мальчик(Ncmsgy, 386)
ребенок:ребенок(Ncmsny, 421)
Мальчик:мальчик(Ncmsny, 843)
мальчик:мальчик(Ncmsny, 1089)
мальчик:мальчик(Ncmsny, 1327)
легко возбудимая натура:легко возбудимая натура(Ncfsnn, 1336)
ребенка:ребенок(Ncmsgy, 1681)
Его:его(P-3msan, 1718)
Мальчик:мальчик(Ncmsny, 2122)
Он:он(P-3msnn, 2160)
свою:свой(P--fsaa, 2186)
его:его(P-3msan, 2296)
Мальчик:мальчик(Ncmsny, 2330)
Мальчик:мальчик(Ncmsny, 2508)
Мальчик:мальчик(Ncmsny, 2616)
Он:он(P-3msnn, 2702)
нему:он(P-3msdn, 2761)
младше - классника:молодой - классника(Afcmsnf, 2798)
его:он(P-3msan, 2840)
ты:ты(P-2-snn, 2925)
мальчика:мальчик(Ncmsgy, 2967)
Мальчика:мальчик(Ncmsay, 3192)
ним:он(P-3msin, 3241)
Мальчик:мальчик(Ncmsny, 3348)
него:он(P-3msgn, 3427)
Мальчик:мальчик(Ncmsny, 3495)
он:он(P-3msnn, 3564)
он:он(P-3msnn, 3770)
Мне:я(P-1-sdn, 3807)
Ему:он(P-3msdn, 3860)
ребенок:ребенок(Ncmsny, 4014)
Мальчик:мальчик(Ncmsny, 4217)
Я:я(P-1-snn, 4238)
мне:я(P-1-sdn, 4261)
Я:я(P-1-snn, 4280)
Ты:ты(P-2-snn, 4420)
Ты:ты(P-2-snn, 4446)
мальчик:мальчик(Ncmsny, 4539)
Его:его(P--msga, 4584)

сольфеджио:сольфеджио(Ncnsdn, 1028)
основной предмет:основной предмет(Ncmsan, 1454)
сольфеджио:сольфеджио(Ncnsan, 1476)