我做了同样的数据挖掘,并在glassdoor上从google和microsoft中提取了所有的访谈问题: http://letschat.info/?p=34
我有两个清单。
我想做的就是拉一些其他公司面试问题,并尝试在多个来源之间找到相似的问题。
我做了一些谷歌搜索,我找到了这个项目:
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/
答案 0 :(得分:2)
实际上,cosine similarity tf-idf vectors是Lucene实施的{{3}},是测量文档间相似性的常用(且非常基本)方法。如果我是你,我会尝试它(虽然你的文件可能有点短,因为它运行得很好)。 Lucene也做了一些很好的文本规范化。
答案 1 :(得分:0)
Simmetrics是一个提供多种字符串比较算法的库。检查哪些最适合您的需求。
您可能会考虑的一种方法,因为这些是“问题”是使用n-gram,提高准确性。