我有两个文本,如下
Text1: John likes apple
Text2: Mike hate orange
如果你检查以上两篇文章,它们在语法上是相似的,但在语义上有不同的含义。
我想找到
1)两个文本之间的句法距离
2)两个文本之间的语义距离
是否有任何方法可以使用nltk,因为我是NLP的新手?
可以,但不限于nltk。一种用于句法距离的方法是词性标注(POS tagging),它将句子中的每个单词映射到一个特定的标注:https://en.wikipedia.org/wiki/Part-of-speech_tagging
例如,它将你的句子映射到这些:
文本1:名词动词名词
文本2:名词动词名词
然后你可以测量这两个句子的距离。
对于语义,你需要语义词网并为句子的每个词找到同义词,然后尝试找到每个句子中单词同义词的交集
对于语义,您可能想要尝试word2vec。你可以安全地计算句子中单词的相似度平均值,或者你也可以根据其语法想出自己的方法来衡量单词的权重。
from gensim.models import Word2Vec
model = Word2Vec.load(path/to/your/model)
model.similarity('apple', 'orange')