【发布时间】:2016-12-22 22:23:45
【问题描述】:
我有 2 条文本如下
Text1 : 约翰喜欢苹果
Text2 : 迈克讨厌橙色
如果您检查以上两个文本,它们在句法上相似但在语义上具有不同的含义。
我要找
1) 两个文本之间的句法距离
2) 两个文本之间的语义距离
由于我是 NLP 的新手,有什么方法可以使用 nltk 做到这一点?
【问题讨论】:
标签: python machine-learning nlp scikit-learn nltk
我有 2 条文本如下
Text1 : 约翰喜欢苹果
Text2 : 迈克讨厌橙色
如果您检查以上两个文本,它们在句法上相似但在语义上具有不同的含义。
我要找
1) 两个文本之间的句法距离
2) 两个文本之间的语义距离
由于我是 NLP 的新手,有什么方法可以使用 nltk 做到这一点?
【问题讨论】:
标签: python machine-learning nlp scikit-learn nltk
是的,但不限于 nltk。用于句法距离的一种方法是词性标记(POS 标记),将句子的每个单词映射到特定标记:https://en.wikipedia.org/wiki/Part-of-speech_tagging
例如,它将您的句子映射到这些:
Text1:名词动词名词
Text2:名词动词名词
那么你就可以测量这两个句子的距离了。
而对于语义,你需要语义词网,找到句子中每个词的同义词,然后尝试找到每个句子中词的同义词的交集
【讨论】:
对于语义,您可能想尝试 word2vec。您可以安全地对句子中单词的相似度进行平均,也可以根据语法提出自己的方法来衡量单词的权重。
from gensim.models import Word2Vec
model = Word2Vec.load(path/to/your/model)
model.similarity('apple', 'orange')
【讨论】: