Ich bin noch ziemlich neu auf dem Gebiet der Programmierung und mache wahrscheinlich ganz simple Fehler, aber ich probiere schon seit gestern morgen herum und komme einfach nicht drauf, was ich falsch mache.
Ich habe ein Korpus, also eine Textsammlung ("my_corpus") erstellt, mit Songtexten von Michael Jackson und diese kategorisiert in "erfolgreich" und "nicht_erfolgreich". Die Textdateien in meinem Ordner sehen also so aus: erfolgreich_001, erfolgreich_002 etc. (insgesamt 10 Stück) und nicht_erfolgreich_001, nicht erfolgreich_002 etc. (9 Stück).
Mein code sieht bisher so aus:
Code: Alles auswählen
from nltk.corpus import CategorizedPlaintextCorpusReader
my_corpus = CategorizedPlaintextCorpusReader('C:\Python34\my_corpus',
r'.*', cat_pattern=r'(.*)_.*')
files_erfolgreich = my_corpus.fileids(categories = "erfolgreich")
files_nicht_erfolgreich = my_corpus.fileids(categories = "nicht_erfolgreich")
print(files_erfolgreich)
print(files_nicht_erfolgreich)
['erfolgreich_001.txt', 'erfolgreich_002.txt', 'erfolgreich_003.txt', 'erfolgreich_004.txt', 'erfolgreich_005.txt', 'erfolgreich_006.txt', 'erfolgreich_007.txt', 'erfolgreich_008.txt', 'erfolgreich_009.txt', 'erfolgreich_010.txt']
['nicht_erfolgreich_001.txt', 'nicht_erfolgreich_002.txt', 'nicht_erfolgreich_003.txt', 'nicht_erfolgreich_004.txt', 'nicht_erfolgreich_005.txt', 'nicht_erfolgreich_006.txt', 'nicht_erfolgreich_007.txt', 'nicht_erfolgreich_008.txt', 'nicht_erfolgreich_009.txt']
['erfolgreich', 'nicht_erfolgreich']
Mein Problem ist aber, dass ich damit nichts machen kann. Ob ich mir einfach die Dateien öffnen will
Code: Alles auswählen
(f=open('files_erfolgreich','rU')
raw=f.read()
tokens = nltk.word_tokenize(raw)
text = nltk.Text(tokens)
Code: Alles auswählen
(erfolgreich_001.concordance("part"))
Ich erhalte z.B. im letzten Fall die Fehlermeldung:
Traceback (most recent call last):
File "C:\Python34\hausarbeit.py", line 20, in <module>
erfolgreich_001.concordance("part")
NameError: name 'erfolgreich_001' is not defined
Ich kapier auch nie, ob ich dem Programm sagen muss, dass ich die Konkordanz (als Bsp.) einer bestimmten Datei (z.B. erfolgreich_001.txt) oder aller Dateien einer Kategorie (files_erfolgreich) haben will. Hilfreich wäre beides.
Wäre total toll, wenn mir jemand helfen könnte. Ich bin kurz vorm Verzweifeln. Wenn noch etwas unklar ist oder ihr mehr Infos braucht, fragt.