From 54456546c767a5ba987f69607073e291de682813 Mon Sep 17 00:00:00 2001 From: Vladislav Khorev Date: Fri, 5 Dec 2014 04:18:08 +0000 Subject: [PATCH] dictionary update --- rudict/frequent_nouns_2000.csv | 132 ++++++++++++------------ rudict/frequent_nouns_2000.xlsx | Bin 55146 -> 54975 bytes rudict/grammar_case.csv | 24 ++--- rudict/grammar_case.xlsx | Bin 13910 -> 13935 bytes rudict/rudict/http/request_handler.cpp | 16 +-- rudict/rudict/noun.cpp | 137 +++++++++++++++++-------- rudict/rudict/noun.h | 41 +++++++- 7 files changed, 211 insertions(+), 139 deletions(-) diff --git a/rudict/frequent_nouns_2000.csv b/rudict/frequent_nouns_2000.csv index 3611bb8..7498947 100644 --- a/rudict/frequent_nouns_2000.csv +++ b/rudict/frequent_nouns_2000.csv @@ -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 diff --git a/rudict/frequent_nouns_2000.xlsx b/rudict/frequent_nouns_2000.xlsx index 2524d0adaec73d69bfcfb83f4ca019e13607f6c7..ad0a648dc284e7a748c040b212d4e5b1bc8fd272 100644 GIT binary patch literal 54975 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ⅅD`@pX$Na*){C%$@SWS#}G2YgD9Y_a|z9i!nVzJFPtLjJv$`7MYezljg(n3SCNL1kPA1UFJ|u zZkWjaoJY*)-LQ9pEmF+mY&zS~0ZVP=ALfPj#=Uemc zs#@S`Ntjek@V`nhv%F5Lxw<(K-5uO49NgWVh>oPMe^+0B%n6XtDx>0U3k83VNK4Ky z*fuP>*O_a(cR^^v_qj)UGYAJQ*S-4dvYhW?YEdAirtJOe_{HuTCndw??@$vJJ5k`` zdGD`6+?H`e=R{+*JR;v${!2c+-4ww7`XUH324c^awy zM1A1;${(8|->??2R7zGUc#LiTJ68EhP`voh_q1PkPY{M%%=jrB*N_7OT64w%Uq)DR zi$utt?wC$TuZxz0hIK=R^RF)ddH6OrHnW>K#C0{vT9yC8E5XY++iT5}HAVO855BzC zebeZ09Ch)HJr%(U53Rzg5^De46?>*!EN$+gj41tdPdmAeF+E~cYg7H=`IASj4h-ZA z=6-8TW%4FRZo!x?hB00E)EAbr_T&{;jF#SE8?0mJ>`=ZZ zwlMU@2R$!GDRDaCRo#In5~;eg)t=aIb}4z6dYgDoDl3Yo=O-Ya_Q-ItskN)n7&ChA zn7FRy&b}jsDJ6qFlTT%TJw6*BC@!aR=JC&|T#n?;loBPnz75<+uD&E|&J9vengy>CP~@T}g()-+n;ODz6aCMCUc(&gmJy^IK!M$ogz zR{2+J56>yds+UhOTorWbcTb-{)AFQyk;JP#dWW@p&C8vV8|JN8uVtzEdgD*L&HFUJ zn|yKbs71s5_}xL5cKr1BWQB9?;-`+!nmYI24Ln{XWj~Ucw)~XzrnQsrId2+=TZZ|= zK{rk>3)-nQV(QE{XNb*_W|rz5oon}I#Tol@J3;+}A8Yl4nHF!)+jZd_S5RVBFUaaC z76jujXYsf78U%hiS(OMH_SQ?PtE%{lV{CV75Tg`ZP&cOAi`XpD=H!)_4(0F|8!)h z3xo=yJAOae)q!M#Cigz$nGIwd*r33L;(K9Z6Q9ul4VDMq&EYgjZ9V$@y5f1gTM-kC*eT6tBtn2CG=6uY>#Ti}uo9!G{c$B;c+6aTSDmkN_DcE|UoiAJXx)TMn zF5N9&Dk9?Q0LytsWp}t4s7yL(=jL$S!X09!Bk5cBuS3{qTm&_Dz#uBjXu)aqr^}O0 zIyktKrtb**Mg8C2PiHAkBo9WQ2nJ>56LE(2p-b*39S9D>Ppp-%@9Dw!i%)dJfLw=0 zBxdx;@+aXvxsy*jeDh`s61NqPQ$<8VpUf3mHlylE)vs^n^KE?HfthEWFPn+15)t{w z$>;0pUvF8T8(3I_b>e@sfqmWR%$WVTN$5}Q7k!$J;QNe4Vemvmet^G4q DMv}eK diff --git a/rudict/grammar_case.csv b/rudict/grammar_case.csv index f6ff90c..1d7e739 100644 --- a/rudict/grammar_case.csv +++ b/rudict/grammar_case.csv @@ -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;ев;обвиняю героев diff --git a/rudict/grammar_case.xlsx b/rudict/grammar_case.xlsx index 9c404416cc5b6f155449ef646057ee4a57e6a261..b4fb238a2eae550b4049b1cd5c223c5435433f6a 100644 GIT binary patch delta 6403 zcmYj$Wn2`_^YC#X64HHiry$)&cXyW{Al-<>A>Cab;2jOpadZiSAYDgF3rb2O`N!|` z;`!~n*_qjyo&4-9(&gBt&I=nWwLYz(6deE{Vowjkrh=GhQ5xZg)XqLy{}oOAQ2JXz z+U|o2*N4QQirF#}pfKHsf`y7DVXV*4IE)7wp2yyl){>N*p1Rv)vE7Cahl$Zeiql@y zRrg)6xBbq+W+M#ul2ZydNhvV8zhv)jtIg@ns}=CdB4xMv=gUB6Sg=8L!k}4ye)WC- zhIPfwnKeW|xcTlkYkbjEEASXsNp0@O$@Q;XQ`e?0agha(Bv=CUVq^F!`rC6e+v}_A zH?BTD5(`Tdhq≪rB~@D=RZgUy!SHri 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 delta 6342 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 nounStructArr = RecognizeNoun(request); + std::set 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++; diff --git a/rudict/rudict/noun.cpp b/rudict/rudict/noun.cpp index 1d2a048..ed73771 100644 --- a/rudict/rudict/noun.cpp +++ b/rudict/rudict/noun.cpp @@ -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 getPluralForm(NounRecord noun) result.insert(pluralForm); } + if (noun.haveAlternativeMultipleFormEnding) { result.insert(convertFromStandardToAlternativePluralForm(pluralForm)); @@ -390,6 +392,7 @@ std::set getPluralForm(NounRecord noun) result.insert(pluralForm); } + if (noun.haveAlternativeMultipleFormEnding) { result.insert(convertFromStandardToAlternativePluralForm(pluralForm)); @@ -524,7 +527,6 @@ std::set 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 getPossibleNounEndingDivisionSet(std::wstring noun) } + /* if (ending == L"а" || ending == L"я") { result.insert({ nounBase, ending, NounEndingDivision::DC_SPECIAL_PLURAL_A }); - } + }*/ } } @@ -565,7 +568,7 @@ std::vector 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 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 FilterNounTupleArrByNounDeclentionSet(std::vector GetNounNoninative(std::wstring nounBase, NounDeclencion nounDeclencion, NounCount nounCount) { + std::set result; + NounDeclencionCaseTableRecord nounDeclencionCaseTableRecord = nounDeclencionCaseTable[static_cast(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> DivisionCaseNounModificatorMap; std::map> 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 RecognizeNoun(std::wstring noun) +std::set RecognizeNoun(std::wstring noun) { - std::vector result; + std::set result; auto nounEndingDivisionArr = getPossibleNounEndingDivisionSet(noun); @@ -1139,32 +1179,42 @@ std::vector RecognizeNoun(std::wstring noun) if (std::get<1>(nounTuple) == NC_SINGULAR) { - std::wstring nounNominaviteSingular = GetNounNoninative(modifiedNounBase, std::get<0>(nounTuple), NC_SINGULAR); + std::set 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 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 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 }); } diff --git a/rudict/rudict/noun.h b/rudict/rudict/noun.h index a8ff107..2f58fc6 100644 --- a/rudict/rudict/noun.h +++ b/rudict/rudict/noun.h @@ -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 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 getPossibleNounEndingDivisionSet(std::wstring noun) std::vector GetPossibleNounTupleArr(std::wstring nounEnding); -std::wstring GetNounNoninative(std::wstring nounBase, NounDeclencion nounDeclencion, NounCount nounCount); +std::set 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 RecognizeNoun(std::wstring noun); +std::set RecognizeNoun(std::wstring noun); NounDeclencion CalculateNounDeclention(NounRecord nounRecord);