【发布时间】: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