我想创建一个在其数据库中搜索类似文档的应用程序;例如。用户上传了一个文档(文本、图像等),我想查询我的应用程序是否有类似的。
我已经为该过程创建了必要的算法(指纹、特征提取、散列、散列比较等),我正在寻找一个框架,它将所有这些结合起来。
例如,如果我要在 Lucene 中实现它,我会执行以下操作:
- 创建一个自定义的“tokenizer”和“stemmer”(~特征提取和指纹)
- 比将创建的元素添加到 Lucene 索引
- 最后使用 MoreLikeThis 类查找相似的文档
所以,基本上 Lucene 可能是一个不错的选择——但据我所知,Lucene 并不是一个文档相似性搜索引擎,而是一个基于术语的搜索引擎。
我的问题是:是否有任何可能适合上述问题的应用程序/框架?
谢谢,克里斯
更新:我上面描述的过程似乎被称为基于内容的媒体(声音、图像、视频)。检索。
有很多项目为此使用了 Lucene,请参阅:http ://wiki.apache.org/lucene-java/PoweredBy(Lire、Alike 等),但仍然没有找到任何专用框架...