Auftrennen der Skripte in kleinere Textabschnitte – row und Schleife

Rückfrage zu Kapitel 11 Topic Modeling mittels Latent Dirichlet Allocation im Methodenbuch „Qualitative und Quantitative Inhaltsanalyse

In unserem Buch „Qualitative und Quantitative Inhaltsanalyse“ haben wir an vielen Stellen darauf hingewiesen, dass wir uns freuen von Ihnen Rückmeldungen und auch Fragen zu erhalten. Wir wollen weiter darauf hinarbeiten, dass wir das Methodenlernen so anwendungsorientiert und einfach wie möglich für Sie gestalten. Verstehen- und Anwendenlernen ist jedoch sehr individuell, und gerade die Umsetzung, das heißt, verwenden einer Methode, Software(-programmierungen) und Auswertung von empirischem Material, ist anspruchsvoll. So möchten wir diesen Blog nutzen, um Verständnisfragen zu klären, die beim Erlernen einer neuen Methode und/oder Software immer auftreten.

Denn: Sie sind nicht allein bzw. die*der Einzige, die*der sich mit den vielfältigen Anforderungen des Methodenlernens auseinandersetzt. Deshalb scheuen Sie bitte nicht davor zurück Fragen an uns zu stellen. Sie erreichen uns über die Kommentarfunktion hier auf dem Blog, (noch) bei Twitter unter @sozmethode und @OliverWieczorek oder per E-Mail (siehe  Autor*innenseite).

Nun hat uns die erste Frage einer*eines Studierenden erreicht, die wir hier mit Ihnen teilen wollen. Wir haben vorher die Zustimmung der*des Studierenden erhalten im Wortlaut ihre*seine Twitterkorespondenz mit Oliver Wiczoreck wieder geben zu dürfen.

Frage Studierende*r

Hallo Oliver, ich beschäftige mich gerade mit eurem Buch zur automatisierten Inhaltsanalyse. Da ich in meiner Masterarbeit eine Topic Modell Analyse durchführen will, versuche ich gerade euren Code aus Kapitel 11 nachzuvollziehen und auszuführen. Ich hänge dabei gerade an einer Stelle und ich hoffe es ist ok, wenn ich dich hier kurz um Rat frage. Es handelt sich um den Code in 11.25 (S. 399), zum Auftrennen der Skripte in kleinere Textabschnitte. Direkt in Zeile 1 bei

d = df[df.index == row]

bekomme ich die Fehlermeldung

NameError: name 'rows' is not defined

Hast du vielleicht eine Idee, wie row definiert werden muss? Hab schon sowas versucht wie

row = rows.next()

aber das klappt auch nicht. Ganz lieben Dank Dir schon einmal!

Antwort Oliver Wieczorek

Liebe*r xxx,

danke der Nachfrage – also das, was ich da gezeigt habe, ist ein Teil von der Schleife, die in den darauffolgenden Seiten folgt. Also im Endeffekt wäre das dann so:

for row in df.index:
d = df[df.index == row]

dadurch selektierst du eine Datenzeile und kannst dann im Anschluss den Befehl durchlaufen lassen. Ich hoffe, dass dir das weiterhilft. Wenn nicht, dann können wir gerne gemeinsam den Code anschauen

Studierende*r

Lieber Oliver, vielen lieben Dank für deine Hilfe! So hat es funktioniert. Es tut mir leid, wenn ich dir jetzt direkt noch mit einer zweiten Frage deine Zeit raube, aber beim Erstellen des Dictionary (11.27) tritt bei mir noch ein Fehler auf.

lexikon = Dictionary()
for text in df.data_cleaned:
lexikon.add_documents([token for token in text])

hier erscheint

AttributeError: 'list' object has no attribute 'data_cleaned'

Dabei ist data_cleaned in den Schritten vorher doch schon als Liste definiert? Muss ich das vorher trotzdem noch mal genauer bestimmen? Liebe Grüße

Antwort Oliver Wieczorek

Liebe*r xxx, also data_cleaned ist in dem Code im Datensatz df definiert. Wenn du die bereinigten Daten hast, dann kannst du

df["data_cleaned"] = data_cleaned 

angeben, falls du die Liste mit den bereinigten Daten als data_cleaned in deinem Speicher hast
viele liebe Grüße Oliver
P.S. bitte melden, falls ich dir noch weiterhelfen kann!

Studierende*r

Wirklich vielen Dank für deine Hilfe! Manchmal glaube ich, das ist doch alles irgendwie zu kompliziert für mich, weil ich nicht selbst oder durch Googlen auf die Lösungen komme… Daher auch danke für das Angebot, ich werde vermutlich darauf zurückkommen (müssen). Hab noch einen schönen Abend!

Antwort Oliver Wieczorek

Liebe*r xxx, toll, dass es nun funktioniert! Nicht verzagen, aller Anfang ist schwer. Ich habe auch länger gebraucht, um es zu verstehen ;-). Einfach Zeit nehmen, nachfragen oder mal auf stackoverflow schauen und dann wird das mit der Zeit schon!
Schönen Abend und einen guten Start in die neue Woche!


Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.

Suche in OpenEdition Search

Sie werden weitergeleitet zur OpenEdition Search