У меня есть строковый буфер огромного текстового файла. Мне нужно искать заданные слова / фразы в строковом буфере. Какой эффективный способ это сделать?
Я пробовал использовать повторные совпадения модулей. Но поскольку у меня есть огромный текстовый корпус, в котором мне нужно искать. На это уходит много времени.
Дан словарь слов и словосочетаний.
Я просматриваю каждый файл, читаю его в строке, ищу все слова и фразы в словаре и увеличиваю счетчик в словаре, если ключи найдены.
Одна небольшая оптимизация, которую мы подумали, заключалась в том, чтобы отсортировать словарь фраз / слов от максимального количества слов до наименьшего. Затем сравните позицию начала каждого слова из строкового буфера и сравните список слов. Если одна фраза найдена, мы не ищем другие фразы (так как она соответствует самой длинной фразе, что нам и нужно)
Может ли кто-нибудь подсказать, как идти по слову в строковом буфере. (Итерировать строковый буфер пословно)?
Кроме того, есть ли какая-либо другая оптимизация, которая может быть сделана на этом?
data = str(file_content)
for j in dictionary_entity.keys():
cnt = data.count(j+" ")
if cnt != -1:
dictionary_entity[j] = dictionary_entity[j] + cnt
f.close()