Яндекс и части речи

12
F
На сайте с 15.11.2000
Offline
116
#11
Первоначальное сообщение от Ashmanov
На самом деле интеллектуальный поисковик дал вам невыполнимое обещание: различить в ТЕКСТЕ он может только словоформы вида 1) и 3).

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

  • документооборот
  • делопроизводство-2000
  • номенклатура дел
  • свое дело
  • своё дело
  • свое
  • делопроизводство

а для "девать" ничего нет. Аналогично, для "почта"

  • кроватка
  • бесплатная почта
  • chat
  • e-mail
  • знакомства
  • mail
  • электронная почта
  • mail.ru
  • чаты
  • почтовый ящик

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

Вы можете заметить, что будут ущемлены те, кто ищет именно слова "девать" и "почти". Верно. Но, во-первых, это небольшой процент пользователей, во-вторых, как уже упоминалось, можно выдавать сообщение с предложением поискать по более редкому из двух омонимов.

С уважением,

Александр Садовский.

I
На сайте с 15.12.2000
Offline
80
#12

Добрый день всем.

1. Над чем мы "работаем".

Игорь совершенно прав, говоря о трудностях и фактической невозможности снятия омонимии в самой общей постановке.

Проиллюстрировать можно нашей любимой фразой, допускающей 4 абсолютно корректных и совершенно разных толкования - ЭТИ ТИПЫ СТАЛИ ЕСТЬ В ЛИТЕЙНОМ ЦЕХЕ (автор фразы - Леонид Иомдин)

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

То, что мы уже сделали в индексаторе - это lightweight "статистический" дизамбгиуатор, оперирующий фактом вложенности парадигм (в тексте про писателя Сорокина нет форм "Сорокиной", а в тексте про Светлану Сорокину не бывает форм "Сорокиным" и т.п.). Ошибку он дает крайне редко.

То, что мы не сделали, но делаем в поиске - ранжирование с учетом совпадения форм и лемм (т.е. по запросу "дело" ранжировать выше словоформу "дело", затем словоформы, лемматизируемые к "дело", и лишь затем уникальные формы глагола "девать".

2. Транзитивности у нас нет и никогда не было - все леммы кладутся в индекс честно.

3. Ошибка с "дени" - это результат работы черезчур агрессивного леммера. Он уже давно поправлен (например в текущем Яндекс-Сайте этой ошибки нет), но мы хотим еще кое-что подчистить и в словаре и в алгоритмах перед патчеванием базы (каковое уже несколько раз переносили).

С уважением,

Илья

AA
На сайте с 16.04.2001
Offline
70
#13

Спасибо Игорю Ашманову за подробное и доступное освещение такого сложного вопроса, как омонимия.

Кстати, один из способов решения этой проблемы при разборе единичного текста был представлен на последнем Диалоге (один из авторов, кажется, из МИСиСа).

2Садовский

---------------

Вы можете заметить, что будут ущемлены те, кто ищет именно слова "девать" и "почти". Верно. Но, во-первых, это небольшой процент пользователей, во-вторых, как уже упоминалось, можно выдавать сообщение с предложением поискать по более редкому из двух омонимов.

---------------

Александр, ваши доводы полностью справедливы.

Однако подобная отсылка "к большинству" верна до тех пор, пока мы остаемся в нынешней аудитории поисковиков (ориентированной на электронные технологии). Это первое.

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

Вот тогда юзеры посмеются над поисковиком, "релевантно" дающим на всякое "дело" документооборот.

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

Но, повторюсь, вышесказанное не означает, что контекстами не надо заниматься. Только проблема, как всегда, сложнее, чем видится.

2Сегалович

Илья, не уточните ли насчет "дисамбгиуатора": правильно ли я понял, что он работает с небольшим текстом и практически верно разделяет омонимы?

Ведь кажется, что для верной работы статистического инструмента нужен довольно объемистый текст.

С уважением, Антонов Александр.
Ashmanov
На сайте с 21.11.2000
Offline
66
#14

Илья, я вот чего не понял: как всё-таки в Яндексе получается переход от "простоем" к "просто"?

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

С уважением, Игорь Ашманов Все для оптимизации (рассылка, сервисы): www.optimization.ru (www.optimization.ru) Сервис по созданию собственных поисковиков: www.flexum.ru (www.flexum.ru)
I
На сайте с 15.12.2000
Offline
80
#15
Первоначальное сообщение от Ashmanov
Единственная относительно легко реализуемая алгоритмически возможность - обрезать паразитную связь между формами "почти" и "почтой". То есть отменить "транзитивность" инцидентности лексем по их формам.
Но и для этого нужно менять логику индексирования. Не знаю, сделано ли уже это у Яндекса, а чтобы аккуратно проверить, нужно время.

Я имел в виду именно этот случай. Такой транзитивности у нас действительно нет и никогда не было.

почти: почти,почтить

почту: почта,почтить

почтой: почта

Таким образом, в Яндексе "почти" != "почтой"

Первоначальное сообщение от Ashmanov
Илья, я вот чего не понял: как всё-таки в Яндексе получается переход от "простоем" к "просто"? Это ведь уникальная словоформа существительного "простой". Она вроде бы не должна выводить на краткую форму прилагательного, если вы различаете индентификаторы лексем сразу на индексации?

А вот такая транзитивность, к сожалению, есть.

простоем: простой

просто: просто,простой

Как видите, "простоем" == "просто"

Этот конкретный случай на самом деле решаем, если класть еще и немного грамматической иноформации

простоем: простой+S

просто: просто+ADV,простой+ADJ

В этом случае получаем "простоем" != "просто"

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

Первоначальное сообщение от AlexA
Илья, не уточните ли насчет "дисамбгиуатора": правильно ли я понял, что он работает с небольшим текстом и практически верно разделяет омонимы? Ведь кажется, что для верной работы статистического инструмента нужен довольно объемистый текст.

Он запускается на относительно больших текстах, надежно работает на "несловарных словах" (мы называем их "бастардами"), для которых яндекс генерирует заведомо изыбточное число возможных парадигм (то есть лемм), и снимает небольшой процент омонимов (из 15% омонимов по тексту всего убивается около 3-4). Его достоинства: простота в реализации, логичность, малый оверхед во времени при индексировании.

С уважением,

Илья

2gray: этот топик явно просится в другой тред форума. :)

12

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