文档相似性框架

时间:2013-05-03 06:09:02

标签: frameworks lucene search-engine

我想创建一个在其数据库中搜索类似文档的应用程序;例如。用户上传文档(文本,图像等),我想查询我的应用程序中的类似文档。

我已经为这个过程创建了必要的算法(指纹识别,特征提取,散列,哈希比较等),我正在寻找一个框架,它将所有这些结合起来。

例如,如果我在Lucene中实现它,我会执行以下操作:

  • 创建自定义“tokenizer”和“stemmer”(〜特征提取和指纹识别)
  • 将创建的元素添加到Lucene索引
  • 最后使用MoreLikeThis类查找类似的文档

所以,基本上Lucene可能是一个不错的选择 - 但据我所知,Lucene并不是一个文档相似性搜索引擎,而是一个基于术语的搜索引擎。

我的问题是:是否适用于上述问题的任何应用程序/框架?

谢谢, krisy

更新:似乎我上面描述的过程称为基于内容的媒体(声音,图像,视频。)检索。

有很多项目使用Lucene,请参阅:http://wiki.apache.org/lucene-java/PoweredBy(Lire,Alike等),但仍然没有找到任何专用框架......

2 个答案:

答案 0 :(得分:0)

如果我得到了正确的答案,您拥有自己的数据库,并且在用户上传时/之后您正在搜索数据库中的副本或副本/类似数据。

如果是这种情况,相比之下域名非常大。

1)对于Image,你必须使用模式匹配,有很少的文件可用于图像重复查找器,在网上,搜索它们你会得到很多选项,

2)对于文档,再次进行特征划分

  1. DOC(x)的
  2. PDF
  3. TXT
  4. RTF等..
  5. 每个文档都有不同的属性,现在Lucene可以帮助你,但它的搜索引擎

    在搜索语言模式时,我们需要检查许多内容,因为您正在搜索类似的内容(不完全相同)。

    因此,模糊语言程序会派上用场。

    这个要求太大了,论坛页面不足以解释所有内容,我希望这样做很多

答案 1 :(得分:0)

由于您使用的是Lucene,您可以查看SOLR。我确实意识到它不是一个专门用于你的目的的框架,但它确实在Lucene之上添加了一些非常方便的东西。鉴于Lucene的可插拔性,其跟踪记录以及有大量有用资源的事实,SOLR可能会帮助您完成工作。

此外,@ mindas指出的answer链接到the blog post,描述了如何使用SOLR实现目标的技术细节(但您可能已经在此期间阅读过)。