База данных слов русского языка...
Давай email в приват — пришлю. Или (лучше) ищи в интернете словарь русского языка Зализняка, отсканированный. На каком-то сайте Виталия Арнольда. А то у меня связь дорогая.
ftp://scon155.phys.msu.su/pub/russian/ispell/rus-ispell.tar....
На вашем же физфаке лежит russian ispell
На вашем же физфаке лежит russian ispell

А в словаре Зализняка у каждого слова стоит признак, указывающий не парадигму изменения слов (для имён — склонение, для глаголов и т. п. — спряжения). Для глаголов, кажется, описано 17 парадигм, исключения в словаре отмечены особо. И ещё в Зализняке есть ударения (т. к. принадлежность слова определённой парадигме иногда зависит от ударения).
id, word, parent_id
где id - идентификатор слова, word - слово, paret_id - id родительского слова.
Причем в роли родительского слова может выступать только первая форма слова (как это называется - я хз, но факт в том, что это самоя простая из возможных его форм без всяких наворотов типа приставок и т.д. а в роли дочернего слова - каждое слово, образованное из данного в виде его словоформ или имеющее отношение к нему по смыслу.
например:
1 мобильный 0 основной
2 мобильного 1 словоформа
3 мобильному 1 словоформа
4 мобила 1 смысловая
5 мобильник 1 смысловая
Причем желательно еще один столбец, в котором указывался бы тип связи, словоформа или смусловая связь.
тольпо учти, что написан он откровенно хуево
+1 насчет хуево

не только уево, он еще и не открывается наверно.
мобильный & моби'льный & мобильного мобильному мобила мобильник & <значки, отвечающие за морфологию>
Несложный скрипт приведёт это к твоему формату. Или трудность в определении связи "смысловая"? Вот как с этим бороться, я не знаю. Если найдёшь решение, скинь, пожалуйста, в приват.
в рядах дорвейщиков прибывает ?
А можешь кинуть ссылочнку на него?
PS дорвей идет лесом, я подобие гугл адвордс пишу
http://newstar.rinet.ru/downl.php?lan=ru#soft
http://zaliznyak-dict.narod.ru/
Вот ещё, не помню, где взял; называется файл all_forms.rar.
Выдержка:
(сколько поместилось на экране).
Если не найдёшь, пиши, встретимся, принесу, а то файл большой.
http://zaliznyak-dict.narod.ru/
Вот ещё, не помню, где взял; называется файл all_forms.rar.
Выдержка:
возбудимость#возбуди'мость,возбуди'мости,возбуди'мости,возбуди'мостей,возбуди'мости,возбуди'мостям,возбуди'мость,возбуди
возбудимый#возбуди'мый,возбуди'мая,возбуди'мое,возбуди'мые,возбуди'мого,возбуди'мой,возбуди'мого,возбуди'мых,возбуди'мом
возбудитель#возбуди'тель,возбуди'тели,возбуди'теля,возбуди'телей,возбуди'телю,возбуди'телям,возбуди'тель,возбуди'тели,во
возбудитель#возбуди'тель,возбуди'тели,возбуди'теля,возбуди'телей,возбуди'телю,возбуди'телям,возбуди'теля,возбуди'телей,в
возбудительница#возбуди'тельница,возбуди'тельницы,возбуди'тельницы,возбуди'тельниц,возбуди'тельнице,возбуди'тельницам,во
возбудительный#возбуди'тельный,возбуди'тельная,возбуди'тельное,возбуди'тельные,возбуди'тельного,возбуди'тельной,возбуди'
возбудить#возбуди'ть,возбужу',возбуди'м,возбуди'шь,возбуди'те,возбуди'т,возбудя'т,возбудя',возбуди'л,возбуди'ла,возбуди'
возбудиться#возбуди'ться,возбужу'сь,возбуди'мся,возбуди'шься,возбуди'тесь,возбуди'тся,возбудя'тся,возбудя'сь,возбуди'лся
возбуждаемость#возбужда'емость,возбужда'емости,возбужда'емости,возбужда'емостей,возбужда'емости,возбужда'емостям,возбужд
возбуждаться#возбужда'ться,возбужда'юсь,возбужда'емся,возбужда'ешься,возбужда'етесь,возбужда'ется,возбужда'ются,возбужда
возбуждающий#возбужда'ющий,возбужда'ющая,возбужда'ющее,возбужда'ющие,возбужда'ющего,возбужда'ющей,возбужда'ющего,возбужд
возбуждение#возбужде'ние,возбужде'ния,возбужде'ния,возбужде'ний,возбужде'нию,возбужде'ниям,возбужде'ние,возбужде'ния,воз
возбуждённость#возбуждённость,возбуждённости,возбуждённости,возбуждённостей,возбуждённости,возбуждённостям,возбуждённост
возбуждённый#возбуждённый,возбуждённая,возбуждённое,возбуждённые,возбуждённого,возбуждённой,возбуждённого,возбуждённых,
(сколько поместилось на экране).
Если не найдёшь, пиши, встретимся, принесу, а то файл большой.

Ссылка на newstar - хороша, если бы я смог разобраться чем корректно можно экспортировать файлы из вормата, который там (DBF/VAR ) в текстовый формат.
Я попробовал, даже из инета накачал штук 10 этих смотрелок, максимум, чего я добился - это открытия этих файлов в виде крякозябликов. Причем установка шрифтов с того же сайта не помогла.
Жаль конечно, что автор сайта умер, а то ему можно было бы сказать пару ласковых про его манету хранить данные в глюкавом формате и со специфичнымикодировками.
Вот файлик all_forms - реальная вещь, думаю, что как раз на ней и остановлючь, конвертну ее только в свой формат.
Потом наверно надо будет словарь синонимов найте где-нить и установить логические связи.
Что за формат VAR файла, я хоть убей не просекаю (это не дибейсовский DBT, ни фокспрошный FPT однако, когда я посмотрел его хексдампом, всё оказалось довольно просто. Стало также понятно, что DBF файл, в сущности, не нужен. В VAR файле кодировка ДОС — CP866. Что-то мне подсказывает, что записи разделены тройками нулевых байтов.
Если тебе очень нужно, пиши, в течение недели могу конвертнуть в human-readable формат. Special for you.
Можешьл примерно показать, что там есть, какие данные?
и что потом с ними можно сделать?
Формат VAR файла оказался несколько сложнее, чем я писал ранее. Он, кажется, такой:
(X) (текст в cp866) — один или более раз
(X+1) (текст в cp866) — один или более раз
(X+2) ----"----
...........
Здесь X — четырёхбайтный unsigned long, за которым следует байт \x12, записи с одинаковым X отвечают одному слову. С первой записью геморрой, т. к. перед ней X отсутствует.
Слабал наконец конвертирующий скрипт на коленке. Он страшно медленный, и я не дождался окончания (а окончания может и нет, поскольку он, возможно, зацикленный). Привожу его.
#!/usr/bin/perl -w
use Encode;
sub rec
{
my $str=shift;
Encode::from_to($str, 'cp866', 'koi8-r');
return $str;
}
open my $zfd, '<', 'zaliznia.var';
my $z;
read $zfd, $z, -s $zfd;
my $n=1;
$z=~s/^.{4}//;
outer: while(length $z)
{
my $pn=(pack 'L', $n);
my $rn=qr/\Q$pn\E/;
my $pnn=(pack 'L', $n+1);
my $rnn=qr/\Q$pnn\E/;
my $xn=sprintf '%02X', $n;
my $xnn=sprintf '%02X', $n+1;
if($z=~m/^$rnn/) {print "\n\n";}
while($z=~s/^$rn\x12(.*?$rn\x12)/$2/)
{
print "$xn:".rec($1)."\n";
}
if($z=~s/^$rn\x12(.*?$rnn\x12)/$2/)
{
print "$xnn:".rec($1)."\n";
}
$n++;
}
Короче, замени koi8-r на то, что тебе нужно, скорее всего, cp1251, проверь условие внешнего while, чтобы убрать возможную зацикленность.
Или, если не знаешь Перл или не хочешь разбираться, сообщи, я доведу до ума.
А скрипт выдаёт вот что:
.......
30:абитуриент
30:8 мо 1а
30:graduate matriculant
31:абитуриентка
31:8 жо 3*а
32:абитуриентский
32:8 п 3а!~
33:аблактировать
33:7 св-нсв 2а
34:аблактировка
34:9 ж 3*а
35:аблятив
35:6 м 1а
35:ablative
36:абляут
36:4 м 1а
36:ablaut gradation
.............
Это соответствует записям в словаре Зализняка, кроме того, для некоторых слов приводятся английские переводы. Расшифровка грамматических кодов есть в предисловии к бумажному Зализняку. Некоторые значки оттуда (вроде ромбиков) заменены на ASCII эквиваленты.
Если нужна вся распечатка, пиши. Мне кажется, скрипт будет работать у меня часа три.
Мне страшно интересно, чем это ты таким занимаешься?
Спасибо тебе отдельное, что утрудил себя разбиранием этого формата - не самое простое занятие.
Перл я не знаю, и особо ботать желание слабое, я больше по ПХП специализируюсь, но общую суть уловил, наверное смогу переписать и сам, надо только подумать как.
Фрагмент базы - я так понял, что как раз в спецсимволах и зашиты варианты связей.
Но вот где поискать расшифровку в бумажном виде- теряюсь.
По поводу интереса - если у тебя есть желание поработать забесплатно на благо интереса с возможностью получить от этого прибыль, но потом, и можешь мне помочь в php, mysql, html, дизайн - то милости просим в приват.
Если только ради интереса спросил - то я хочу стать конкурентом гугла.
Да, в спецсимволах связи, но не смысловые, как ты хотел, а чисто грамматические, или, лучше сказать, морфологические.
Для подобной работы у меня не хватит времени, и, главное, квалификации. Я любитель.
Когда-то заинтересовался задачей определения морфологической принадлежности русских слов. Идея была такая. Берётся слово в инфинитиве и изменяется согласно набору парадигм. Для каждой парадигмы полученные словоформы пропускаются через Ispell, и, если они оказываются правильными с точки зрения Ispell'а, утверждается, что слово принадлежит той или иной парадигме, заодно определяется список словоформ. Этот наивный подход в какой-то мере себя оправдал. Около 40% слов из длинного списка определялись.
Но знакомство со словарём Зализняка показало, что имеет значение ударение, а в тот момент я не располагал списком слов с ударениями.
А затея была в том, чтобы придумать интересную задачу для детей, обучающихся программированию. Боюсь, задача оказалась слишком сложной.
А спросил из интереса. И интересно было бы посмотреть на результаты твоего труда, когда он будет завершён. Держи в курсе.
Лингвисты, не пинайте ногами, что коряво выражаюсь. Я не специалист в лингвистике.
А то я закинул в базу 1.5 миллиона словоформ, и все равно - треть слов из главной страницы яндекса не определились. например москва, или саммет...
Поэтому хотелось бы иметь свой скрипт определения инфинитива, но писать его для каждого правила из испела отдельно - просто долго будет.
может знаешь какие либо реализации его на пхп?
Ну или в виде алгоритма?
Еще интересен словарь смысловых совпадений, ну или накрайняк - синонимов.
По поводу работы - как тоьлко стану конкурентом гугла - то все можно будет увидеть

Я делал так. В качестве парадигм брался ассоциативный массив, в котором в качестве ключей выступали коды грамматических форм, значения — процедуры, преобразующие инфинитив в данную форму, поле name — слово-образец; возможно наследование и перекрытие полей у сходной парадигмы:
paradigm
{
name=> "делать",
_vi=> sub {m/[оау]ть$/o},
_vdr1s=> sub {s/ть$/ю/o},
_vdr2s=> sub{s/ть$/ешь/o},
_vdr3s=> sub{s/ть$/ет/o},
_vdr1p=> sub{s/ть$/ем/o},
_vdr2p=> sub{s/ть$/ете/o},
_vdr3p=> sub{s/ть$/ют/o},
_vdp1s=> sub{s/ть$/л/o},
_vdp2s=> sub{s/ть$/л/o},
_vdp3s=> sub{s/ть$/л/o},
_vdp1p=> sub{s/ть$/ли/o},
_vdp2p=> sub{s/ть$/ли/o},
_vdp3p=> sub{s/ть$/ли/o},
_vdf1s=> sub{$_="буду $_"},
_vdf2s=> sub{$_="будешь $_"},
_vdf3s=> sub{$_="будет $_"},
_vdf1p=> sub{$_="будем $_"},
_vdf2p=> sub{$_="будете $_"},
_vdf3p=> sub{$_="будут $_"},
};
paradigm
{
name=> "сделать",
inherits=> "делать",
_vi=> sub {m/^(у|с|под?|над?|до).*[ау]ть$/o},
_vdf1s=> sub{s/ть$/ю/o},
_vdf2s=> sub{s/ть$/ешь/o},
_vdf3s=> sub{s/ть$/ет/o},
_vdf1p=> sub{s/ть$/ем/o},
_vdf2p=> sub{s/ть$/ете/o},
_vdf3p=> sub{s/ть$/ют/o},
};
Меня хватило на пару десятков парадигм. Они брались из головы и никак не связаны с правилами Испела.
Правила в русском словаре не совсем грамматического происхождения. Составители анализировали большую выборку текстов на русском и собирали достаточно часто встречающиеся словоформы. Затем программа на Лиспе находила, если я правильно понимаю, наиболее популярные правила, превращающие одно слово во множество других. Никакой гарантии, что множество других слов служат при этом словоформами данного, не давалось (хотя зачастую так и было). На основе этой статистики генерировался файл с правилами affix.dat (или как его там). Правила в аффикс дат, например, могли получать совершенную форму глагола из несовершенной. Могло происходить словообразование с помощью префиксов/суффиксов. По крайней мере, полученные связи между словами могли не быть морфологическими.
Видимо, для твоей задачи нужно в хэш помещать процедуры, обратные к этим. Будет долго. Но ничего более умного я не придумал. Что поделать, русский язык не прост.
Честно говоря, я наивно думал, что понятия "синонимы" и "смысловые совпадения" — синонимы (или хотя бы смысловые совпадения)

Нешел словарь синонимов - пипец он долго у меня парсится...
на базу из 1.5 миллиона слов накладывать его вообще нереально..
За 4 дня = 11 тысяч из 75 прошел только...

сейчас у меня около 1.5 мега (1500000) слов и словоформ и для 15000 основ из них проставлены смысловые совпадения.
все это в базе mysql.
еще надо проставить примерно 50000 смысловых совпадений, и на моем компе это займет дней 10 - если я буду этим заниматься.
При этом в этой базе находится только 70% слов с главной страницы яндекса, еще 30% в базе найти не получается, что значит, что словарь, из которого я парсил словоформы - далеко не полный.
можно посмотреть и сдампить если понравится за ящик пивка ?
сейчас, или после того, как добъются остатки смысловых сочетаний :?

я на неделю уеду, а работать ей еще дней 10...
так что ориентируйся на начало августа...
Оставить комментарий
stm7884696
со всевозможными словоформами, есть у кого?Или где нить достать можно, из инета скачать?
Подскажите?