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

12
antono
На сайте с 12.07.2004
Offline
267
5514

Как можно реализовать поиск слов с учетом их морфологии? Не очень навороченный, но хотя бы чтоб окончания слов различал.

Например на банк_рефератов при поиске окончания слов обрезаются и поиск происходит по обрезкам слов. Это получается нужно составить таблицу с окончаниями и обрабатывать поисковый запрос через нее. На верном ли я пути? И где вообще можно почитать по этой теме?

Y
На сайте с 02.01.2006
Offline
138
#1

Если лень заморачиваться словарями словоформ, то у длинных слов режем 4 буквы, у средних по длинне слов режем 3 буквы, у коротких 2 и совсем коротких 1, у слов из 3-х букв не режем ничего ;)

Составляем массив стоп-слов, которые просто выкидываем из запроса, и дальше занимаемся проблемами ранжирования, в которых надо учитывать в первую очередь было ли точное вхождение слова или словоформа (за один проход у меня делать не получалось :( ).

antono
На сайте с 12.07.2004
Offline
267
#2

Ага, спасибо, идея ясна, нужно попробвать сначала обрезать слова.

Кстати у меня ищет и целиком слово - придается уму больший вес, и часть члова - соответственно меньший вес, делается за 1 проход.

Y
На сайте с 02.01.2006
Offline
138
#3

а по чем поиск производится? по базе? или все как положено?

lagif
На сайте с 15.12.2004
Offline
30
#4

1) Морфологический анализатор, основанный на словаре.

2) Вероятностный стемминг.

Это тоже пройдет...
bondarev.pp.ru
На сайте с 29.09.2005
Offline
202
#5

Достаточно обрезать все существующие в словаре окончания. Их не так много - можно достать в любом справочнике по русскому языку.

Даже такой нехитрый прием значительно повышает качество поска по сравнению с обрезанием определенного количества символов.

bondarevpipes.com (http://ru.bondarevpipes.com/)
antono
На сайте с 12.07.2004
Offline
267
#6
Yukko:
а по чем поиск производится? по базе? или все как положено?

да, по базе

Y
На сайте с 02.01.2006
Offline
138
#7

lagif, для простого сайта слишком сложно :)

bondarev.pp.ru:
значительно повышает качество

насчет того, что уж ОЧЕНЬ значительно повышает, я бы не сказал :) хотя рациональное зерно в этом есть, согласен.

pelvis
На сайте с 01.09.2005
Offline
345
#8

lagif, Как думаете, всерьез? Если так, то желаю удачи и многих знаний топикстартеру.

Продаю вывески. Задарма и задорого (https://www.ledsvetzavod.ru/)
I
На сайте с 26.05.2001
Offline
64
#9

Поддерживаю,

1) генерите испеллом словоформы

2) по сгенерированным и исходынм словоформам строите автоматический вероятностый анализатор, который, скажем по последним 3-5 буквам определяет наиболее вероятную исходную форму слова.

lagif:
1) Морфологический анализатор, основанный на словаре.
2) Вероятностный стемминг.
Приходите завтра, завтра будет! (http://itman666.livejournal.com)
lagif
На сайте с 15.12.2004
Offline
30
#10

Yukko, Что сложного в стемминге?

Если поиск по сайту - тем более, больше места и времени развернуть стемминг при обработке запросов и индексировании. На чем это все реализовывать - совсем ведь другой вопрос...

pelvis, Не знаю, вдруг серьезно :)

itman, :)

antono, Есть уже неплохо отлаженные алгоритмы стемминга. Хотя, они, конечно, не исключают курьезов. Ни один алгоритм точный их здесь не исключает :)

12

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