Итерация по строковому слову за раз в Python

У меня есть строковый буфер огромного текстового файла. Я должен искать заданные слова / фразы в буфере строк. Какой эффективный способ сделать это?

Я пытался использовать повторные совпадения модулей. Но так как у меня есть огромный текстовый корпус, который я должен искать. Это занимает много времени.

Приведен словарь слов и фраз.

Я перебираю каждый файл, считываю его в строку, ищу все слова и фразы в словаре и увеличиваю счет в словаре, если ключи найдены.

Одна небольшая оптимизация, которую мы подумали, состояла в том, чтобы отсортировать словарь фраз / слов с максимальным количеством слов по минимальному. А затем сравните каждое начальное положение слова из буфера строки и сравните список слов. Если одна фраза найдена, мы не ищем другие фразы (так как она соответствует самой длинной фразе, чего мы и хотим)

Кто-нибудь может подсказать, как поочередно идти в строковом буфере. (Перебор строкового буфера слово за словом)?

Кроме того, есть ли какая-либо другая оптимизация, которая может быть сделана на этом?

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()

Ответы на вопрос(8)

Ваш ответ на вопрос