Использование WordNet для определения семантического сходства между двумя текстами?
Как вы можете определить семантическое сходство между двумя текстами в Python, используя WordNet?
Очевидная предварительная обработка будет состоять в удалении стоп-слов и переноса, но что тогда?
Единственный способ, которым я могу придумать, - это рассчитать расстояние пути WordNet между каждым словом в двух текстах. Это стандарт для униграмм. Но это большие (400 слов) тексты, которые являются документами на естественном языке, со словами, которые не имеют какого-либо определенного порядка или структуры (кроме тех, которые наложены грамматикой английского языка). Итак, какие слова вы бы сравнили между текстами? Как бы вы сделали это в Python?
1 ответ
Одна вещь, которую вы можете сделать, это:
- Убить стоп-слова
- Найдите как можно больше слов, которые имеют максимальные пересечения синонимов и антонимов со словами других слов в одном документе. Давайте назовем эти "важные слова"
- Проверьте, совпадает ли набор важных слов каждого документа. Чем ближе они вместе, тем семантически похожи ваши документы.
Есть другой способ. Вычислить деревья предложений из предложений в каждом документе. Тогда сравните два леса. Я проделал похожую работу для курса давным-давно. Вот код (имейте в виду, что это было давно, и это было для класса. Так что код, по меньшей мере, хакерский).
Надеюсь это поможет