Я собираюсь создать API, который позволит программе отправить "отпечаток пальца" академической публикации, сопоставить ее с базой данных статей из журналов открытого доступа, и если она найдена, отправьте пользователю каноническую цитату. Первоначально это было бы для конкретной небольшой области исследований, поэтому не обязательно было бы иметь дело с 20 миллионами работ, чтобы быть успешными (даже если бы 1000 наиболее часто цитируемых бумаг в этой области были охвачены, это было бы огромным благом для производительности и сотрудничество).
Интересно, какая библиотека (которая может взаимодействовать с Ruby, в идеале) была бы лучшей для этого "отпечатка пальца". Я видел нечеткое совпадение Lucene, но похоже, что он работает на уровне слов, тогда как в этом случае мы, вероятно, захотим представить гораздо большее подмножество документа. Причина для нечетких совпадений состоит в том, что некоторые люди могут иметь препринт Word.doc, некоторые могут иметь окончательный PDF и т.д.
Я действительно ценю некоторые идеи здесь. Googling для "перцептивного хэша" заставляет меня в кучу нового материала. Я попытался обобщить многие мои выводы здесь.
Кажется, что SimHash, например реализация C - это путь, но мне еще нужно поэкспериментировать.