Python 如何使用NLP找出两个词是否具有相同的定义?

Python 如何使用NLP找出两个词是否具有相同的定义?,python,nlp,chatbot,Python,Nlp,Chatbot,如果您看到另一个问题与此相同的措辞,请忽略,它有不必要的代码 我用Python编写了一个非常基本的聊天机器人/程序,模拟从餐厅点菜。我想知道是否有任何方法可以使用自然语言处理(NLP)来找出两个单词是否相同?例如,NLP怎么能发现“我感觉不好”和“我感觉糟糕”的意思是一样的呢 实际上,你的问题很复杂。通过计算单词之间的距离,您可以在嵌入空间中测量两个单词之间的距离,称为Word2Vec,使用类似于欧几里德距离、余弦相似性等的方法。(您可以下载预先培训过的word2vec,如谷歌新闻) 但是,您提

如果您看到另一个问题与此相同的措辞,请忽略,它有不必要的代码


我用Python编写了一个非常基本的聊天机器人/程序,模拟从餐厅点菜。我想知道是否有任何方法可以使用自然语言处理(NLP)来找出两个单词是否相同?例如,NLP怎么能发现“我感觉不好”和“我感觉糟糕”的意思是一样的呢

实际上,你的问题很复杂。通过计算单词之间的距离,您可以在嵌入空间中测量两个单词之间的距离,称为Word2Vec,使用类似于欧几里德距离、余弦相似性等的方法。(您可以下载预先培训过的word2vec,如谷歌新闻)

但是,您提到了句子“我感觉不好”和句子“我感觉很糟糕”之间的相似性,在这种情况下很容易,您只需比较这两个句子,就会发现它们只有一个不同的部分,即“糟糕”和“糟糕”。最简单的方法是,您可以使用包含一组同义词的vocab来解决这个问题。这就是我们所称的规则库系统(我建议使用这种规则库方法,类似于if-else的嵌套)

当句子结构不同时,事情会变得更复杂,现在你需要某种算法来检测单词和结构。你们可能需要一些类似的东西来衡量句子之间的相似性。此外,如果你想创建一个不是规则库的模型,你需要大量的数据,我们称之为平行语料库,它只是一对与训练意义相似的句子。对于统计方法,你也需要大量的数据来计算概率,但比深度学习模型要少


最后,不要小看规则库方法,这就是苹果SIRI现在使用的,超级巨大的规则库。在改进模型的同时,还可以为规则库增加一些复杂性。希望这能回答你的问题实际上,你的问题很复杂。通过计算单词之间的距离,您可以在嵌入空间中测量两个单词之间的距离,称为Word2Vec,使用类似于欧几里德距离、余弦相似性等的方法。(您可以下载预先培训过的word2vec,如谷歌新闻)

但是,您提到了句子“我感觉不好”和句子“我感觉很糟糕”之间的相似性,在这种情况下很容易,您只需比较这两个句子,就会发现它们只有一个不同的部分,即“糟糕”和“糟糕”。最简单的方法是,您可以使用包含一组同义词的vocab来解决这个问题。这就是我们所称的规则库系统(我建议使用这种规则库方法,类似于if-else的嵌套)

当句子结构不同时,事情会变得更复杂,现在你需要某种算法来检测单词和结构。你们可能需要一些类似的东西来衡量句子之间的相似性。此外,如果你想创建一个不是规则库的模型,你需要大量的数据,我们称之为平行语料库,它只是一对与训练意义相似的句子。对于统计方法,你也需要大量的数据来计算概率,但比深度学习模型要少


最后,不要小看规则库方法,这就是苹果SIRI现在使用的,超级巨大的规则库。在改进模型的同时,还可以为规则库增加一些复杂性。希望这能回答您的问题

一种方法是使用单词嵌入,定义一些“亲密度阈值”,并检查该阈值内的单词。对于这种情况,您可以使用更经典的词义消歧方法,如wordnet。一种方法是使用单词嵌入,定义一些“接近度阈值”,并检查该阈值内的单词。对于这种情况,您可以使用更经典的词义消歧方法,如wordnet。