Строка нечеткого совпадения с 1 миллионом строк ⇐ Python
Строка нечеткого совпадения с 1 миллионом строк
У меня есть база данных с 1 миллионом строк, и на основе данных пользователя мне нужно найти для него наиболее релевантные совпадения.
Раньше код писался с использованием библиотеки fuzzywuzzy. Соотношение между двумя строками было рассчитано, чтобы показать, насколько они похожи.
Проблема в том, что нам пришлось запускать функцию отношения для каждой строки из базы данных, а это означало 1 миллион вызовов функций, а производительность была очень плохой. Мы никогда не думали, что получим столько данных.
Я ищу лучший алгоритм или решение для обработки поиска в этом случае. Я наткнулся на что-то под названием TF-IDF (частота документа, обратная частоте терминов). Это было описано как решение для «нечеткого сопоставления в масштабе», намного более быстрое.
К сожалению, я не смог вникнуть в это и полностью понять, как это работает, и чем больше я об этом читаю, тем больше думаю, что это не то, что мне нужно, поскольку все примеры, которые я видел пытаются найти похожие совпадения между двумя списками, а не между одной строкой и одним списком.
Значит, я на неправильном пути? И если да, не могли бы вы дать мне несколько идей о том, как мне справиться с этим сценарием? К сожалению, полнотекстовый поиск работает только с точными совпадениями, поэтому в нашем случае мы определенно хотим использовать нечеткий поиск.
И если вы собираетесь предложить идею использования отдельной поисковой системы, мы не хотим добавлять новый инструмент в нашу инфраструктуру только ради этого.
У меня есть база данных с 1 миллионом строк, и на основе данных пользователя мне нужно найти для него наиболее релевантные совпадения.
Раньше код писался с использованием библиотеки fuzzywuzzy. Соотношение между двумя строками было рассчитано, чтобы показать, насколько они похожи.
Проблема в том, что нам пришлось запускать функцию отношения для каждой строки из базы данных, а это означало 1 миллион вызовов функций, а производительность была очень плохой. Мы никогда не думали, что получим столько данных.
Я ищу лучший алгоритм или решение для обработки поиска в этом случае. Я наткнулся на что-то под названием TF-IDF (частота документа, обратная частоте терминов). Это было описано как решение для «нечеткого сопоставления в масштабе», намного более быстрое.
К сожалению, я не смог вникнуть в это и полностью понять, как это работает, и чем больше я об этом читаю, тем больше думаю, что это не то, что мне нужно, поскольку все примеры, которые я видел пытаются найти похожие совпадения между двумя списками, а не между одной строкой и одним списком.
Значит, я на неправильном пути? И если да, не могли бы вы дать мне несколько идей о том, как мне справиться с этим сценарием? К сожалению, полнотекстовый поиск работает только с точными совпадениями, поэтому в нашем случае мы определенно хотим использовать нечеткий поиск.
И если вы собираетесь предложить идею использования отдельной поисковой системы, мы не хотим добавлять новый инструмент в нашу инфраструктуру только ради этого.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Многопроцессорность Python, как избежать создания кортежа с миллионом объектов
Anonymous » » в форуме Python - 0 Ответы
- 10 Просмотры
-
Последнее сообщение Anonymous
-