我是人工智能领域的初学者… 我可以使用GATE或其他任何自然语言处理工具,但对于这个问题我没有答案:
你知道如何评估两个句子的相似度吗?即使是处理大数据集?
你有什么建议吗?我可以使用排列的数量、长度、词元的数量、将它们转换为音位等… 但我不知道应该使用什么测试方法。
我的目标是: – “你好贾维斯” – “你好罗曼,你好吗”
- "你好贾维斯"- "你好罗曼,你好吗"- "你好斯威夫特先生"- 我不知道你在期待什么,这是否像"你好贾维斯"?- 是的- 好的,你好罗曼,你好吗?- "你好斯威夫特先生,你好吗?"- 我不知道你在期待什么。
示例
通过1、2、3或n只是相似度量表的一个例子。
基础
- "你好AI" 接近于 - "你好AI" 相似度为0 - "你好IA" 相似度为1 - "你好贾维斯" 接近于 - "你好IA" 相似度为2 - "你好AI" 相似度为2- "你好!斯威夫特先生" 接近于 - "你好IA" 相似度为3 - "你好AI" 相似度为3 - "你好贾维斯" 相似度为2
较复杂
- "你好AI" 在(词元长度、词元词、语法上、句法上)接近于 - "你好AI" 相似度为(0,0,0,0) - "你好IA" 相似度为(0,1,0,0) - "你好贾维斯" 接近于 - "你好IA" 相似度为(0,2,1,1) - "你好AI" 相似度为(0,2,1,1)- "你好!斯威夫特先生" 接近于 - "你好IA" 相似度为(1,2,2,2) - "你好AI" 相似度为(1,2,2,2) - "你好贾维斯" 相似度为(1,2,2,2)
回答:
如果你准备好学习硬核NLP,你可以为此任务使用一个分类器。例如,可以看看斯坦福NLP(Java)或NLTK(Python)。
如果你想保持简单并使用开箱即用的解决方案,可以看看Wit.ai API,它正好符合你的需求,甚至更多。