Использование WordNet для определения семантического сходства между двумя текстами?

Как вы можете определить семантическое сходство между двумя текстами в Python, используя WordNet?

Очевидная предварительная обработка будет состоять в удалении стоп-слов и переноса, но что тогда?

Единственный способ, которым я могу придумать, - это рассчитать расстояние пути WordNet между каждым словом в двух текстах. Это стандарт для униграмм. Но это большие (400 слов) тексты, которые являются документами на естественном языке, со словами, которые не имеют какого-либо определенного порядка или структуры (кроме тех, которые наложены грамматикой английского языка). Итак, какие слова вы бы сравнили между текстами? Как бы вы сделали это в Python?

1 ответ

Одна вещь, которую вы можете сделать, это:

  1. Убить стоп-слова
  2. Найдите как можно больше слов, которые имеют максимальные пересечения синонимов и антонимов со словами других слов в одном документе. Давайте назовем эти "важные слова"
  3. Проверьте, совпадает ли набор важных слов каждого документа. Чем ближе они вместе, тем семантически похожи ваши документы.

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

Надеюсь это поможет

Другие вопросы по тегам