Метод Леска

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

Алгоритм Леска — классический алгоритм разрешения лексической многозначности, основанный на знаниях, предложенный Майклом Леском в 1986 году.

Описание[править | править вики-текст]

Майкл Леск попытался самостоятельно решить задачу сопоставления слова и его смысла в английском языке с помощью машиночитаемых словарей. Идея метода заключалась в поиске значения слова в списке словарных определений с учетом контекста, где это слово использовано. Основным критерием для выбора значения послужило следующее правило: заложенный в этом определении смысл должен был частично совпадать со смыслом значений соседних слов в контексте[1].

Принцип работы алгоритма[править | править вики-текст]

Наглядное представление работы алгоритма Леска
  1. Отделение контекста для рассматриваемого слова - не более 10 ближайших по расположению слов.
  2. Поиск всех определений в словаре (любом другом подобном источнике знаний) для рассматриваемого слова.
  3. Поиск слов из контекста в каждом найденном определении. Если какое-либо слово из контекста присутствует в определении, тогда этому определению дается балл (повышается процент верности определения для данного контекста).
  4. В качестве наиболее вероятного значения выбирается то, для которого такое пересечение оказалось больше.

Пример работы алгоритма[править | править вики-текст]

В качестве примера можно рассмотреть задачу - определить значение слова «кошка» в тексте «в Китае выведены новые породы кошек». Предположим, что словарь выдаст два определения для слова «кошка»:

  1. «кошка»1 — домашнее животное из породы кошачьих;
  2. «кошка»2 — предмет альпинистского снаряжения.

Алгоритм покажет, что с определением (1) у этого текста одно общее слово — «породы», а с определением (2) ни одного. Следовательно, алгоритм Леска выберет значение «кошка»1.

Примечания автора метода[править | править вики-текст]

Преимущества алгоритма[править | править вики-текст]

Недостатки алгоритма[править | править вики-текст]

В алгоритме Леска для поиска значений новых слов не используются уже найденные определения. Алгоритм смотрит на каждое слово в отдельности, ищет для него значение, при выяснении корректного смысла одного слова, алгоритм проделывал те же действия со следующим словом[1].

Модификации алгоритма[править | править вики-текст]

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

Улучшение метода[править | править вики-текст]

В качестве возможных путей улучшения исходного алгоритма Леска используется привлечение дополнительной информации о сходстве слов и учет значимости совпадений для различных слов.

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

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

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

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

В качестве примера можно рассмотреть два значения слова «калейдоскоп»:

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

И текст «Красивые цветные узоры калейдоскопа завораживают и взрослых, и детей». С первым определением у этого текста два общих слова, а со вторым — ни одного. Следовательно, алгоритм Леска выберет первое значение.

Критика алгоритма и другие схожие методы[править | править вики-текст]

К сожалению, подход Леска очень чувствителен к точной формулировке определений, таким образом, отсутствие определенного слова может радикально изменить результаты. Ещё одним минусом является то, что алгоритм определяет перекрытия только среди толкований смыслов, которые рассматриваются. Это существенное ограничение, которое состоит в том, что толкования словаря имеют тенденцию быть довольно короткими и не обеспечивают достаточный словарь, чтобы показывать разницу между схожими по смыслу определениями.

В последнее время появилось большое количество работ, предлагающих использовать модификации алгоритма Леска. В этих работах выдвигаются идеи, связанные с дополнительным использованием различных словарей (тезаурусы, словари синонимов) или моделей (морфологические, синтаксические и т. п.), см., например[2]:

Относительно алгоритма Леска есть много исследований и расширений:

  • Квонг (Kwong), 2001 [3];
  • Нэстасе и Шпакович (Nastase and Szpakowicz), 2001 [4];
  • Уилкс и Стивенсон (Wilks and Stevenson), 1998, 1999 [5] [6];
  • Махеш и др, (Mahesh), 1997;
  • Коуи и др., (Cowie), 1992 [7];
  • Яровски (Yarowsky), 1992 [8];
  • Пук и Катлет (Pook and Catlett), 1988 [9];
  • Калгриф и Розенцвейг (Kilgarriff & Rosensweig), 2000 [10];
  • Александр Гельбух, Григорий Сидоров, 2004 [11];.

Точность метода[править | править вики-текст]

Относительно больших экспериментов на проверку этого метода не проводилось, кроме как на корпусе книги «Гордость и предубеждение» и газеты Associated Press. Результат варьировался от 50 % до 70 %.

Примечания[править | править вики-текст]

  1. 1 2 3 4 5 6 7 Lesk, Michael, 1986
  2. Необходимо заметить, что все эти работы, кроме (Nastase and Szpakowicz, 2001), ориентированы на обработку обычных текстов, а не словарей, и ни одна не использует в качестве материала для обработки именно толковый словарь. Кроме того, практически всегда дело ограничивается достаточно небольшими экспериментами и не производится обработка достаточно больших массивов данных.
  3. Kwong, 2001
  4. Nastase & Szpakowicz, 2001
  5. Wilks & Stevenson, 1998
  6. Wilks & Stevenson2, 1999
  7. Cowie et al, 1992
  8. Yarowsky, 1992
  9. Pook & Catlett, 1988
  10. Rosenzweig & Kilgarriff, 2000
  11. Гельбух и Сидоров, 2004

Литература[править | править вики-текст]