_TZ
|
sir
|
|
|
|
Рег.: 30.12.2002
|
Сообщений: 1083
|
|
Рейтинг: 227
|
|
Re: База данных слов русского языка...
[re: Alexus]
10.07.2006 00:05
|
|
|
Нет, реализаций, в частности на пхп или в виде алгоритма не знаю.
Я делал так. В качестве парадигм брался ассоциативный массив, в котором в качестве ключей выступали коды грамматических форм, значения - процедуры, преобразующие инфинитив в данную форму, поле name - слово-образец; возможно наследование и перекрытие полей у сходной парадигмы:
code:
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 (или как его там). Правила в аффикс дат, например, могли получать совершенную форму глагола из несовершенной. Могло происходить словообразование с помощью префиксов/суффиксов. По крайней мере, полученные связи между словами могли не быть морфологическими.
Видимо, для твоей задачи нужно в хэш помещать процедуры, обратные к этим. Будет долго. Но ничего более умного я не придумал. Что поделать, русский язык не прост.
Честно говоря, я наивно думал, что понятия "синонимы" и "смысловые совпадения" - синонимы (или хотя бы смысловые совпадения) . Нет у меня словаря синонимов, советую поискать на Яндексе.
|
|
Alexus
|
Carpal Tunnel
|
|
|
|
Рег.: 07.01.2003
|
Сообщений: 13534
|
Из: Москва
|
Рейтинг: 1061
|
|
Re: База данных слов русского языка...
[re: _TZ]
10.07.2006 20:31
|
|
|
ясно, спасибо.. Нешел словарь синонимов - пипец он долго у меня парсится... на базу из 1.5 миллиона слов накладывать его вообще нереально.. За 4 дня = 11 тысяч из 75 прошел только...
|
Было: ВАЗ2107 88г.в, ВАЗ21099 02г.в, A4 1.8TQМ 02г.в. Стало: Audi A4 1.8TQМ black 03г.в |
|
pilotrulit
|
enthusiast
|
|
|
|
Рег.: 19.11.2005
|
Сообщений: 297
|
|
Рейтинг: 507
|
|
Re: База данных слов русского языка...
[re: Alexus]
11.07.2006 12:50
|
|
|
кстати о результатах - если что-то вменямое получится отпиши плз или выложи на тестинг
|
|
Alexus
|
Carpal Tunnel
|
|
|
|
Рег.: 07.01.2003
|
Сообщений: 13534
|
Из: Москва
|
Рейтинг: 1061
|
|
Re: База данных слов русского языка...
[re: pilotrulit]
11.07.2006 21:32
|
|
|
что именно вменяемое тебя интересует? сейчас у меня около 1.5 мега (1500000) слов и словоформ и для 15000 основ из них проставлены смысловые совпадения. все это в базе mysql. еще надо проставить примерно 50000 смысловых совпадений, и на моем компе это займет дней 10 - если я буду этим заниматься.
При этом в этой базе находится только 70% слов с главной страницы яндекса, еще 30% в базе найти не получается, что значит, что словарь, из которого я парсил словоформы - далеко не полный.
|
Было: ВАЗ2107 88г.в, ВАЗ21099 02г.в, A4 1.8TQМ 02г.в. Стало: Audi A4 1.8TQМ black 03г.в |
|
pilotrulit
|
enthusiast
|
|
|
|
Рег.: 19.11.2005
|
Сообщений: 297
|
|
Рейтинг: 507
|
|
Re: База данных слов русского языка...
[re: Alexus]
12.07.2006 11:20
|
|
|
очень хорошо. можно посмотреть и сдампить если понравится за ящик пивка ?
|
|
Alexus
|
Carpal Tunnel
|
|
|
|
Рег.: 07.01.2003
|
Сообщений: 13534
|
Из: Москва
|
Рейтинг: 1061
|
|
Re: База данных слов русского языка...
[re: pilotrulit]
12.07.2006 22:57
|
|
|
сейчас, или после того, как добъются остатки смысловых сочетаний :??
|
Было: ВАЗ2107 88г.в, ВАЗ21099 02г.в, A4 1.8TQМ 02г.в. Стало: Audi A4 1.8TQМ black 03г.в |
|
pilotrulit
|
enthusiast
|
|
|
|
Рег.: 19.11.2005
|
Сообщений: 297
|
|
Рейтинг: 507
|
|
Re: База данных слов русского языка...
[re: Alexus]
13.07.2006 10:59
|
|
|
лучше наверное как добьются
|
|
Alexus
|
Carpal Tunnel
|
|
|
|
Рег.: 07.01.2003
|
Сообщений: 13534
|
Из: Москва
|
Рейтинг: 1061
|
|
Re: База данных слов русского языка...
[re: pilotrulit]
13.07.2006 18:11
|
|
|
тогда это не скоро... я на неделю уеду, а работать ей еще дней 10... так что ориентируйся на начало августа...
|
Было: ВАЗ2107 88г.в, ВАЗ21099 02г.в, A4 1.8TQМ 02г.в. Стало: Audi A4 1.8TQМ black 03г.в |
|
|
|