【问题标题】:words related to a topic (another word) using NTLK使用 NTLK 与主题(另一个词)相关的词
【发布时间】:2018-01-24 00:05:55
【问题描述】:

我正在基于意图动作机制构建自己的虚拟助手,并希望对用户编写的句子运行一些 NLP。

我想找出与某个主题相关的词(另一个词),以便我可以定义一个意图,例如:

如果用户问:明天会下雨吗?今天天气怎么样?是晴天吗?今天下午会不会有风?

我希望能够说雨、天气、晴天、太阳与称为天气的意图相关,以便我可以与相关 API 通信并检索请求的信息。

我目前正在使用 Python 3 和 NLTK,但使用同义词、父路径和相似性并不能真正解决问题:

wordFromList1 = wn.synsets('weather')[0]
wordFromList2 = wn.synsets('cold')[0]
value = wn.wup_similarity(wordFromList1, wordFromList2)
print(value)
---------------------------
0.1

你可以看到这里寒冷和天气的相似性真的很弱。有什么建议吗?

谢谢,

【问题讨论】:

  • 编程题是什么?
  • 这里没有简单的答案。您可以尝试比较词向量(即 GloVe),但您可能必须为此手动编程/训练系统。
  • @bivouac0 训练系统是指将机器学习融入我的程序中的神经网络算法?
  • 您可以使用正则表达式匹配并将这些相似的词包含在匹配器中,或者您可以使用神经网络并包含不同的句子作为这些词的训练数据并将它们映射到相同的意图。请注意,使用 NN 方法,您可以使用预训练的词 vecs,因此您可以从某种程度的相似性开始。

标签: python python-3.x nlp artificial-intelligence nltk


【解决方案1】:

是的,不要为此使用 wordnet!它可能(非常松散地)与解决您想要的问题相关,但会产生可怕的准确性和召回率,除非您将其设计出来。对于实际结果,您需要做的是查看诸如 LSA、LDA 或词嵌入之类的东西,类似于这些方面的东西

【讨论】:

    猜你喜欢
    • 2018-06-11
    • 1970-01-01
    • 2016-08-31
    • 2018-01-19
    • 1970-01-01
    • 2011-05-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多