巨大なテキストファイルの文字列バッファがあります。文字列バッファ内の特定の単語/フレーズを検索する必要があります。それを行うための効率的な方法は何ですか?
再モジュール一致を使用してみました。しかし、私は巨大なテキストコーパスを持っているので、それを検索する必要があります。これにはかなりの時間がかかります。
単語とフレーズの辞書が与えられます。
各ファイルを繰り返し処理し、それを文字列に読み込み、辞書内のすべての単語とフレーズを検索し、キーが見つかった場合は辞書内のカウントをインクリメントします。
私たちが考えた小さな最適化の1つは、最大単語数のフレーズ/単語の辞書を最小に並べ替えることでした。次に、文字列バッファからの各単語の開始位置を比較し、単語のリストを比較します。1つのフレーズが見つかった場合、他のフレーズは検索されません(最も長いフレーズと一致したため、これが必要です)
誰かが文字列バッファで単語ごとに移動する方法を提案できますか?(文字列バッファを単語ごとに反復します)?
また、これで実行できる他の最適化はありますか?
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()