Erstellen eines benutzerdefinierten kategorisierten Korpus in NLTK und Python

8

Ich habe ein kleines Problem, das mit regulären Ausdrücken und CategorizedPlaintextCorpusReader in Python zu tun hat.

Ich möchte einen benutzerdefinierten kategorisierten Korpus erstellen und einen Naive-Bayes-Klassifikator darauf trainieren. Mein Problem ist folgendes: Ich möchte zwei Kategorien haben, "pos" und "neg". Die positiven Dateien befinden sich alle in einem Verzeichnis, main_dir/pos/*.txt , und die negativen Dateien befinden sich in einem separaten Verzeichnis, main_dir/neg/*.txt .

Wie kann ich CategorizedPlaintextCorpusReader verwenden, um alle positiven Dateien im Pos-Verzeichnis zu laden und zu beschriften, und dasselbe für die negativen Dateien?

NB: Das Setup ist absolut identisch mit dem Movie_reviews corpus ( ~nltk_data\corpora\movie_reviews ).

    
TE0 05.05.2012, 16:44
quelle

1 Antwort

18

Hier ist die Antwort auf meine Frage. Da ich über zwei Fälle nachgedacht habe, denke ich, dass es gut ist, beides zu behandeln, falls jemand die Antwort in der Zukunft braucht. Wenn Sie das gleiche Setup wie das movie_review-Corpus haben - mehrere Ordner, die auf die gleiche Weise beschriftet sind, wie Sie möchten, dass Ihre Labels aufgerufen werden und die Trainingsdaten enthalten, können Sie dies verwenden.

%Vor%

Der andere Ansatz, den ich in Betracht gezogen habe, ist, alles in einen einzigen Ordner zu legen und die Dateien 0_neg.txt, 0_pos.txt, 1_neg.txt usw. zu benennen. Der Code für Ihren Leser sollte etwa so aussehen:

%Vor%

Ich hoffe, dass dies jemandem in der Zukunft helfen würde.

    
TE0 09.05.2012, 15:24
quelle

Tags und Links