Ich habe einen preußischen Zeitungskorpus für die Jahre 1863 bis 1894 und möchte das Wort Nutzung im Zeitverlauf darstellen. Das Korpus besteht aus ungefähr 2400 xml Dateien, eine Datei für jedes Problem. Wenn ich die ConditionalFreqDist
plotten würde, würde ich einen Graphen mit 2400 Datenpunkten auf der x-Achse bekommen, der den Graphen unlesbar macht.Datenpunkte in NLTKs ConditionalFreqDist zusammenfügen
Wie kann ich die Informationen für das gleiche Jahr zusammenführen und die durchschnittliche Verwendung jedes Wortes in meiner Suchliste anzeigen u_input
? ZB: Ich habe 3 Dateien für das Jahr 1863, suche nach dem Wort 'König' - König (neben anderen Suchbegriffen), die erste Datei enthält 1 Erwähnung, die 2. Datei 3 und die 3. Datei 2. Ich hätte gerne die Grafik dazu habe nur einen Datenpunkt '1863' mit dem Wert '2'.
Die Plotten Funktion:
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
ist eine Liste, die die Worte ich analysieren, reader
ist mein corpusreader Objekt, werden die Dateien wie diese yyyy-mm-dd.xml genannt, z.B. "1867-03-06.xml".
Vielen Dank im Voraus.
Bearbeiten: Die schnelle Lösung wäre, über alle Dateien zu wiederholen, alle Dateien beginnend mit dem gleichen Jahr zu lesen und den Inhalt in eine einzige neue Datei für jedes Jahr zu schreiben.