Worthäufigkeitsmatrix mit numpy

mit matplotlib, NumPy, pandas, SciPy, SymPy und weiteren mathematischen Programmbibliotheken.
Antworten
Nefas
User
Beiträge: 1
Registriert: Samstag 24. Juni 2017, 16:43

Hallo zusammen,
bin neu hier im Forum und hoffe das mir jemand helfen kann. Ich habe die Aufgabe bekommen eine Worthäufigkeitsmatrix mit den 30 häufigsten Worten aus 4 Texten (Goetes Wahlverwandschaft, Fontanes Effi Briest, Raabes Stopfkuchen und Kafkas der Prozess) zu erstellen. Diese zu normalisieren und den Mittelwert zu berechnen. Wie ich den Mittelwert und die Normalisierung mittels Numpy durchführt weiß ich, mein problem ist es die Daten aus den Dateien in eine Form zu bringen um dies durchzuführen. Die >Texte stehen auf Textgrid frei zur Verfügung. Mein Problem : ich kann sie nur über open() überhaupt so öffnen das ich keinen unicodeescape Error bekomme. Mit Hilfe von collections Counter hab ich die Worte zählen lasse, komme allerdings nicht an die Top 30 heran. Außerdem bleiben aus irgend einem Grund die xml Schemaelemente in den Texten vorhanden und werden als Wörter mitgezählt...
Ich weiß es ist viel, aber dank der wunderbaren Struktur meines Studiengangs wurde uns nicht wirklich mitgeteilt, dass aus den vier Programmiersprachen die zur Wahl stehen nur Python wichtig ist. Ich muss mir also gerade Python selbst beibringen und das ist meine Einstiegsaufgabe :( Ich hab im ersten Semester PHP genommen...
hoffe sehr jemand kann mir da helfen, ich bin am verzweifeln
Sirius3
User
Beiträge: 17738
Registriert: Sonntag 21. Oktober 2012, 17:20

@Nefas: wenn es sich um xml-Dateien handelt, sollten sie mit einem XML-Parser gelesen werden (xml.etree.ElementTree). Wenn Du die Wörter mit »Counter« zählst, schau mal nach, welche Methoden es da noch so gibt.
BlackJack

@Nefas: Warum kommst Du nicht an die 30 häufigsten Worte wenn Du schon ein `Counter`-Objekt hast? Welche Fragen lässt die Dokumentation zu `collections.Couter` denn diesbezüglich offen?

Aus welchem Grund sollten die Schemaelemente *nicht* mitgezählt werden? `open()` öffnet eine Datei. Jede beliebige Datei. Die Funktion und deren Ergebnis haben keine Ahnung von irgendwelchen Strukturen oder Formaten.

Wenn Du XML verarbeiten möchtest, dann brauchst Du einen XML-Parser, der XML versteht und in eine Baumstruktur überführt. Und da kannst Du Dir dann gezielt die Informationen heraus holen die Du verarbeiten möchtest.

In der Standardbibliothek gibt es `xml.etree.ElementTree` zum arbeiten mit XML. Es gibt auch ein externes Package mit der gleichen API, aber einigen Erweiterungen wie XPath-Unterstützung: `lxml`.
Antworten