我正在编写一个机器人,用于分析帖子并使用数据库中含糊不清的相关字符串进行回复。我的目标不是为了保持连贯性,只是因为模糊的相似性可能会因为某人对主题一无所知(但知识足以尝试回复)。有哪些方法可以帮助我选择正确的答案?
我想到的一件事是创建一个词汇表,检查列表中的哪些元素在帖子中,并根据这些结果从数据库中获得回复。这种粗略的方法在大约10%的时间内成功(基于对随机帖子的100个回复)。我可能会用更多的单词扩展列表,但这种方法有其局限性。还有更好的吗?
(P.S。数据库相当大 - 约有500 000条回复)
答案 0 :(得分:0)
您可能希望研究矢量空间映射和相似性。 “模糊相关”问题最有可能通过相似性统计分析来处理。
查看这种新颖的相似用法:
答案 1 :(得分:0)
首先,我认为除非你准备编写大量代码,否则你所希望的最佳答案率将达到50%左右。
如果您愿意接受一些统计数据,请查看term frequency–inverse document frequency。基本上,您将使用不常用单词的频率来确定哪些关键字对文档至关重要,并将其用作tf-idf算法的输入,以使用相同的关键字提取其他回复。
然后,您可以将此进一步与白名单和黑名单技术相结合,以忽略常用字词并确定某些关键字的优先级。然后,您可以继续调整这些列表,以便在您看到它时起作用来增强算法。
您还可以使用更简单的字符串指标来测试基本相似度。看一下这个list of string metrics。
答案 2 :(得分:0)
有一个叫做“similar_text()”的PHP函数,例如: $ percent_similar = similar_text($ str1,$ str2);)这个效果相当不错但我在C#中没有提出类似的东西。如果您可以获得PHP函数的源代码,您可以尝试翻译它。我想也可能有Java版本。