【问题标题】:Syntactic similarity/distance between 2 sentences/string/text using nltk [duplicate]使用nltk的2个句子/字符串/文本之间的句法相似性/距离[重复]
【发布时间】:2016-12-22 22:23:45
【问题描述】:

我有 2 条文本如下

Text1 : 约翰喜欢苹果

Text2 : 迈克讨厌橙色

如果您检查以上两个文本,它们在句法上相似但在语义上具有不同的含义。

我要找

1) 两个文本之间的句法距离

2) 两个文本之间的语义距离

由于我是 NLP 的新手,有什么方法可以使用 nltk 做到这一点?

【问题讨论】:

    标签: python machine-learning nlp scikit-learn nltk


    【解决方案1】:

    是的,但不限于 nltk。用于句法距离的一种方法是词性标记(POS 标记),将句子的每个单词映射到特定标记:https://en.wikipedia.org/wiki/Part-of-speech_tagging

    例如,它将您的句子映射到这些:
    Text1:名词动词名词
    Text2:名词动词名词

    那么你就可以测量这两个句子的距离了。


    而对于语义,你需要语义词网,找到句子中每个词的同义词,然后尝试找到每个句子中词的同义词的交集

    【讨论】:

    • 这是一个很好的答案。也许您可以为第一种情况推荐 OP 比较方法,以及特定的词网络或资源?我相信未来的读者也会感兴趣
    • 感谢@Masoud 提供方向,只是有几个问题,我们有没有计算nltk 中的句法距离的内置库?如果不是,那么如何测量相同的距离?您可以提供任何参考/资源吗?
    【解决方案2】:

    对于语义,您可能想尝试 word2vec。您可以安全地对句子中单词的相似度进行平均,也可以根据语法提出自己的方法来衡量单词的权重。

    from gensim.models import Word2Vec
    
    model = Word2Vec.load(path/to/your/model)
    
    model.similarity('apple', 'orange')
    

    【讨论】:

    • 您可以为句法距离提供任何参考吗?我们有任何内置库支持吗?
    猜你喜欢
    • 2018-02-02
    • 2015-06-13
    • 1970-01-01
    • 1970-01-01
    • 2018-10-01
    • 2016-08-14
    • 1970-01-01
    • 2019-02-06
    • 2020-09-19
    相关资源
    最近更新 更多