Можете ли вы предложить хорошую реализацию Minhash?

Я пытаюсь найти реализацию с открытым исходным кодом minhash, которую я могу использовать для своей работы.

Функциональность, которая мне нужна, очень проста, учитывая набор как входной, реализация должна вернуть свой minhash.

Реализация python или C будет предпочтительнее, на всякий случай, когда мне нужно взломать ее для работы.

Любые указатели будут очень полезны.

С уважением.

Ответ 1

Вам следует взглянуть на следующие библиотеки с открытым исходным кодом в порядке. Все они находятся на Python и показывают, как можно вычислить сходство документов с помощью LSH/MinHash:

lsh
LSHHDC: локально-чувствительная высокоуровневая кластеризация на основе хеширования
MinHash

Ответ 2

Взгляните на библиотеку datasketch . Он поддерживает сериализацию и слияние. Он реализован в чистом питоне без внешней зависимости. Go версия имеет те же самые функциональные возможности.

Ответ 3

Я предлагаю вам эту библиотеку, особенно если вам нужна настойчивость. Здесь вы можете использовать redis для хранения/получения всех ваших данных.

У вас есть возможность выбрать базу данных redis или просто использовать встроенные словари python в памяти.

Выполнения с использованием redis, по крайней мере, если сервер redis запущен на вашей локальной машине, почти идентичны тем, которые достигаются с помощью стандартных словарей python.

Вам нужно только указать словарь конфигурации, например

config = {"redis": {"host": 'localhost', "port": '6739', "db": 0}}

и передать его как аргумент конструктору класса LSHash.