約 20,000 個のファイルを含むドキュメント内の単語の出現頻度をカウントするコードを書いています。ドキュメント内の単語の全体的な頻度を取得できます。これまでのコードは次のとおりです。
import os
import re
import sys
sys.stdout=open('f2.txt','w')
from collections import Counter
from glob import iglob
def removegarbage(text):
text=re.sub(r'\W+',' ',text)
text=text.lower()
return text
folderpath='d:/articles-words'
counter=Counter()
d=0
for filepath in iglob(os.path.join(folderpath,'*.txt')):
with open(filepath,'r') as filehandle:
d+=1
r=round(d*0.1)
for filepath in iglob(os.path.join(folderpath,'*.txt')):
with open(filepath,'r') as filehandle:
words=set(removegarbage(filehandle.read()).split())
if r > counter:
counter.update()
for word,count in counter.most_common():
print('{} {}'.format(word,count))
しかし、私は自分のカウンターを変更し、カウントが r=0.1*(ファイルの数) より大きい場合にのみ更新したいと考えています。要するに、ドキュメント全体での頻度が数の 10% を超える単語を読みたいのです。ドキュメントの。エラーは次のとおりです。
Traceback (most recent call last):
File "<stdin>", line 4, in <module>
TypeError: unorderable types: int() > Counter()
どうすれば変更できますか?