【发布时间】:2012-02-14 15:37:13
【问题描述】:
我正在考虑构建一个 API,它可以让程序提交学术出版物的“指纹”,将其与开放获取期刊的文章数据库进行匹配,如果找到,则向用户发送规范的引文信息。最初这将针对特定的小型研究领域,因此不一定需要处理 2000 万篇论文才能成功(即使涵盖了该领域最常引用的 1000 篇论文,这对生产力来说也是一个巨大的福音和协作)。
我想知道哪个库(理想情况下能够与 Ruby 交互)最适合进行这种“指纹识别”。我见过 Lucene 的模糊匹配,但这似乎适用于单词级别,而在这种情况下,我们可能希望提交文档的更大子集。进行模糊匹配的原因是有些人可能有 Word.doc 预印本,有些人可能有最终 PDF 等。
我真的很欣赏这里的一些想法。谷歌搜索“感知哈希”让我进入一堆新材料。我试图总结我的许多发现here。
似乎SimHash,例如the C implementation 是可行的方法,但我仍然需要进行更多实验。
【问题讨论】:
-
这篇文章可能很有趣:stackoverflow.com/questions/8544583/…
-
提供库的另一种方法是详细说明算法,尽管我怀疑在纯 Ruby 中完成它是否足够快。一位朋友提到的一个想法是使用某种差异来查看文本与数据库中每个文本的“不同”程度。由于数据库中有数千个文本,这可能无法扩展,但我们也许可以对文本中的一些单词进行搜索,以快速减少集合以匹配到可管理的数量。尝试了不同的单词差异,但没有发现任何能够可靠地吐出“差异”/转换等的数量,而没有很多其他信息
标签: ruby full-text-search string-matching fingerprint