NLTK Text
класс 'similar()
способ использует Distributional Similarity.
help()
по методе состояний:
similar(word, num=20) method of nltk.text.Text instance
Distributional similarity: find other words which appear in the
same contexts as the specified word; list most similar words first.
Глядя in the source code, similar()
использует создание экземпляр класса ContextIndex
найти слова с похожими семантическими окнами. По умолчанию он использует окно с символом +/- 1.
Если мы расширим ваш пример дополнительными словами, чтобы дать похожие семантические окна для «красивого» и «красивого», мы получим результат, который вы ищете.
from nltk import word_tokenize
import nltk
text = "The girl is pretty isn't she? The girl is beautiful isn't she?"
text = nltk.Text(word_tokenize(text))
text.similar('pretty')
# prints beautiful
Поэтому, кажется, вам нужно иметь больше контекста в тексте, чтобы дать осмысленные результаты.
Вы только ищите метрику подобия на основе слова или уровня предложения? –
В некоторых случаях я должен найти сходство фразы, а иногда и слова. например если в данных у меня есть слово <.. что-то ...> ** «Исключения» ** <.. что-то ..>, то с помощью данного слова: ** «исключение» ** в качестве входного сигнала, мне следует сказать мне да, его синоним присутствует в данном наборе данных, и это ** «Исключения» **. –