找到问题相似度的算法

时间:2012-02-26 20:31:18

标签: algorithm search data-mining

我做了同样的数据挖掘,并在glassdoor上从google和microsoft中提取了所有的访谈问题: http://letschat.info/?p=34

http://letschat.info/?p=37

我有两个清单。

我想做的就是拉一些其他公司面试问题,并尝试在多个来源之间找到相似的问题。

我做了一些谷歌搜索,我找到了这个项目:

http://lucene.apache.org/core/

我可以做以下事情: http://javatechniques.com/blog/lucene-in-memory-text-search-example/

然而,这似乎有点矫枉过正。是否有一个更简单的算法可以帮助我找到类似的问题?堆栈溢出使用什么算法?

我在考虑根据两个问题之间匹配的单词数生成分数,然后按这样过滤。

我想尝试将问题列表缩小到一系列独特的问题列表。

更新

我决定使用lucene。我将整个列表放入索引并遍历列表并使用lucene搜索10个类似的项目。然后我将10个结果的分数加起来,看看最常问的问题。

以下是实际代码的链接:http://letschat.info/ranking-of-reduced-amazon-questions/

这不是太复杂。以下是结果示例: http://letschat.info/ranking-of-reduced-amazon-questions/

来自原始来源: http://letschat.info/list-of-amazon-questions/

2 个答案:

答案 0 :(得分:2)

实际上,cosine similarity tf-idf vectors是Lucene实施的{{3}},是测量文档间相似性的常用(且非常基本)方法。如果我是你,我会尝试它(虽然你的文件可能有点短,因为它运行得很好)。 Lucene也做了一些很好的文本规范化。

答案 1 :(得分:0)

Simmetrics是一个提供多种字符串比较算法的库。检查哪些最适合您的需求。

您可能会考虑的一种方法,因为这些是“问题”是使用n-gram,提高准确性。