Эффективный текстовый поиск по большому списку терминов: Python, PostgreSQL и Elasticsearch ⇐ Python
Эффективный текстовый поиск по большому списку терминов: Python, PostgreSQL и Elasticsearch
У меня есть список, содержащий термины длиной от 1 до 10 слов и содержащий примерно 500 000 записей. Моя цель — найти эти термины в длинном тексте (преобразованном из PDF-файла, обычно длиной от 1,5 до 2 страниц). Мне нужно выполнить поиск не только по точным совпадениям, но и с использованием нечетких (например, термин «Лионель Месси» должен соответствовать «Лионель Меси» в тексте) и близких вариантов (например, термин «Лионель Месси» должен соответствовать «Лионель Месси»). Ж. Месси» в тексте).
Я стремлюсь решить эту проблему практически в реальном времени (1–2 секунды). Я пробовал использовать древовидные структуры данных и распараллеливание, но особенно когда в игру вступает нечеткий аспект, большой размер списка и длина PDF-файла приводят к длительному времени обработки (около 30 секунд).
Как мне подойти к этой проблеме?
[*]Могу ли я справиться с этим на лету с помощью библиотек Python (с использованием распараллеливания, древовидных структур и т. д.)? [*]Есть ли в PostgreSQL функции, поддерживающие такой поиск? [*]Следует ли мне использовать такую платформу, как Elasticsearch?»
У меня есть список, содержащий термины длиной от 1 до 10 слов и содержащий примерно 500 000 записей. Моя цель — найти эти термины в длинном тексте (преобразованном из PDF-файла, обычно длиной от 1,5 до 2 страниц). Мне нужно выполнить поиск не только по точным совпадениям, но и с использованием нечетких (например, термин «Лионель Месси» должен соответствовать «Лионель Меси» в тексте) и близких вариантов (например, термин «Лионель Месси» должен соответствовать «Лионель Месси»). Ж. Месси» в тексте).
Я стремлюсь решить эту проблему практически в реальном времени (1–2 секунды). Я пробовал использовать древовидные структуры данных и распараллеливание, но особенно когда в игру вступает нечеткий аспект, большой размер списка и длина PDF-файла приводят к длительному времени обработки (около 30 секунд).
Как мне подойти к этой проблеме?
[*]Могу ли я справиться с этим на лету с помощью библиотек Python (с использованием распараллеливания, древовидных структур и т. д.)? [*]Есть ли в PostgreSQL функции, поддерживающие такой поиск? [*]Следует ли мне использовать такую платформу, как Elasticsearch?»
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Scipy.integrate.tplquad дает неправильный результат для интеграла по большому объему
Anonymous » » в форуме Python - 0 Ответы
- 67 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Введите подсказку для кортежа, длина которого равна известному большому числу.
Anonymous » » в форуме Python - 0 Ответы
- 16 Просмотры
-
Последнее сообщение Anonymous
-