> Soeben fand ich das Verzeichnis, in dem die herunterladbaren > Textcorpora der Uni Leipzig stehen: > http://corpora.informatik.uni-leipzig.de/resources/flatfiles > > Die genaue Bedeutung scheint unklar. Auf dieser Seite geht zumindest > die Bedeutung des Inhalts von de05_3M.zip hervor: > http://www.domain-scan.net/index.php?option=com_content&view=article&id=19 > > Es handelt sich um einen deutschsprachigen Textcorpus aus 3 Millionen > Sätzen, die dem Internet und Zeitungsartikeln entstammen. > Ähnliche Dateinamen des Ordners klingen, als wenn auch kleinere Corpora > verfügbar sind. > > Es wäre gut, wenn es einen Textkörper gäbe, den alle einheitlich > verwenden könnten, um herauszufinden, ob unterschiedliche selbst > geschriebene Auswerteprogramme für bestimmte Zwischenschritte > korrekte Ergebnisse liefern.
Ja. Das wäre gut. Ich brauche für mein Programm eine Datei, die in jeder Zeile ein Wort hat, gefolgt von deren Häufigkeit. Das Wort soll kleingeschrieben sein und mit der (der inzwischen nicht mehr ganz so) neuen Rechtschreibung übereinstimmen. Ich will mal EINEN Weg bis dahin schildern, der mir so spontan einfällt: 1. Umwandeln von Latin-1 in Unicode und in Kleinbuchstaben: cat words.txt | recode l1.. | tr '[:upper:]' '[:lower:]' > w.txt 2. Jede Zeile enthält 3 Daten, die mit einem Tabulator-Zeichen getrennt sind. Erst kommt der Rang des Ausdrucks, dann der Ausdruck selber, dann die Häufigkeit. Der Ausdruck kann ein Wort sein, das nicht-deutsche Buchstaben enthält (é, Å usw.) und er kann aus mehr als einem Wort bestehen (11. September). Wir interessieren uns ausschließlich für Ausdrücke, die aus einem einzelnen Wort aus deutschen Buchstaben bestehen und fischen sie wie folgt heraus: gawk 'BEGIN {FS = "\t"}; $2 ~ /^[abcdefghijklmnopqrstuvwxyzäöüß]*$/ {print $2 "\t" $3}' w.txt > w1.txt 3. Die Liste enthält jetzt viele Wörter zweimal, weil sie früher sowohl kleingeschrieben als auch großgeschrieben vorkamen. Das macht für den Algorithmus zwar nichts aus (macht nur langsamer), aber Ordnung muss sein, also: sort w1.txt > w2.txt 4. Jetzt stehen die doppelten Wörter hinter einander. Sie werden jetzt vereint: gawk 'BEGIN {FS = "\t"; name = ""; wert = ""}; {if ($1 == name) wert += $2; else {print name "\t" wert; name = $1; wert = $2}' w2.txt > w3.txt 5. Schauen wir uns die Datei w3.txt mal an: aaber 1 aabiete 1 aabrar 1 aaby 1 aabye 1 aac 2 aach 25 aachen 801 aachene 1 aachener 339 aachenerin 5 aachenern 2 aacheners 2 aachens 22 aacm 1 aacsb 2 aad 31 aadabei 1 aads 1 aaen 1 aaf 2 aafach 1 aafang 1 … aafmüpfig 1 … aagehn 1 … aah 14 … abadschiew 1 abadschijew 1 … abdrükke 1 … eßgenuß 1 … genuß 313 genuss 392 … nun 41429 nunavut 7 nunez 17 nunmal 21 nunmehr 1349 nunmehrigen 6 nunn 29 nuno 10 nünthel 40 nuntiatur 8 nuntius 27 nuon 8 So geht das bei aller Liebe nicht! Es mag zwar sein, dass Leute so etwas geschrieben haben. Sie werden das aber nicht in der Zukunft mit meiner Tastatur tun. Die Datei w3.txt enthält etwa 1 Million Zeilen, darunter also jede Menge Rechtschreibfehler. Entfernen wir (zum Beispiel) daher alle Wörter, die seltener als 5-mal vorkommen. Eine Menge Rechtschreibfehler verschwinden dabei:7 gawk 'BEGIN {FS = "\t"} {if ($2 >= 5) print $1 "\t" $2}' w3.txt > w4.txt Oder alle, die seltener als 100-mal vorkommen > w4a.txt 6. Die Datei w4.txt ist fürwahr auch keine Schönheit. Sie enthält 211011 Zeilen. Hierüber muss offensichtlich noch die Rechtschreibprüfung laufen. Das übersteigt meine Fähigkeit und hier gebe ich auf. w4a enthält 25765 Zeilen. Die könnte man in einem Editor laden und manuell ausmisten und rechtschreibprüfen, dann sortieren und nochmal vereinen wie oben beschrieben. Ich persönlich werde das nicht tun, allein wegen der Kritik, die ich mir nachher anhören muss — von Leuten, die gar keine Arbeit leisten wollen, sondern nur kritisieren. ==== Es geht einfach nicht. Vergiss Leipzig. Oder nicht? Ulf