基本的に、複数のファイルの単語ペアの数を数える必要があります。というファイルに単語ペアのリストがありますresult.txt
。次のようになります。
- の
- によって
- 彼らは
- グループ化
特定のディレクトリにある多くのテキスト ファイルでこれらのペアの頻度を確認し、ペア シーケンスと対応する頻度を降順に出力したいと考えています。出力は次の形式である必要があります。
- 205をグループ化する
- 彼らは180です
- 56の
私はすでに次のことを試しました:
import os
import re
from collections import Counter
from glob import iglob
from collections import defaultdict
import itertools as it
folderpath = 'path/to/directory'
pairs=defaultdict(int)
logfile = open('result.txt', 'r')
loglist = logfile.readlines()
logfile.close()
found = False
for line in loglist:
for filepath in iglob(os.path.join(folderpath,'*.txt')):
with open(filepath,'r') as filehandle:
for pair in it.combinations(re.findall('\w+',line),2):
pairs[tuple(pair)]+=1
found=True
resultList=[pair+(occurences, ) for pair, occurences in pairs.iterkeys()]
しかし、期待した結果が得られません。助けていただければ幸いです!