itman

Рейтинг
64
Регистрация
26.05.2001
Originally posted by Ashmanov:

С другой стороны, мы с товарищами за свою жизнь сделали десяток разных нечётких искалок, в том числе для Word.
Как оно появляется, имеем некоторое представление.

В смысле стандартный русский вордовый спеллер вы делали? (Это так, любопытство)

В частности, в 1998 мы вкручивали Русский Семантический Сервер в известную искалку Excalibur. Там тоже с гордостью продавцы говорили, что вот нечёткий поиск, что по заказу ФБР и т.п. А морфологию и тезаурус тем не менее купили и продают. Потому что нечёткий поиск СЛОВ - marketing bullshit. Не работает Экскалибур. На "свободолюб" находит что бы Вы думали? "долбо#б".

Ну я общался с людьми, которые экскалибур делали: они применили методику, которая для
русского языка (да и для английского тоже) не сильно применима (я имею в виду биграммы), совершенно согласен, что она дает порой удивительные результаты.

А потом эскалибур не там продавали. Нужно было задвигать его медикам и химикам. Там-то, как раз все хорошо. Среди десяткjd миллионов (и это не преувиличение) десятиэтажных терминов нужный без нечеткого поиска не найти.

Там, кстати, это не двухпроцентная фича, а насущная необходимостью


А нечёткий поиск ДОКУМЕНТОВ - серьёзная матлингвистика.

Скорее, мета-лингвистика, с ударами в бубен :-)). Кто впереди планеты всей: гугл, а в основу движка, если верить авторским статьям, заложены далеко не супер-идеи, а, скорее, идеи, основанные на здравом смысле.
Что ж, здравый смысл победил, да здравствует здравый смысл. Матлингвистика же, пока, увы отдыхает.





Originally posted by AlexA:
Прежде всего, спасибо за замечания. Многие из них действительно очень точные. Я думаю, что с двух процентов до большего количества всегда можно поднять. Яндекс же не отказывается от своего спелл-чекера, а какая у него полезность? Тоже, надо думать, исчисляется процентами.

Тут же надо еще и оценивать еще и сложность реализации, а она составляет те же несколько процентов от общей сложности проекта. Так что все не так уже страшно, а AterScan здесь, кстати, совсем не причем. Никто его никуда не приспосабливал.

Originally posted by Ashmanov:
А зачем убиваться-то? Какой физический смысл этой функции для пользователя? разве что самому размяться, молодую силушку потешить.

Здесь с уважаемым Игорем Станиславовичем не согласиться трудно. Идея понятна: взять работающий инструмент (AferScan) и приспособить его для решения другой задачи. Полезность же этой конкретной реализации оценена: 2% (С Ашманов, по-моему, <1%). Стоит ли играть на таких малых величинах?

Originally posted by euhenio:
Да никто и не пытается! :-) Речь идет исключительно о поиске похожих слов, пока
по крайней мере. Я совершенно согласен с тем, что в чистом виде, когда база большая
поиск с учетом похожих слов слишком сильно
шумит и может потребовать больших затрат.


______

Все-таки, непонятно, зачем реализовывать поиск опечаток в инете, а не в словаре. Конечно, СЕ должна искать с учетом опечаток, но после расширения запроса вариантами из словаря получим то же самое (А если словарь с тезаурусом, то можно и правильность варианта улучшить, учитывая остальные слова запроса). Словарь почти не растет, а Инет растет быстро => когда база Punto подрастет, такой поиск может быть уже неэффективен с т.зр. затрат времени.

Есть еще и случай, когда "мусор" в голове, а правильное слово в инете. К тому же, опять-таки, вспомним про хеширование/хэширование. Еще пример на эту тему: названия городов (редкие). А это уже не совсем мусор.

Так что мы ищем не совсем с учетом опечаток. К тому же поисковая машина ДОЛЖНА искать с учетом опечаток, как миниуму, она должна предлагать варианты правильного написания, если запрос вернул мало документов.

Еще раз не поленюсь сказать про "большой" спелл-чекер, редкие термины (я, например, искал название лекарства и нашел его именно так).

Про частотность различных опечаток - это нужно, конечно, исследовать, есть достаточно стандартные наборы: опечатки при наборе, распространенные ошибки.

Хочу заметить, что комбинаторный взрыв нам не страшен, потому что эти правила мы будем использовать на этапе ранжирования, когда получен список близких ключевых слов с помощью "грубого" алгоритма.

К тому же мы не генерируем "в лоб" все варианты: некое увеличение времени ранжирования произойдёт, но взрыва явно не будет.

А люди были, есть и будут... работать на благо Штатов, ЕС, Канады и Австралии.

Originally posted by Ashmanov:
А всё-таки - зачем нужен этот поиск опечаток?


Тем, кто раскручивает сайты (или свой сайт), нужен анализ запросов, то есть того, что ищут посетители, а не того мусора, что есть в сети. Для такого анализа есть Яндекс-Директ и Рамблер-Ассоциации.

Поисковая же машина не должна искать опечатки, потому что этот поиск сильно ухудшает качество. Объяснение простое:
а) полнота не растёт, потому что в подавляющем большинстве случаев на той же странице есть также и правильно написанное то же самое слово.
Опечаток, даже в Интернет-текстах, в среднем 2-5 на странице, то есть не более двух процентов.
Случай, когда слово сильно релевантно, при этом - одно на странице, да ещё при этом содержит ошибку - просто очень маловероятный.

