В компьютерной лингвистике алгоритм Яровского — это алгоритм неконтролируемого обучения для разрешения неоднозначности смысла слов , который использует свойства человеческих языков «один смысл на словосочетание » и «один смысл на дискурс» для разрешения неоднозначности смысла слов. Согласно наблюдениям, слова, как правило, демонстрируют только один смысл в большинстве заданных дискурсов и в заданной словосочетании.
Алгоритм начинается с большого, неразмеченного корпуса , в котором он идентифицирует примеры заданного многозначного слова и сохраняет все соответствующие предложения в виде строк. Например, Яровски использует слово «растение» в своей статье 1995 года, чтобы продемонстрировать алгоритм. Если предполагается, что существует два возможных смысла слова, следующим шагом будет идентификация небольшого количества исходных словосочетаний, представляющих каждое значение, присвоение каждому значению метки (т. е. смыслу A и B), а затем назначение соответствующей метки всем учебным примерам, содержащим исходные словосочетания. В этом случае слова «жизнь» и «производство» выбираются в качестве начальных исходных словосочетаний для значений A и B соответственно. Оставшиеся примеры (85%–98% по Яровски) остаются неразмеченными.
Алгоритм должен изначально выбирать репрезентативные коллокации, которые будут точно и продуктивно различать смысл A и B. Это можно сделать, выбрав слова-источники из словарной статьи для этого смысла. Коллокации, как правило, оказывают более сильный эффект, если они соседствуют с целевым словом, эффект ослабевает с расстоянием. Согласно критериям, приведенным в Yarowsky (1993), будут выбраны слова-источники, которые появляются в наиболее надежных коллокационных отношениях с целевым словом. Эффект гораздо сильнее для слов в отношениях предикат-аргумент, чем для произвольных ассоциаций на том же расстоянии от целевого слова, и гораздо сильнее для коллокаций со словами-содержанием, чем со словами-функциями. При этом слово-сочетание может иметь несколько коллокационных отношений с целевым словом по всему корпусу. Это может дать слову разные рейтинги или даже разные классификации. В качестве альтернативы это можно сделать, определив один определяющий коллокат для каждого класса и используя для семян только те контексты, которые содержат одно из этих определяющих слов. В качестве автоматического источника для таких определяющих терминов можно использовать общедоступную базу данных WordNet . Кроме того, слова, которые встречаются рядом с целевым словом с большой частотой, могут быть выбраны в качестве репрезентативных коллокаций семян. Этот подход не является полностью автоматическим, судья-человек должен решить, какое слово будет выбрано для каждого смысла целевого слова, выходные данные будут надежными индикаторами смыслов.
Затем алгоритм списка решений используется для определения других надежных коллокаций. Этот обучающий алгоритм вычисляет вероятность Pr(Sense | Collocation), а список решений ранжируется по логарифмическому отношению правдоподобия:
Затем будет использоваться алгоритм сглаживания , чтобы избежать значений 0. Алгоритм списка решений решает множество проблем в большом наборе не независимых источников доказательств, используя только наиболее надежную часть доказательства, а не весь набор соответствующих коллокаций.
Новый результирующий классификатор затем будет применен ко всему набору выборки. Добавьте те примеры в остатке , которые помечены как A или B с вероятностью выше разумного порога, в исходные наборы. Алгоритм списка решений и указанный выше шаг добавления применяются итеративно . По мере добавления новых изученных словосочетаний в исходные наборы, набор смысла A или смысла B будет расти, а исходный остаток будет сокращаться. Однако эти словосочетания остаются в исходных наборах только в том случае, если их вероятность классификации остается выше порогового значения, в противном случае они возвращаются в остаток для более поздней классификации. В конце каждой итерации можно использовать свойство «один смысл на дискурс», чтобы помочь предотвратить изначально неправильно помеченные коллокаты и, следовательно, улучшить чистоту исходных наборов.
Чтобы сильные коллокации не стали индикаторами неправильного класса, порог включения класса необходимо изменять случайным образом. Для этой же цели после промежуточной сходимости алгоритму также потребуется увеличить ширину контекстного окна.
Алгоритм будет продолжать итерацию до тех пор, пока не будет найдено больше надежных словосочетаний. Свойство «Один смысл на дискурс» может быть использовано здесь для исправления ошибок. Для целевого слова, имеющего бинарное смысловое разбиение, если вхождения большинства смысла A превышают вхождения второстепенного смысла B на определенный порог, то вхождения меньшинства будут перемаркированы как A. По словам Яровски, для того, чтобы любой смысл был явно доминирующим, вхождения целевого слова должны быть не менее 4.
Когда алгоритм сходится к стабильному остаточному набору, получается окончательный список решений целевого слова. Самые надежные словосочетания находятся в верхней части нового списка вместо исходных начальных слов. Затем исходный неразмеченный корпус помечается метками смысла и вероятностями. Окончательный список решений теперь можно применять к новым данным, словосочетание с наивысшим рангом в списке используется для классификации новых данных. Например, если самое высокоранговое словосочетание целевого слова в новом наборе данных имеет смысл A, то целевое слово классифицируется как смысл A.