Как сделать морфологический поиск?

12
antono
На сайте с 12.07.2004
Offline
301
#11

Спасибо всем ответившим. itman, я больше половины не понимаю что вы говорите :)

Хочу пока собрать базу окончаний и с ними попробовать поэкспериментировать. Нет уже готовых таких подборок? А то я искал список стоп-слов, набралось около 500.

!Иван FXS
На сайте с 16.11.2001
Offline
119
#12
I
На сайте с 26.05.2001
Offline
64
#13

Я, вообще-то собираюсь в ближайшее время (4-5 месяцев) сделать ispell-based библиотеку и выложить ее в свободный доступ. Значит, теперь подробнее, что я имел в виду. Пусть есть какое-то слово .

1) это слово словарное

2) это слово несловарное

Словарный случай решается с помощью генерации (скажем на момент сборки библиотеки всех словоформ) Для испелла это примерно миллион записей - сущие пустяки, можно и нужно грузить в память. В процессе генерации мы считаем статистику изменения окончаний при преобразования исходной формы в разные падежные ("спрягательные") формы. Для длинных слов берем статистику по последним пяти буквам, для слов покороче по трем или четырем. Что считать коротким, длинным и очень длинным слово нужно определять эмпирически или экспериментально. Пусть у нас (хотя в жизни может быть немного по-другому) получилось, что для окончания рнета наиболее вероятная исходная форма получается заменой окончания на рнет.

Таким образом для несловарного слова ИНТЕРНЕТА мы получаем, что наиболее вероятная исходная форма ИНТЕРНЕТ. Для больше достоверности можно брать две наиболее вероятные исходные формы.

Теперь важный момент: наряду со статистикой преобразования от конечной формы к исходной мы считаем и статистику правил генерации конечных форм из исходных. Таким образом, в приведенном выше примере для несловарного слова ИНТЕРНЕТА мы сможет не только выбрать базовую форму, но и сгенерировать другие формы, как то ИНТЕРНЕТУ, ИНТЕРНЕТОМ, и т.д и т.п.

Конечно, данный алгоритм будет делать иногда ошибки. У какого-то монстра, вроде даже у Яндекса, одно время английское слово dos считается производной формой от глагола do :-)

antono:
Спасибо всем ответившим. itman, я больше половины не понимаю что вы говорите :)
Хочу пока собрать базу окончаний и с ними попробовать поэкспериментировать. Нет уже готовых таких подборок? А то я искал список стоп-слов, набралось около 500.
Приходите завтра, завтра будет! (http://itman666.livejournal.com)
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий