私は1863年から1894年までの年をカバーするプロシアン新聞コーパスを持ち、時間の経過とともに単語の使用状況をプロットしたいと考えています。コーパスは、およそ2400のxmlファイルで構成され、各問題ごとに1つのファイルがあります。 ConditionalFreqDist
をプロットすると、x軸に2400データポイントのグラフが表示され、グラフが判読不能になります。NLTKのConditionalFreqDistでデータポイントをマージする
同じ年の情報をマージして、検索リストの各単語の平均使用率を表示するにはどうすればよいですか?u_input
?例:私は1863年の3つのファイルを持っていて、「König」という言葉(他の検索語の中で)を探しています。最初のファイルには1つの言及があり、2番目のファイル3と3番目のファイル2が含まれています。値 '2'を持つデータポイント '1863'を1つだけ持つことができます。
プロット関数:
def _plot_input():
cfd = nltk.ConditionalFreqDist(
(target, fileid[:-4]) # takes first 4 characters as lable names = year
for fileid in reader.fileids() # for all files in directory
for w in reader.words(fileid) # for all words in each file
for target in u_input
if w.lower().startswith(target) # includes words like 'könliglich' if search term was 'König'
)
cfd.plot(title='Word usage over time in Prussian Newspapers')
u_input
は、私は分析していた単語を含むリストである、reader
は、例えば、ファイルがこのYYYY-MM-dd.xmlのような名前が付けられ、私のcorpusreaderオブジェクトであります"1867-03-06.xml"
ありがとうございます。
編集: クイックフィックスは、すべてのファイルをループし、同じ年から始まるすべてのファイルを読み取り、1年ごとに1つの新しいファイルに内容を書き込むことです。