dictionary update
This commit is contained in:
parent
856334c75b
commit
54456546c7
@ -1,4 +1,4 @@
|
||||
Номер;Слово;Род / число;Есть единственное число;Есть множественное число;Есть стандартное множественное число;Есть стандартное множественное число, полученное путем удаления последней гласной из базы;Есть стандартное окончание множественного числа;"Есть альтернативное окончание множественного числа ""а/я""";Специальные мн. числа;Может быть одушевленным;Может быть неодушевленным;Специальная форма падежа;1
|
||||
Номер;Слово;Род / число;Есть единственное число;Есть множественное число;Есть стандартное или альтернативное множественное число, без удаления гласных;Есть стандартное или альтернативное множественное число, полученное путем удаления последней гласной из базы;Есть стандартное окончание множественного числа;"Есть альтернативное окончание множественного числа ""а/я""";Специальные мн. числа;Может быть одушевленным;Может быть неодушевленным;Специальная форма падежа;1
|
||||
307;любовь;ж;1;0;0;0;0;0;;0;1;;1
|
||||
338;помощь;ж;1;0;0;0;0;0;;0;1;;1
|
||||
589;борьба;ж;1;0;0;0;0;0;;0;1;;1
|
||||
@ -40,6 +40,71 @@
|
||||
1791;давление;с;1;0;0;0;0;0;;0;1;;1
|
||||
1971;жильё;с;1;0;0;0;0;0;;0;1;;1
|
||||
1987;пиво;с;1;0;0;0;0;0;;0;1;;1
|
||||
301;мать;ж;1;1;0;0;0;0;матери;1;0;;1
|
||||
834;дочь;ж;1;1;0;0;0;0;дочери;1;0;;1
|
||||
71;день;м;1;1;0;1;1;0;;0;1;;1
|
||||
106;друг;м;1;1;0;0;0;0;друзья;1;0;;1
|
||||
110;глаз;м;1;1;1;0;0;1;;0;1;;1
|
||||
118;дом;м;1;1;1;0;0;1;;0;1;;1
|
||||
137;ребенок;м;1;1;0;0;0;0;ребята;1;0;;1
|
||||
142;конец;м;1;1;0;1;1;0;;0;1;;1
|
||||
156;город;м;1;1;1;0;0;1;;0;1;;1
|
||||
192;отец;м;1;1;0;1;1;0;;1;0;;1
|
||||
221;голос;м;1;1;1;0;0;1;;0;1;;1
|
||||
280;уровень;м;1;1;0;1;1;0;;0;1;;1
|
||||
295;вечер;м;1;1;1;0;0;1;;0;1;;1
|
||||
314;век;м;1;1;1;0;0;1;;0;1;;1
|
||||
328;порядок;м;1;1;0;1;1;0;;0;1;;1
|
||||
365;рынок;м;1;1;0;1;1;0;;0;1;;1
|
||||
495;палец;м;1;1;0;1;0;0;;0;1;;1
|
||||
512;лес;м;1;1;1;0;0;1;;0;1;;1
|
||||
542;брат;м;1;1;0;0;0;0;братья;1;0;;1
|
||||
548;номер;м;1;1;1;0;1;1;;0;1;;1
|
||||
553;гражданин;м;1;1;0;0;0;0;граждане;1;0;;1
|
||||
576;край;м;1;1;1;0;0;1;;0;1;;1
|
||||
625;рисунок;м;1;1;0;1;1;0;;0;1;;1
|
||||
664;хозяин;м;1;1;0;0;0;0;хозяева;1;0;;1
|
||||
692;берег;м;1;1;1;0;0;1;;0;1;;1
|
||||
697;цвет;м;1;1;1;0;0;1;;0;1;;1
|
||||
752;господин;м;1;1;0;0;0;0;господа;1;0;;1
|
||||
769;сон;м;1;1;0;1;1;0;;0;1;;1
|
||||
816;участок;м;1;1;0;1;1;0;;0;1;;1
|
||||
847;ветер;м;1;1;0;1;1;1;;0;1;;1
|
||||
849;парень;м;1;1;0;1;1;0;;1;0;;1
|
||||
855;огонь;м;1;1;0;1;1;0;;0;1;;1
|
||||
901;рот;м;1;1;0;1;1;0;;0;1;;1
|
||||
910;камень;м;1;1;0;1;1;0;;0;1;;1
|
||||
953;снег;м;1;1;1;0;0;1;;0;1;;1
|
||||
962;немец;м;1;1;0;1;1;0;;1;0;;1
|
||||
1060;учитель;м;1;1;1;0;0;1;;1;0;;1
|
||||
1150;десяток;м;1;1;0;1;1;0;;0;1;;1
|
||||
1254;список;м;1;1;0;1;1;0;;0;1;;1
|
||||
1278;остров;м;1;1;1;0;0;1;;0;1;;1
|
||||
1324;цветок;м;1;1;0;1;1;0;;0;1;;1
|
||||
1406;стул;м;1;1;0;0;1;0;стулья;0;1;;1
|
||||
1505;образец;м;1;1;0;1;1;0;;0;1;;1
|
||||
1574;американец;м;1;1;0;1;1;0;;1;0;;1
|
||||
1575;лоб;м;1;1;0;1;1;0;;0;1;;1
|
||||
1590;бок;м;1;1;1;0;0;1;;0;1;;1
|
||||
1599;кусок;м;1;1;0;1;1;0;;0;1;;1
|
||||
1606;звонок;м;1;1;0;1;1;0;;0;1;;1
|
||||
1624;подарок;м;1;1;0;1;1;0;;0;1;;1
|
||||
1639;смех;м;1;1;1;0;0;1;;0;1;;1
|
||||
1874;лев;м;1;1;0;1;1;0;;1;0;;1
|
||||
1892;корень;м;1;1;0;1;1;0;;0;1;;1
|
||||
1907;владелец;м;1;1;0;1;1;0;;1;0;;1
|
||||
1928;лед;м;1;1;0;1;1;0;;0;1;;1
|
||||
1940;недостаток;м;1;1;0;1;1;0;;0;1;;1
|
||||
1972;мешок;м;1;1;0;1;1;0;;0;1;;1
|
||||
1984;дворец;м;1;1;0;1;1;0;;0;1;;1
|
||||
52;время;с;1;1;0;0;0;0;времена;0;1;;1
|
||||
239;имя;с;1;1;0;0;0;0;имена;0;1;;1
|
||||
452;плечо;с;1;1;0;0;1;0;плечи;0;1;;1
|
||||
600;небо;с;1;1;0;0;0;0;небеса;0;1;;1
|
||||
860;ухо;с;1;1;0;0;0;0;уши;0;1;;1
|
||||
1447;чудо;с;1;1;0;0;0;0;чудеса;0;1;;1
|
||||
1528;вино;с;1;1;0;0;0;0;вины;0;1;;1
|
||||
1782;крыло;с;1;1;0;0;0;0;крылья;0;1;;1
|
||||
66;жизнь;ж;1;1;1;0;1;0;;0;1;;1
|
||||
74;рука;ж;1;1;1;0;1;0;;0;1;;1
|
||||
87;работа;ж;1;1;1;0;1;0;;0;1;;1
|
||||
@ -73,7 +138,6 @@
|
||||
292;улица;ж;1;1;1;0;1;0;;0;1;;1
|
||||
299;мысль;ж;1;1;1;0;1;0;;0;1;;1
|
||||
300;дорога;ж;1;1;1;0;1;0;;0;1;;1
|
||||
301;мать;ж;1;1;0;0;0;0;матери;1;0;;1
|
||||
309;мама;ж;1;1;1;0;1;0;;1;0;;1
|
||||
315;школа;ж;1;1;1;0;1;0;;0;1;;1
|
||||
318;цель;ж;1;1;1;0;1;0;;0;1;;1
|
||||
@ -144,7 +208,6 @@
|
||||
808;площадь;ж;1;1;1;0;1;0;;0;1;;1
|
||||
823;линия;ж;1;1;1;0;1;0;;0;1;;1
|
||||
830;губа;ж;1;1;1;0;1;0;;0;1;;1
|
||||
834;дочь;ж;1;1;0;0;0;0;дочери;1;0;;1
|
||||
836;среда;ж;1;1;1;0;1;0;;0;1;;1
|
||||
862;грудь;ж;1;1;1;0;1;0;;0;1;;1
|
||||
869;услуга;ж;1;1;1;0;1;0;;0;1;;1
|
||||
@ -313,36 +376,23 @@
|
||||
1985;забота;ж;1;1;1;0;1;0;;0;1;;1
|
||||
28;год;м;1;1;1;0;1;1;;0;1;;1
|
||||
39;человек;м;1;1;1;0;1;0;люди;1;0;;1
|
||||
71;день;м;1;1;0;1;1;0;;0;1;;1
|
||||
106;друг;м;1;1;0;0;0;0;друзья;1;0;;1
|
||||
110;глаз;м;1;1;0;0;0;1;;0;1;;1
|
||||
114;вопрос;м;1;1;1;0;1;0;;0;1;;1
|
||||
118;дом;м;1;1;0;0;0;1;;0;1;;1
|
||||
128;мир;м;1;1;1;0;1;0;;0;1;;1
|
||||
137;ребенок;м;1;1;0;0;0;0;ребята;1;0;;1
|
||||
142;конец;м;1;1;0;1;1;0;;0;1;;1
|
||||
145;вид;м;1;1;1;0;1;0;;0;1;;1
|
||||
156;город;м;1;1;0;0;0;1;;0;1;;1
|
||||
192;отец;м;1;1;0;1;1;0;;1;0;;1
|
||||
200;час;м;1;1;1;0;1;0;;0;1;;1
|
||||
212;образ;м;1;1;1;0;1;0;;0;1;;1
|
||||
217;закон;м;1;1;1;0;1;0;;0;1;;1
|
||||
220;бог;м;1;1;1;0;1;0;;1;0;;1
|
||||
221;голос;м;1;1;0;0;0;1;;0;1;;1
|
||||
235;результат;м;1;1;1;0;1;0;;0;1;;1
|
||||
237;стол;м;1;1;1;0;1;0;;0;1;;1
|
||||
252;народ;м;1;1;1;0;1;0;;0;1;;1
|
||||
260;процесс;м;1;1;1;0;1;0;;0;1;;1
|
||||
261;суд;м;1;1;1;0;1;0;;0;1;;1
|
||||
274;путь;м;1;1;1;0;1;0;;0;1;;1
|
||||
280;уровень;м;1;1;0;1;1;0;;0;1;;1
|
||||
295;вечер;м;1;1;0;0;0;1;;0;1;;1
|
||||
303;месяц;м;1;1;1;0;1;0;;0;1;;1
|
||||
306;язык;м;1;1;1;0;1;0;;0;1;;1
|
||||
308;взгляд;м;1;1;1;0;1;0;;0;1;;1
|
||||
314;век;м;1;1;0;0;0;1;;0;1;;1
|
||||
326;президент;м;1;1;1;0;1;0;;1;0;;1
|
||||
328;порядок;м;1;1;0;1;1;0;;0;1;;1
|
||||
329;момент;м;1;1;1;0;1;0;;0;1;;1
|
||||
330;театр;м;1;1;1;0;1;0;;0;1;;1
|
||||
343;рубль;м;1;1;1;0;1;0;;0;1;;1
|
||||
@ -350,7 +400,6 @@
|
||||
354;орган;м;1;1;1;0;1;0;;0;1;;1
|
||||
357;труд;м;1;1;1;0;1;0;;0;1;;1
|
||||
360;сын;м;1;1;1;0;1;0;;1;0;;1
|
||||
365;рынок;м;1;1;0;1;1;0;;0;1;;1
|
||||
374;разговор;м;1;1;1;0;1;0;;0;1;;1
|
||||
394;центр;м;1;1;1;0;1;0;;0;1;;1
|
||||
396;ответ;м;1;1;1;0;1;0;;0;1;;1
|
||||
@ -370,26 +419,20 @@
|
||||
479;проект;м;1;1;1;0;1;0;;0;1;;1
|
||||
484;директор;м;1;1;1;0;1;1;;1;0;;1
|
||||
494;срок;м;1;1;1;0;1;0;;0;1;;1
|
||||
495;палец;м;1;1;0;1;0;0;;0;1;;1
|
||||
496;опыт;м;1;1;1;0;1;0;;0;1;;1
|
||||
512;лес;м;1;1;0;0;0;1;;0;1;;1
|
||||
517;состав;м;1;1;1;0;1;0;;0;1;;1
|
||||
522;член;м;1;1;1;0;1;0;;1;1;;1
|
||||
528;объект;м;1;1;1;0;1;0;;0;1;;1
|
||||
529;зал;м;1;1;1;0;1;0;;0;1;;1
|
||||
536;период;м;1;1;1;0;1;0;;0;1;;1
|
||||
538;шаг;м;1;1;1;0;1;0;;0;1;;1
|
||||
542;брат;м;1;1;0;0;0;0;братья;1;0;;1
|
||||
548;номер;м;1;1;0;0;1;1;;0;1;;1
|
||||
550;пример;м;1;1;1;0;1;0;;0;1;;1
|
||||
553;гражданин;м;1;1;0;0;0;0;граждане;1;0;;1
|
||||
557;начальник;м;1;1;1;0;1;0;;1;0;;1
|
||||
559;рост;м;1;1;1;0;1;0;;0;1;;1
|
||||
563;принцип;м;1;1;1;0;1;0;;0;1;;1
|
||||
569;метод;м;1;1;1;0;1;0;;0;1;;1
|
||||
570;тип;м;1;1;1;0;1;0;;0;1;;1
|
||||
571;фильм;м;1;1;1;0;1;0;;0;1;;1
|
||||
576;край;м;1;1;0;0;0;0;края;0;1;;1
|
||||
579;гость;м;1;1;1;0;1;0;;1;0;;1
|
||||
588;характер;м;1;1;1;0;1;0;;0;1;;1
|
||||
593;размер;м;1;1;1;0;1;0;;0;1;;1
|
||||
@ -400,24 +443,20 @@
|
||||
609;герой;м;1;1;1;0;1;0;;1;0;;1
|
||||
612;доллар;м;1;1;1;0;1;0;;0;1;;1
|
||||
616;пол;м;1;1;1;0;1;0;;0;1;;1
|
||||
625;рисунок;м;1;1;0;1;1;0;;0;1;;1
|
||||
629;банк;м;1;1;1;0;1;0;;0;1;;1
|
||||
650;союз;м;1;1;1;0;1;0;;0;1;;1
|
||||
653;врач;м;1;1;1;0;1;0;;1;0;;1
|
||||
655;договор;м;1;1;1;0;1;1;;0;1;;1
|
||||
661;факт;м;1;1;1;0;1;0;;0;1;;1
|
||||
664;хозяин;м;1;1;0;0;0;0;хозяева;1;0;;1
|
||||
676;телефон;м;1;1;1;0;1;0;;0;1;;1
|
||||
681;двор;м;1;1;1;0;1;0;;0;1;;1
|
||||
685;писатель;м;1;1;1;0;1;0;;1;0;;1
|
||||
686;самолёт;м;1;1;1;0;1;0;;0;1;;1
|
||||
687;объём;м;1;1;1;0;1;0;;0;1;;1
|
||||
689;род;м;1;1;1;0;1;1;;0;1;;1
|
||||
692;берег;м;1;1;0;0;0;1;;0;1;;1
|
||||
693;спектакль;м;1;1;1;0;1;0;;0;1;;1
|
||||
695;способ;м;1;1;1;0;1;0;;0;1;;1
|
||||
696;завод;м;1;1;1;0;1;0;;0;1;;1
|
||||
697;цвет;м;1;1;0;0;0;1;;0;1;;1
|
||||
699;журнал;м;1;1;1;0;1;0;;0;1;;1
|
||||
700;руководитель;м;1;1;1;0;1;0;;1;0;;1
|
||||
701;специалист;м;1;1;1;0;1;0;;1;0;;1
|
||||
@ -430,12 +469,10 @@
|
||||
736;стих;м;1;1;1;0;1;0;;0;1;;1
|
||||
737;автомобиль;м;1;1;1;0;1;0;;0;1;;1
|
||||
747;поэт;м;1;1;1;0;1;0;;1;0;;1
|
||||
752;господин;м;1;1;0;0;0;0;господа;1;0;;1
|
||||
756;предмет;м;1;1;1;0;1;0;;0;1;;1
|
||||
759;вариант;м;1;1;1;0;1;0;;0;1;;1
|
||||
760;министр;м;1;1;1;0;1;0;;1;0;;1
|
||||
765;дух;м;1;1;1;0;1;0;;0;1;;1
|
||||
769;сон;м;1;1;0;1;1;0;;0;1;;1
|
||||
772;ум;м;1;1;1;0;1;0;;0;1;;1
|
||||
773;повод;м;1;1;1;0;1;0;;0;1;;1
|
||||
774;старик;м;1;1;1;0;1;0;;1;0;;1
|
||||
@ -449,7 +486,6 @@
|
||||
801;текст;м;1;1;1;0;1;0;;0;1;;1
|
||||
812;возраст;м;1;1;1;0;1;0;;0;1;;1
|
||||
815;участник;м;1;1;1;0;1;0;;1;0;;1
|
||||
816;участок;м;1;1;0;1;1;0;;0;1;;1
|
||||
818;пункт;м;1;1;1;0;1;0;;0;1;;1
|
||||
826;папа;м;1;1;1;0;1;0;;1;0;;1
|
||||
829;доктор;м;1;1;1;0;1;1;;1;0;;1
|
||||
@ -457,10 +493,7 @@
|
||||
839;солдат;м;1;1;1;0;1;0;;1;0;;1
|
||||
840;художник;м;1;1;1;0;1;0;;1;0;;1
|
||||
842;волос;м;1;1;1;0;1;0;;0;1;;1
|
||||
847;ветер;м;1;1;0;1;1;1;;0;1;;1
|
||||
849;парень;м;1;1;0;1;1;0;;1;0;;1
|
||||
853;генерал;м;1;1;1;0;1;0;;1;0;;1
|
||||
855;огонь;м;1;1;0;1;1;0;;0;1;;1
|
||||
863;нос;м;1;1;1;0;1;0;;0;1;;1
|
||||
868;страх;м;1;1;1;0;1;0;;0;1;;1
|
||||
877;продукт;м;1;1;1;0;1;0;;0;1;;1
|
||||
@ -469,17 +502,13 @@
|
||||
884;сад;м;1;1;1;0;1;0;;0;1;;1
|
||||
888;сотрудник;м;1;1;1;0;1;0;;1;0;;1
|
||||
893;курс;м;1;1;1;0;1;0;;0;1;;1
|
||||
901;рот;м;1;1;0;1;1;0;;0;1;;1
|
||||
910;камень;м;1;1;0;1;1;0;;0;1;;1
|
||||
913;рассказ;м;1;1;1;0;1;0;;0;1;;1
|
||||
914;контроль;м;1;1;1;0;1;0;;0;1;;1
|
||||
934;фонд;м;1;1;1;0;1;0;;0;1;;1
|
||||
939;лист;м;1;1;1;0;1;0;;0;1;;1
|
||||
950;бюджет;м;1;1;1;0;1;0;;0;1;;1
|
||||
953;снег;м;1;1;0;0;0;1;;0;1;;1
|
||||
956;мужик;м;1;1;1;0;1;0;;1;0;;1
|
||||
959;элемент;м;1;1;1;0;1;0;;0;1;;1
|
||||
962;немец;м;1;1;0;1;1;0;;1;0;;1
|
||||
965;источник;м;1;1;1;0;1;0;;0;1;;1
|
||||
977;выбор;м;1;1;1;0;1;0;;0;1;;1
|
||||
981;итог;м;1;1;1;0;1;0;;0;1;;1
|
||||
@ -497,7 +526,6 @@
|
||||
1049;праздник;м;1;1;1;0;1;0;;0;1;;1
|
||||
1052;читатель;м;1;1;1;0;1;0;;1;0;;1
|
||||
1055;актер;м;1;1;1;0;1;0;;1;0;;1
|
||||
1060;учитель;м;1;1;0;0;0;1;;1;0;;1
|
||||
1061;акт;м;1;1;1;0;1;0;;0;1;;1
|
||||
1070;показатель;м;1;1;1;0;1;0;;0;1;;1
|
||||
1072;корабль;м;1;1;1;0;1;0;;0;1;;1
|
||||
@ -522,7 +550,6 @@
|
||||
1136;чай;м;1;1;1;0;1;0;;0;1;;1
|
||||
1137;режим;м;1;1;1;0;1;0;;0;1;;1
|
||||
1139;вирус;м;1;1;1;0;1;0;;0;1;;1
|
||||
1150;десяток;м;1;1;0;1;1;0;;0;1;;1
|
||||
1153;студент;м;1;1;1;0;1;0;;1;0;;1
|
||||
1157;поиск;м;1;1;1;0;1;0;;0;1;;1
|
||||
1160;налог;м;1;1;1;0;1;0;;0;1;;1
|
||||
@ -539,11 +566,9 @@
|
||||
1239;артист;м;1;1;1;0;1;0;;1;0;;1
|
||||
1246;сосед;м;1;1;1;0;1;0;;1;0;;1
|
||||
1251;субъект;м;1;1;1;0;1;0;;0;1;;1
|
||||
1254;список;м;1;1;0;1;1;0;;0;1;;1
|
||||
1256;журналист;м;1;1;1;0;1;0;;1;0;;1
|
||||
1257;май;м;1;1;1;0;1;0;;0;1;;1
|
||||
1269;долг;м;1;1;1;0;1;0;;0;1;;1
|
||||
1278;остров;м;1;1;0;0;0;1;;0;1;;1
|
||||
1280;противник;м;1;1;1;0;1;0;;1;0;;1
|
||||
1288;житель;м;1;1;1;0;1;0;;1;0;;1
|
||||
1300;храм;м;1;1;1;0;1;0;;0;1;;1
|
||||
@ -553,7 +578,6 @@
|
||||
1313;университет;м;1;1;1;0;1;0;;0;1;;1
|
||||
1318;адрес;м;1;1;1;0;1;1;;0;1;;1
|
||||
1319;декабрь;м;1;1;1;0;1;0;;0;1;;1
|
||||
1324;цветок;м;1;1;0;1;1;0;;0;1;;1
|
||||
1327;лидер;м;1;1;1;0;1;0;;0;1;;1
|
||||
1328;октябрь;м;1;1;1;0;1;0;;0;1;;1
|
||||
1332;сентябрь;м;1;1;1;0;1;0;;0;1;;1
|
||||
@ -570,7 +594,6 @@
|
||||
1396;март;м;1;1;1;0;1;0;;0;1;;1
|
||||
1398;клиент;м;1;1;1;0;1;0;;1;0;;1
|
||||
1403;фронт;м;1;1;1;0;1;0;;0;1;;1
|
||||
1406;стул;м;1;1;0;0;1;0;стулья;0;1;;1
|
||||
1420;музей;м;1;1;1;0;1;0;;0;1;;1
|
||||
1423;след;м;1;1;1;0;1;0;;0;1;;1
|
||||
1425;полковник;м;1;1;1;0;1;0;;1;0;;1
|
||||
@ -586,7 +609,6 @@
|
||||
1474;еврей;м;1;1;1;0;1;0;;1;0;;1
|
||||
1477;июнь;м;1;1;1;0;1;0;;0;1;;1
|
||||
1490;дождь;м;1;1;1;0;1;0;;0;1;;1
|
||||
1505;образец;м;1;1;0;1;1;0;;0;1;;1
|
||||
1518;костюм;м;1;1;1;0;1;0;;0;1;;1
|
||||
1534;коллега;м;1;1;1;0;1;0;;1;0;;1
|
||||
1535;организм;м;1;1;1;0;1;0;;0;1;;1
|
||||
@ -598,24 +620,17 @@
|
||||
1565;спор;м;1;1;1;0;1;0;;0;1;;1
|
||||
1569;вкус;м;1;1;1;0;1;0;;0;1;;1
|
||||
1571;признак;м;1;1;1;0;1;0;;0;1;;1
|
||||
1574;американец;м;1;1;0;1;1;0;;1;0;;1
|
||||
1575;лоб;м;1;1;0;1;1;0;;0;1;;1
|
||||
1584;ключ;м;1;1;1;0;1;0;;0;1;;1
|
||||
1589;слой;м;1;1;1;0;1;0;;0;1;;1
|
||||
1590;бок;м;1;1;0;0;0;1;;0;1;;1
|
||||
1595;июль;м;1;1;1;0;1;0;;0;1;;1
|
||||
1597;перевод;м;1;1;1;0;1;0;;0;1;;1
|
||||
1598;секретарь;м;1;1;1;0;1;0;;1;0;;1
|
||||
1599;кусок;м;1;1;0;1;1;0;;0;1;;1
|
||||
1601;слух;м;1;1;1;0;1;0;;0;1;;1
|
||||
1606;звонок;м;1;1;0;1;1;0;;0;1;;1
|
||||
1613;чиновник;м;1;1;1;0;1;0;;1;0;;1
|
||||
1622;билет;м;1;1;1;0;1;0;;0;1;;1
|
||||
1624;подарок;м;1;1;0;1;1;0;;0;1;;1
|
||||
1626;ящик;м;1;1;1;0;1;0;;0;1;;1
|
||||
1627;конкурс;м;1;1;1;0;1;0;;0;1;;1
|
||||
1637;царь;м;1;1;1;0;1;0;;1;0;;1
|
||||
1639;смех;м;1;1;0;0;0;1;;0;1;;1
|
||||
1650;блок;м;1;1;1;0;1;0;;0;1;;1
|
||||
1656;портрет;м;1;1;1;0;1;0;;0;1;;1
|
||||
1664;стакан;м;1;1;1;0;1;0;;0;1;;1
|
||||
@ -659,42 +674,33 @@
|
||||
1854;эксперт;м;1;1;1;0;1;0;;1;0;;1
|
||||
1861;автобус;м;1;1;1;0;1;0;;0;1;;1
|
||||
1866;кадр;м;1;1;1;0;1;0;;1;1;;1
|
||||
1874;лев;м;1;1;0;1;1;0;;1;0;;1
|
||||
1876;порог;м;1;1;1;0;1;0;;0;1;;1
|
||||
1881;ремонт;м;1;1;1;0;1;0;;0;1;;1
|
||||
1891;памятник;м;1;1;1;0;1;0;;0;1;;1
|
||||
1892;корень;м;1;1;0;1;1;0;;0;1;;1
|
||||
1905;штаб;м;1;1;1;0;1;0;;0;1;;1
|
||||
1907;владелец;м;1;1;0;1;1;0;;1;0;;1
|
||||
1908;компьютер;м;1;1;1;0;1;0;;0;1;;1
|
||||
1911;инженер;м;1;1;1;0;1;0;;1;0;;1
|
||||
1926;выпуск;м;1;1;1;0;1;0;;0;1;;1
|
||||
1927;кулак;м;1;1;1;0;1;0;;0;1;;1
|
||||
1928;лед;м;1;1;0;1;1;0;;0;1;;1
|
||||
1938;корпус;м;1;1;1;0;1;1;;0;1;;1
|
||||
1940;недостаток;м;1;1;0;1;1;0;;0;1;;1
|
||||
1942;сапог;м;1;1;1;0;1;0;;0;1;;1
|
||||
1945;талант;м;1;1;1;0;1;0;;0;1;;1
|
||||
1967;сбор;м;1;1;1;0;1;0;;0;1;;1
|
||||
1968;штат;м;1;1;1;0;1;0;;0;1;;1
|
||||
1970;следователь;м;1;1;1;0;1;0;;1;0;;1
|
||||
1972;мешок;м;1;1;0;1;1;0;;0;1;;1
|
||||
1976;куст;м;1;1;1;0;1;0;;0;1;;1
|
||||
1977;отказ;м;1;1;1;0;1;0;;0;1;;1
|
||||
1979;замок;м;1;1;1;0;1;0;;0;1;;1
|
||||
1982;редактор;м;1;1;1;0;1;0;;1;0;;1
|
||||
1984;дворец;м;1;1;0;1;1;0;;0;1;;1
|
||||
1990;диван;м;1;1;1;0;1;0;;0;1;;1
|
||||
1994;столик;м;1;1;1;0;1;0;;0;1;;1
|
||||
1997;эксперимент;м;1;1;1;0;1;0;;0;1;;1
|
||||
52;время;с;1;1;0;0;1;0;времена;0;1;;1
|
||||
65;дело;с;1;1;1;0;1;0;;0;1;;1
|
||||
94;слово;с;1;1;1;0;1;0;;0;1;;1
|
||||
98;место;с;1;1;1;0;1;0;;0;1;;1
|
||||
104;лицо;с;1;1;1;0;1;0;;0;1;;1
|
||||
162;отношение;с;1;1;1;0;1;0;;0;1;;1
|
||||
203;право;с;1;1;1;0;1;0;;0;1;;1
|
||||
239;имя;с;1;1;0;0;1;0;имена;0;1;;1
|
||||
246;число;с;1;1;1;0;1;0;;0;1;;1
|
||||
259;развитие;с;1;1;1;0;1;0;;0;1;;1
|
||||
265;условие;с;1;1;1;0;1;0;;0;1;;1
|
||||
@ -718,14 +724,12 @@
|
||||
432;сердце;с;1;1;1;0;1;0;;0;1;;1
|
||||
433;движение;с;1;1;1;0;1;0;;0;1;;1
|
||||
437;чувство;с;1;1;1;0;1;0;;0;1;;1
|
||||
452;плечо;с;1;1;0;0;1;0;плечи;0;1;;1
|
||||
527;событие;с;1;1;1;0;1;0;;0;1;;1
|
||||
533;значение;с;1;1;1;0;1;0;;0;1;;1
|
||||
543;искусство;с;1;1;1;0;1;0;;0;1;;1
|
||||
552;исследование;с;1;1;1;0;1;0;;0;1;;1
|
||||
590;использование;с;1;1;1;0;1;0;;0;1;;1
|
||||
595;образование;с;1;1;1;0;1;0;;0;1;;1
|
||||
600;небо;с;1;1;0;0;1;0;небеса;0;1;;1
|
||||
605;участие;с;1;1;1;0;1;0;;0;1;;1
|
||||
619;поле;с;1;1;1;0;1;0;;0;1;;1
|
||||
621;изменение;с;1;1;1;0;1;0;;0;1;;1
|
||||
@ -747,7 +751,6 @@
|
||||
851;зрение;с;1;1;1;0;1;0;;0;1;;1
|
||||
858;понятие;с;1;1;1;0;1;0;;0;1;;1
|
||||
859;строительство;с;1;1;1;0;1;0;;0;1;;1
|
||||
860;ухо;с;1;1;0;0;1;0;уши;0;1;;1
|
||||
873;содержание;с;1;1;1;0;1;0;;0;1;;1
|
||||
895;предложение;с;1;1;1;0;1;0;;0;1;;1
|
||||
907;отсутствие;с;1;1;1;0;1;0;;0;1;;1
|
||||
@ -789,10 +792,8 @@
|
||||
1416;повышение;с;1;1;1;0;1;0;;0;1;;1
|
||||
1427;сомнение;с;1;1;1;0;1;0;;0;1;;1
|
||||
1428;понимание;с;1;1;1;0;1;0;;0;1;;1
|
||||
1447;чудо;с;1;1;0;0;1;0;чудеса;0;1;;1
|
||||
1457;настроение;с;1;1;1;0;1;0;;0;1;;1
|
||||
1465;преступление;с;1;1;1;0;1;0;;0;1;;1
|
||||
1528;вино;с;1;1;0;0;1;0;вины;0;1;;1
|
||||
1529;воспоминание;с;1;1;1;0;1;0;;0;1;;1
|
||||
1538;учреждение;с;1;1;1;0;1;0;;0;1;;1
|
||||
1540;открытие;с;1;1;1;0;1;0;;0;1;;1
|
||||
@ -820,7 +821,6 @@
|
||||
1771;разрешение;с;1;1;1;0;1;0;;0;1;;1
|
||||
1772;воздействие;с;1;1;1;0;1;0;;0;1;;1
|
||||
1778;следствие;с;1;1;1;0;1;0;;0;1;;1
|
||||
1782;крыло;с;1;1;0;0;1;0;крылья;0;1;;1
|
||||
1794;присутствие;с;1;1;1;0;1;0;;0;1;;1
|
||||
1802;достоинство;с;1;1;1;0;1;0;;0;1;;1
|
||||
1816;испытание;с;1;1;1;0;1;0;;0;1;;1
|
||||
|
|
Binary file not shown.
@ -77,10 +77,10 @@ SECOND_MALE_IFORM_INANIMATE;NC_SINGULAR;NGC_P1_NOMINATIVE;;бук
|
||||
;;NGC_P4_ACCUSATIVE;;обвиняю бук
|
||||
;;NGC_P5_INSTRUMENTAL;ом;говорю с буком
|
||||
;;NGC_P6_PREPOSITIONAL;е;говорю о буке
|
||||
;NC_PLURAL;NGC_P1_NOMINATIVE;и;буки
|
||||
;NC_PLURAL;NGC_P1_NOMINATIVE;и, я;буки
|
||||
;;NGC_P2_GENITIVE;ов;подарок для буков
|
||||
;;NGC_P3_DATIVE;ам;подарок букам
|
||||
;;NGC_P4_ACCUSATIVE;и;обвиняю буки
|
||||
;;NGC_P4_ACCUSATIVE;и, я;обвиняю буки
|
||||
;;NGC_P5_INSTRUMENTAL;ами;говорю с буками
|
||||
;;NGC_P6_PREPOSITIONAL;ах;говорю о буках
|
||||
SECOND_MALE_IFORM_ANIMATE;NC_SINGULAR;NGC_P1_NOMINATIVE;;рыбак
|
||||
@ -89,7 +89,7 @@ SECOND_MALE_IFORM_ANIMATE;NC_SINGULAR;NGC_P1_NOMINATIVE;;рыбак
|
||||
;;NGC_P4_ACCUSATIVE;а;обвиняю рыбака
|
||||
;;NGC_P5_INSTRUMENTAL;ом;говорю с рыбаком
|
||||
;;NGC_P6_PREPOSITIONAL;е;говорю о рыбаке
|
||||
;NC_PLURAL;NGC_P1_NOMINATIVE;и;рыбаки
|
||||
;NC_PLURAL;NGC_P1_NOMINATIVE;и, я;рыбаки
|
||||
;;NGC_P2_GENITIVE;ов;подарок для рыбаков
|
||||
;;NGC_P3_DATIVE;ам;подарок рыбакам
|
||||
;;NGC_P4_ACCUSATIVE;ов;обвиняю рыбаков
|
||||
@ -101,10 +101,10 @@ SECOND_MALE_UFORM_INANIMATE;NC_SINGULAR;NGC_P1_NOMINATIVE;;зад
|
||||
;;NGC_P4_ACCUSATIVE;;обвиняю зад
|
||||
;;NGC_P5_INSTRUMENTAL;ом;говорю с задом
|
||||
;;NGC_P6_PREPOSITIONAL;е;говорю о заде
|
||||
;NC_PLURAL;NGC_P1_NOMINATIVE;ы;зады
|
||||
;NC_PLURAL;NGC_P1_NOMINATIVE;ы, а;зады
|
||||
;;NGC_P2_GENITIVE;ов;подарок для задов
|
||||
;;NGC_P3_DATIVE;ам;подарок задам
|
||||
;;NGC_P4_ACCUSATIVE;ы;обвиняю зады
|
||||
;;NGC_P4_ACCUSATIVE;ы, а;обвиняю зады
|
||||
;;NGC_P5_INSTRUMENTAL;ами;говорю с задами
|
||||
;;NGC_P6_PREPOSITIONAL;ах;говорю о задах
|
||||
SECOND_MALE_UFORM_ANIMATE;NC_SINGULAR;NGC_P1_NOMINATIVE;;кит
|
||||
@ -113,7 +113,7 @@ SECOND_MALE_UFORM_ANIMATE;NC_SINGULAR;NGC_P1_NOMINATIVE;;кит
|
||||
;;NGC_P4_ACCUSATIVE;а;обвиняю кита
|
||||
;;NGC_P5_INSTRUMENTAL;ом;говорю с китом
|
||||
;;NGC_P6_PREPOSITIONAL;е;говорю о ките
|
||||
;NC_PLURAL;NGC_P1_NOMINATIVE;ы;киты
|
||||
;NC_PLURAL;NGC_P1_NOMINATIVE;ы, а;киты
|
||||
;;NGC_P2_GENITIVE;ов;подарок для китов
|
||||
;;NGC_P3_DATIVE;ам;подарок китам
|
||||
;;NGC_P4_ACCUSATIVE;ов;обвиняю китов
|
||||
@ -125,10 +125,10 @@ SECOND_MALE_SSFORM_INANIMATE;NC_SINGULAR;NGC_P1_NOMINATIVE;ь;тополь
|
||||
;;NGC_P4_ACCUSATIVE;ь;обвиняю тополь
|
||||
;;NGC_P5_INSTRUMENTAL;ем;говорю с тополем
|
||||
;;NGC_P6_PREPOSITIONAL;е;говорю о тополе
|
||||
;NC_PLURAL;NGC_P1_NOMINATIVE;и;тополи
|
||||
;NC_PLURAL;NGC_P1_NOMINATIVE;и, я;тополи
|
||||
;;NGC_P2_GENITIVE;ей;подарок для тополей
|
||||
;;NGC_P3_DATIVE;ям;подарок тополям
|
||||
;;NGC_P4_ACCUSATIVE;и;обвиняю тополи
|
||||
;;NGC_P4_ACCUSATIVE;и, я;обвиняю тополи
|
||||
;;NGC_P5_INSTRUMENTAL;ями;говорю с тополями
|
||||
;;NGC_P6_PREPOSITIONAL;ях;говорю о тополях
|
||||
SECOND_MALE_SSFORM_ANIMATE;NC_SINGULAR;NGC_P1_NOMINATIVE;ь;парень
|
||||
@ -137,7 +137,7 @@ SECOND_MALE_SSFORM_ANIMATE;NC_SINGULAR;NGC_P1_NOMINATIVE;ь;парень
|
||||
;;NGC_P4_ACCUSATIVE;я;обвиняю парня
|
||||
;;NGC_P5_INSTRUMENTAL;ем;говорю с парнем
|
||||
;;NGC_P6_PREPOSITIONAL;е;говорю о парне
|
||||
;NC_PLURAL;NGC_P1_NOMINATIVE;и;парни
|
||||
;NC_PLURAL;NGC_P1_NOMINATIVE;и, я;парни
|
||||
;;NGC_P2_GENITIVE;ей;подарок для парней
|
||||
;;NGC_P3_DATIVE;ям;подарок парням
|
||||
;;NGC_P4_ACCUSATIVE;ей;обвиняю парней
|
||||
@ -149,10 +149,10 @@ SECOND_I_SHORT_INANIMATE;NC_SINGULAR;NGC_P1_NOMINATIVE;й;каравай
|
||||
;;NGC_P4_ACCUSATIVE;й;обвиняю каравай
|
||||
;;NGC_P5_INSTRUMENTAL;ем;говорю с караваем
|
||||
;;NGC_P6_PREPOSITIONAL;е;говорю о каравае
|
||||
;NC_PLURAL;NGC_P1_NOMINATIVE;и;караваи
|
||||
;NC_PLURAL;NGC_P1_NOMINATIVE;и, я;караваи
|
||||
;;NGC_P2_GENITIVE;ев;подарок для караваев
|
||||
;;NGC_P3_DATIVE;ям;подарок караваям
|
||||
;;NGC_P4_ACCUSATIVE;и;обвиняю караваи
|
||||
;;NGC_P4_ACCUSATIVE;и, я;обвиняю караваи
|
||||
;;NGC_P5_INSTRUMENTAL;ями;говорю с караваями
|
||||
;;NGC_P6_PREPOSITIONAL;ях;говорю о караваях
|
||||
SECOND_I_SHORT_ANIMATE;NC_SINGULAR;NGC_P1_NOMINATIVE;й;герой
|
||||
@ -161,7 +161,7 @@ SECOND_I_SHORT_ANIMATE;NC_SINGULAR;NGC_P1_NOMINATIVE;й;герой
|
||||
;;NGC_P4_ACCUSATIVE;я;обвиняю героя
|
||||
;;NGC_P5_INSTRUMENTAL;ем;говорю с героем
|
||||
;;NGC_P6_PREPOSITIONAL;е;говорю о каравае
|
||||
;NC_PLURAL;NGC_P1_NOMINATIVE;и;герои
|
||||
;NC_PLURAL;NGC_P1_NOMINATIVE;и, я;герои
|
||||
;;NGC_P2_GENITIVE;ев;подарок для героев
|
||||
;;NGC_P3_DATIVE;ям;подарок героям
|
||||
;;NGC_P4_ACCUSATIVE;ев;обвиняю героев
|
||||
|
|
Binary file not shown.
@ -144,7 +144,7 @@ namespace http {
|
||||
result.put(L"error", L"String is too short");
|
||||
}
|
||||
|
||||
std::vector<NounStruct> nounStructArr = RecognizeNoun(request);
|
||||
std::set<NounStruct> nounStructArr = RecognizeNoun(request);
|
||||
|
||||
|
||||
std::cout <<"nounstructarr" << nounStructArr.size() << std::endl;
|
||||
@ -171,20 +171,6 @@ namespace http {
|
||||
nounTree.put(L"specialMultipleForm", nounStruct.nounRecord.specialMultipleForm);
|
||||
|
||||
nounTree.put(L"nominativeSingularForm", nounStruct.nounRecord.nominativeForm);
|
||||
|
||||
/*
|
||||
if (nounStruct.nounRecord.haveMultipleForm)
|
||||
{
|
||||
if (nounStruct.nounRecord.specialMultipleForm != L"")
|
||||
{
|
||||
nounTree.put(L"nominativeSingularForm", nounStruct.nounRecord.nominativeForm);
|
||||
}
|
||||
else
|
||||
{
|
||||
nounTree.put(L"nominativeSingularForm", CalculateNounDeclention(nounStruct.nounRecord));
|
||||
}
|
||||
}*/
|
||||
|
||||
nounArr.push_back(std::make_pair(L"", nounTree));
|
||||
|
||||
id++;
|
||||
|
@ -329,6 +329,7 @@ std::wstring convertToStandardPluralForm(std::wstring s)
|
||||
return pluralForm;
|
||||
}
|
||||
|
||||
|
||||
std::wstring convertFromStandardToAlternativePluralForm(std::wstring s)
|
||||
{
|
||||
if (s[s.size() - 1] == L'и')
|
||||
@ -363,6 +364,7 @@ std::set<std::wstring> getPluralForm(NounRecord noun)
|
||||
result.insert(pluralForm);
|
||||
}
|
||||
|
||||
|
||||
if (noun.haveAlternativeMultipleFormEnding)
|
||||
{
|
||||
result.insert(convertFromStandardToAlternativePluralForm(pluralForm));
|
||||
@ -390,6 +392,7 @@ std::set<std::wstring> getPluralForm(NounRecord noun)
|
||||
result.insert(pluralForm);
|
||||
}
|
||||
|
||||
|
||||
if (noun.haveAlternativeMultipleFormEnding)
|
||||
{
|
||||
result.insert(convertFromStandardToAlternativePluralForm(pluralForm));
|
||||
@ -524,7 +527,6 @@ std::set<NounEndingDivision> getPossibleNounEndingDivisionSet(std::wstring noun)
|
||||
(charIsConsolant(nounBase[nounBase.size() - 1]) || nounBase[nounBase.size() - 1] == L'ь' || nounBase[nounBase.size() - 1] == L'ъ'))
|
||||
{
|
||||
result.insert({ nounBase, ending, NounEndingDivision::DC_COMMON });
|
||||
//result.insert({ nounBase, ending, NounEndingDivision::DC_SPECIAL_PLURAL_FORM });
|
||||
}
|
||||
|
||||
//Check missed vowel (simple case)
|
||||
@ -544,10 +546,11 @@ std::set<NounEndingDivision> getPossibleNounEndingDivisionSet(std::wstring noun)
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
if (ending == L"а" || ending == L"я")
|
||||
{
|
||||
result.insert({ nounBase, ending, NounEndingDivision::DC_SPECIAL_PLURAL_A });
|
||||
}
|
||||
}*/
|
||||
|
||||
}
|
||||
}
|
||||
@ -565,7 +568,7 @@ std::vector<NounTuple> GetPossibleNounTupleArr(std::wstring nounEnding)
|
||||
{
|
||||
for (int i = 0; i < NGC_SIZE * NC_SIZE; i++)
|
||||
{
|
||||
if (noun.grammaticalCaseTable[i].ending == nounEnding)
|
||||
if (noun.grammaticalCaseTable[i].ending.count(nounEnding) != 0)
|
||||
{
|
||||
result.push_back(NounTuple{ noun.nounDeclencion, noun.grammaticalCaseTable[i].count, noun.grammaticalCaseTable[i].grammaticalCase });
|
||||
}
|
||||
@ -573,6 +576,33 @@ std::vector<NounTuple> GetPossibleNounTupleArr(std::wstring nounEnding)
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
//Xperimental -- additionally check for plural form with a-ending
|
||||
if (nounEnding == L"а" || nounEnding == L"я")
|
||||
{
|
||||
|
||||
result.push_back(NounTuple{ SECOND_MALE_IFORM_INANIMATE, NC_PLURAL, NGC_P1_NOMINATIVE });
|
||||
result.push_back(NounTuple{ SECOND_MALE_IFORM_INANIMATE, NC_PLURAL, NGC_P4_ACCUSATIVE });
|
||||
|
||||
result.push_back(NounTuple{ SECOND_MALE_UFORM_INANIMATE, NC_PLURAL, NGC_P1_NOMINATIVE });
|
||||
result.push_back(NounTuple{ SECOND_MALE_UFORM_INANIMATE, NC_PLURAL, NGC_P4_ACCUSATIVE });
|
||||
|
||||
result.push_back(NounTuple{ SECOND_MALE_SSFORM_INANIMATE, NC_PLURAL, NGC_P1_NOMINATIVE });
|
||||
result.push_back(NounTuple{ SECOND_MALE_SSFORM_INANIMATE, NC_PLURAL, NGC_P4_ACCUSATIVE });
|
||||
|
||||
result.push_back(NounTuple{ SECOND_I_SHORT_INANIMATE, NC_PLURAL, NGC_P1_NOMINATIVE });
|
||||
result.push_back(NounTuple{ SECOND_I_SHORT_INANIMATE, NC_PLURAL, NGC_P1_NOMINATIVE });
|
||||
|
||||
|
||||
result.push_back(NounTuple{ SECOND_MALE_IFORM_ANIMATE, NC_PLURAL, NGC_P1_NOMINATIVE });
|
||||
|
||||
result.push_back(NounTuple{ SECOND_MALE_UFORM_ANIMATE, NC_PLURAL, NGC_P1_NOMINATIVE });
|
||||
|
||||
result.push_back(NounTuple{ SECOND_MALE_SSFORM_ANIMATE, NC_PLURAL, NGC_P1_NOMINATIVE });
|
||||
|
||||
result.push_back(NounTuple{ SECOND_I_SHORT_ANIMATE, NC_PLURAL, NGC_P1_NOMINATIVE });
|
||||
}*/
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
@ -593,18 +623,46 @@ std::vector<NounTuple> FilterNounTupleArrByNounDeclentionSet(std::vector<NounTup
|
||||
|
||||
|
||||
|
||||
std::wstring GetNounNoninative(std::wstring nounBase, NounDeclencion nounDeclencion, NounCount nounCount)
|
||||
|
||||
std::set<std::wstring> GetNounNoninative(std::wstring nounBase, NounDeclencion nounDeclencion, NounCount nounCount)
|
||||
{
|
||||
std::set<std::wstring> result;
|
||||
|
||||
NounDeclencionCaseTableRecord nounDeclencionCaseTableRecord = nounDeclencionCaseTable[static_cast<int>(nounDeclencion)];
|
||||
|
||||
for (auto& grammaticalTableRecord : nounDeclencionCaseTableRecord.grammaticalCaseTable)
|
||||
{
|
||||
if (grammaticalTableRecord.grammaticalCase == NGC_P1_NOMINATIVE && grammaticalTableRecord.count == nounCount)
|
||||
{
|
||||
return nounBase + grammaticalTableRecord.ending;
|
||||
for (auto& e : grammaticalTableRecord.ending)
|
||||
{
|
||||
result.insert(nounBase + e);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
std::wstring GetNounNoninativeSpecialPluralA(std::wstring nounBase, NounDeclencion nounDeclencion)
|
||||
{
|
||||
|
||||
if (charIsIFormConsolant(nounBase[nounBase.size() - 1]))
|
||||
{
|
||||
return nounBase + L"я";
|
||||
}
|
||||
|
||||
if (charIsUFormConsolant(nounBase[nounBase.size() - 1]))
|
||||
{
|
||||
return nounBase + L"а";
|
||||
}
|
||||
|
||||
if (charIsVowel(nounBase[nounBase.size() - 1]))
|
||||
{
|
||||
return nounBase + L"я";
|
||||
}
|
||||
|
||||
std::cout << "Error in GetNounNoninative" << std::endl;
|
||||
|
||||
return L"";
|
||||
@ -1025,7 +1083,6 @@ bool LostVowelETest(NounTuple nounTuple, NounRecord nounRecord)
|
||||
std::map<NounEndingDivision::DivisionCase, std::function<std::wstring(std::wstring)>> DivisionCaseNounModificatorMap;
|
||||
std::map<NounEndingDivision::DivisionCase, std::function<std::wstring(std::wstring)>> DivisionCaseEndingModificatorMap;
|
||||
|
||||
|
||||
std::map < NounEndingDivision::DivisionCase, std::function < bool(NounTuple) >> DivisionCaseNounTupleFilterMap;
|
||||
|
||||
std::map < NounEndingDivision::DivisionCase, std::function < bool(NounTuple, NounRecord) >> DivisionCaseNounTupleRecordFilterMap;
|
||||
@ -1052,18 +1109,11 @@ void FillDivisionCaseMaps()
|
||||
}
|
||||
};
|
||||
|
||||
DivisionCaseNounModificatorMap[NounEndingDivision::DC_SPECIAL_PLURAL_A] = DivisionCaseNounModificatorMap[NounEndingDivision::DC_COMMON];
|
||||
|
||||
|
||||
DivisionCaseEndingModificatorMap[NounEndingDivision::DC_COMMON] = [](std::wstring s){ return s; };
|
||||
DivisionCaseEndingModificatorMap[NounEndingDivision::DC_LOST_VOWEL_O] = DivisionCaseEndingModificatorMap[NounEndingDivision::DC_COMMON];
|
||||
DivisionCaseEndingModificatorMap[NounEndingDivision::DC_LOST_VOWEL_E] = DivisionCaseEndingModificatorMap[NounEndingDivision::DC_COMMON];
|
||||
DivisionCaseEndingModificatorMap[NounEndingDivision::DC_SPECIAL_PLURAL_A] = [](std::wstring s)
|
||||
{
|
||||
if (s == L"а") return L"ы";
|
||||
if (s == L"я") return L"и";
|
||||
std::cout << "Error in DivisionCaseEndingModificatorMap[NounEndingDivision::DC_SPECIAL_PLURAL_A]" << std::endl;
|
||||
return L"";
|
||||
};
|
||||
|
||||
|
||||
|
||||
DivisionCaseNounTupleFilterMap[NounEndingDivision::DC_COMMON] = [](NounTuple t) { return true; };
|
||||
@ -1078,12 +1128,6 @@ void FillDivisionCaseMaps()
|
||||
DivisionCaseNounTupleFilterMap[NounEndingDivision::DC_LOST_VOWEL_E] = DivisionCaseNounTupleFilterMap[NounEndingDivision::DC_LOST_VOWEL_O];
|
||||
|
||||
|
||||
DivisionCaseNounTupleFilterMap[NounEndingDivision::DC_SPECIAL_PLURAL_A] = [](NounTuple t)
|
||||
{
|
||||
return (std::get<1>(t) == NC_PLURAL) &&
|
||||
( (std::get<2>(t) == NGC_P1_NOMINATIVE) ||
|
||||
((std::get<2>(t) == NGC_P4_ACCUSATIVE && !IsDeclencionAnimated(std::get<0>(t)))));
|
||||
};
|
||||
|
||||
|
||||
DivisionCaseNounTupleRecordFilterMap[NounEndingDivision::DC_COMMON] = [](NounTuple t, NounRecord r)
|
||||
@ -1101,20 +1145,16 @@ void FillDivisionCaseMaps()
|
||||
return LostVowelETest(t, r) && StandardTest(t, r);
|
||||
};
|
||||
|
||||
DivisionCaseNounTupleRecordFilterMap[NounEndingDivision::DC_SPECIAL_PLURAL_A] = [](NounTuple t, NounRecord r)
|
||||
{
|
||||
return r.haveAlternativeMultipleFormEnding && StandardTest(t, r);
|
||||
};
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
std::vector<NounStruct> RecognizeNoun(std::wstring noun)
|
||||
std::set<NounStruct> RecognizeNoun(std::wstring noun)
|
||||
{
|
||||
|
||||
std::vector<NounStruct> result;
|
||||
std::set<NounStruct> result;
|
||||
|
||||
auto nounEndingDivisionArr = getPossibleNounEndingDivisionSet(noun);
|
||||
|
||||
@ -1139,32 +1179,42 @@ std::vector<NounStruct> RecognizeNoun(std::wstring noun)
|
||||
if (std::get<1>(nounTuple) == NC_SINGULAR)
|
||||
{
|
||||
|
||||
std::wstring nounNominaviteSingular = GetNounNoninative(modifiedNounBase, std::get<0>(nounTuple), NC_SINGULAR);
|
||||
std::set<std::wstring> nounNominaviteSingularSet = GetNounNoninative(modifiedNounBase, std::get<0>(nounTuple), NC_SINGULAR);
|
||||
|
||||
if (NounIsInDictionary(nounNominaviteSingular))
|
||||
for (auto& nn : nounNominaviteSingularSet)
|
||||
{
|
||||
|
||||
NounRecord nounRecord = GetNounRecordFromDictionary(nounNominaviteSingular);
|
||||
|
||||
if (DivisionCaseNounTupleRecordFilterMap[dc](nounTuple, nounRecord))
|
||||
if (NounIsInDictionary(nn))
|
||||
{
|
||||
result.push_back({ std::get<2>(nounTuple), std::get<1>(nounTuple), IsDeclencionAnimated(std::get<0>(nounTuple)), nounRecord });
|
||||
}
|
||||
}
|
||||
|
||||
NounRecord nounRecord = GetNounRecordFromDictionary(nn);
|
||||
|
||||
if (DivisionCaseNounTupleRecordFilterMap[dc](nounTuple, nounRecord))
|
||||
{
|
||||
result.insert({ std::get<2>(nounTuple), std::get<1>(nounTuple), IsDeclencionAnimated(std::get<0>(nounTuple)), nounRecord });
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
std::wstring nounNominavitePlural = GetNounNoninative(nounBase, std::get<0>(nounTuple), NC_PLURAL);
|
||||
std::set<std::wstring> nounNominavitePluralSet = GetNounNoninative(nounBase, std::get<0>(nounTuple), NC_PLURAL);
|
||||
|
||||
if (NounPluralFormIsInDictionary(nounNominavitePlural))
|
||||
//Check all plural forms
|
||||
|
||||
for (auto& nn : nounNominavitePluralSet)
|
||||
{
|
||||
NounRecord nounRecord = GetNounRecordFromDictionary_ByPluralForm(nounNominavitePlural);
|
||||
|
||||
if (DivisionCaseNounTupleRecordFilterMap[dc](nounTuple, nounRecord))
|
||||
if (NounPluralFormIsInDictionary(nn))
|
||||
{
|
||||
result.push_back({ std::get<2>(nounTuple), std::get<1>(nounTuple), IsDeclencionAnimated(std::get<0>(nounTuple)), nounRecord });
|
||||
NounRecord nounRecord = GetNounRecordFromDictionary_ByPluralForm(nn);
|
||||
|
||||
if (DivisionCaseNounTupleRecordFilterMap[dc](nounTuple, nounRecord))
|
||||
{
|
||||
result.insert({ std::get<2>(nounTuple), std::get<1>(nounTuple), IsDeclencionAnimated(std::get<0>(nounTuple)), nounRecord });
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1260,10 +1310,15 @@ void LoadNounDeclencionCaseTable()
|
||||
currentNounCount = string_to_wstring(lineArr[1]);
|
||||
}
|
||||
|
||||
std::wstring endings = string_to_wstring(lineArr[3]);
|
||||
|
||||
std::set<std::wstring> endingsSet;
|
||||
boost::split_regex(endingsSet, endings, boost::regex(", "));
|
||||
|
||||
currentGrammaticalCaseTable.push_back({
|
||||
WStringToNounCount(currentNounCount),
|
||||
WStringToNounGrammaticalCase(string_to_wstring(lineArr[2])),
|
||||
string_to_wstring(lineArr[3])
|
||||
endingsSet
|
||||
});
|
||||
|
||||
}
|
||||
|
@ -39,6 +39,11 @@ struct NounRecord
|
||||
|
||||
NounRecord();
|
||||
NounRecord(std::wstring line);
|
||||
|
||||
bool operator<(const NounRecord& n) const
|
||||
{
|
||||
return nominativeForm < n.nominativeForm;
|
||||
}
|
||||
};
|
||||
|
||||
enum NounDeclencion
|
||||
@ -87,7 +92,7 @@ struct GrammaticalTableRecord
|
||||
|
||||
NounGrammaticalCase grammaticalCase;
|
||||
|
||||
std::wstring ending;
|
||||
std::set<std::wstring> ending;
|
||||
};
|
||||
|
||||
struct NounDeclencionCaseTableRecord
|
||||
@ -129,8 +134,7 @@ struct NounEndingDivision
|
||||
{
|
||||
DC_COMMON = 0,
|
||||
DC_LOST_VOWEL_O,
|
||||
DC_LOST_VOWEL_E,
|
||||
DC_SPECIAL_PLURAL_A
|
||||
DC_LOST_VOWEL_E
|
||||
} divisionCase;
|
||||
|
||||
bool operator<(const NounEndingDivision& other) const
|
||||
@ -178,6 +182,32 @@ struct NounStruct
|
||||
NounCount nounCount;
|
||||
bool animated;
|
||||
NounRecord nounRecord;
|
||||
|
||||
bool operator<(const NounStruct& other) const
|
||||
{
|
||||
if (nounGrammaticalCase != other.nounGrammaticalCase)
|
||||
{
|
||||
return nounGrammaticalCase < other.nounGrammaticalCase;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (nounCount != other.nounCount)
|
||||
{
|
||||
return nounCount < other.nounCount;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (animated != other.animated)
|
||||
{
|
||||
return animated < other.animated;
|
||||
}
|
||||
else
|
||||
{
|
||||
return nounRecord < other.nounRecord;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@ -185,7 +215,8 @@ std::set<NounEndingDivision> getPossibleNounEndingDivisionSet(std::wstring noun)
|
||||
|
||||
std::vector<NounTuple> GetPossibleNounTupleArr(std::wstring nounEnding);
|
||||
|
||||
std::wstring GetNounNoninative(std::wstring nounBase, NounDeclencion nounDeclencion, NounCount nounCount);
|
||||
std::set<std::wstring> GetNounNoninative(std::wstring nounBase, NounDeclencion nounDeclencion, NounCount nounCount);
|
||||
std::wstring GetNounNoninativeSpecialPluralA(std::wstring nounBase, NounDeclencion nounDeclencion);
|
||||
|
||||
wchar_t GetLastChar(const NounRecord& nounRecord);
|
||||
wchar_t GetPrevLastChar(const NounRecord& nounRecord);
|
||||
@ -202,7 +233,7 @@ bool IsDeclencionAnimated(NounDeclencion nounDeclention);
|
||||
|
||||
void FillDivisionCaseMaps();
|
||||
|
||||
std::vector<NounStruct> RecognizeNoun(std::wstring noun);
|
||||
std::set<NounStruct> RecognizeNoun(std::wstring noun);
|
||||
|
||||
NounDeclencion CalculateNounDeclention(NounRecord nounRecord);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user