に存在し、このようになりますキーワードの組み合わせは、私はPythonでリストの次のリストを持っているファイル
combos = [list(x) for x in itertools.permutations(keywords_list, 2)]
:
combos
[['revenue', 'margins'], ['revenue', 'liquidity'], ['revenue', 'ratio'], ['revenue', 'pricing'], ['revenue', 'assets'], ['revenue', 'recent trends']]
が今私の目的は確認することである
各キーワードペアが内に存在する場合にテキストファイルかどうかを調べ、カウントします。キーワードペアが存在する回数。n_occurence = defaultdict(lambda:0)
with open(file_path) as f:
for line in f:
for item in combos:
if item[1] and item[2] in line:
n_occurence[item] +=1
私は取得していますエラー、次の
IndexError: list index out of range
どのように私はこれにアプローチすべきか?
項目[0]とアイテム[1] – e4c5
と、このソリューションはスケールしないでそれを行うことができます。ファイルサイズやキーワードリストが大きくなるにつれてひどく遅くなります。 – e4c5
カウントするには 'collections.Counter()'を使う方が 'defaultdict'よりも簡単です。アルゴリズムを変更する必要があります。すべてのキーワードの順列のリストを事前に作成する必要はありません。代わりに、各行を見て、その行からキーワードを抽出し、見つかった各キーワードのペアの数を増やします。 –