б) поиск опечаток сильно ухудшает точность. Для проверки возьмите короткое слово в русском Ворде, удалите букву и нажмите F7. Получите список из десятков правильных вариантов. Ну и что - все их искать?

Это я к чему говорю: построение сколько-нибудь нормального подбора вариантов - дело очень трудное и долгое, много прикладной лингвистики придётся изучить. Замена "ц" на "тс" - ещё цветочки.
Потом придётся побороться с ранжированием вариантов по наибольшей распространённости (а как узнать частотность?), комбинаторным взрывом и так далее. Капитализация, буква -ё-, вставка пробела, замена похожей латиницы, прочие ужасы.

Для того же подбора для Ворда мы в своё время потратили-таки полгодика. И то - были люди в наше время, богатыри...

А зачем убиваться-то? Какой физический смысл этой функции для пользователя? разве что самому размяться, молодую силушку потешить.

n

Originally posted by euhenio:
По запросу /капри/ страниц
punto - 551
yandex - 8801

y/p=16;
yandex ходит 2 раза в месяц,
=> punto ходит раз в 8 месяцев (max)

соотношение говорит о размере базы, а не
о скорости обхода. все-таки 8 месяцев макс.
это несколько пессиместично.

=> ждите, пока бот punto придет...


[This message has been edited by euhenio (edited 25-12-2001).]

К тому же, фуджитсу и фуджицу - не совсем непохожие слова, как несложно видеть

Originally posted by itman:
Просто сначала я сделал вариант "грубого" поиска, а теперь еще собираюсь сделать более тонкое ранжирование, которой таки варианты, как фуджицу и фуджитсу будет учитывать.

n-граммы здесь не причем поиск идет по количеству очепяток в чистом виде.

Просто сначала я сделал вариант "грубого" поиска, а теперь еще собираюсь сделать более тонкое ранжирование, которой таки варианты, как фуджицу и фуджитсу будет учитывать.

n-граммы здесь не причем поиск идет по количеству очепяток в чистом виде.

Originally posted by Vyacheslav Tikhonov:
Originally posted by funsad:
Оказывается, "фуджицу" и "фуджитсу" -- совсем непохожие слова. А вот "Гейтс" и "Йейтс" -- ну прямо близнецы! Я даже обознался раз, глядя на изображение йети -- то ли йети, то ли Йейтс. Кстати, не ищите "йети" в Punto, там обитают лишь "сети", "дети", "тети", "лети", "пети" и другие загадочные создания.

Да нет, с этим как раз все понятно.
Просто в алгоритме, который использует Пунто, слово "йети" разбивается на буквосочетания из n-букв, например, для n=2 "йе","ет","ти" (называется n-грамматика). Затем идет поиск в словаре, организованном таким же образом и отсортированном в лексикографическом порядке, в результате чего найдены слова:
с|ети, д|ети, т|ети, л|ети, п|ети и т.д.
В исходном алгоритме, чтобы не возникало такой лажи, начало и конец слова должны помечаться маркерами й| и и|, но это, видимо, еще не сделано. К тому же, буквы "й" и "и" отождествляются, что дает дополнительный шум.
Ну а если я где-то не прав насчет того, как это работает, itman меня сейчас поправит.

Ничего удивительного: типичный пример неинформативного запроса. Президентов-то жутко много.

Originally posted by AiK:
Сегодня в 12:00 MSK Президент России отвечает на вопросы россиян в прямом эфире. Вопросы можно задать как по телефону, так и через сайт - www.ortrtr.ru Решил я проверить, помогут ли поисковики найти этот сайт. Задал простенький запрос: задать вопрос президенту. Только в Гугле искомый сайт оказался на первой странице.

Атстой пишется через О

[This message has been edited by AiK (edited 24-12-2001).]

Извините, может быть шутка была не очень уместна, но просто никакой Яндекс, Рамблер, итд... свою базу нам "дарить" не будет :-((.

Поэтому приходится, худо-бедно, самим по рунету ползать.

Originally posted by NightWing:
Originally posted by itman:
Да мы просто периодически совершаем набеги на серверные яндекса с выгребанием жестких дисков :-)))

Уважаемый itman. Как Вы безусловно знаете, многие поисковки берут индексы у других ботов, ничего удивительного и/или смешного я тут не вижу.
Буду благодарен, если кто-то ответит всё-таки "по теме".

Скажем так - это вырожденный случай. Здесь важно не то, что она ИЩЕТ с учетом только одной формы, а что она МОЖЕТ искать с учетом грамматических форм и неточного соответствия запроса документу (в том смысле, что некоторых слов может не быть)

Originally posted by Vyacheslav Tikhonov:
Originally posted by itman:
С точки зрения этого определения ЛЮБАЯ поисковая машина осуществляет нечеткий поиск с ранжированием по функции близости.

То есть если поисковая машина осуществляет поиск только по одной форме слова, введенной пользователем (а расстояние Левенштайна здесь точно равно нулю ), это тоже нечеткий поиск?
Всего: 444