7

Ich habe einen großen Korpus von Meinungen (2500) im Rohtext. Ich würde gerne die scikit-learn-Bibliothek verwenden, um sie in Test-/Train-Sets aufzuteilen. Was könnte der beste Ansatz sein, um diese Aufgabe mit scikit-learn zu lösen? Könnte irgendjemand mir ein Beispiel für das Teilen von Rohtext in Test-/Zugsätzen geben (wahrscheinlich werde ich tf-idf-Darstellung verwenden).Wie teilt man Daten (Rohtext) in Test/Train-Sets mit dem Scikit-Crossvalidierungsmodul auf?

Antwort

19

Ihre Daten Angenommen ist eine Liste von Strings, das heißt

data = ["....", "...", ] 

Dann Sie es in der Ausbildung (80%) und Test (20%) setzt mit train_test_split beispielsweise aufspalten by doing:

from sklearn.cross_validation import train_test_split 
train, test = train_test_split(data, train_size = 0.8) 

Bevor Sie es hetzen tun, aber lesen those docs durch. 2500 ist kein "großes Korpus" und Sie möchten wahrscheinlich eher eine k-fache Kreuzvalidierung als eine einzelne Holdout-Teilung durchführen.

+0

Ich würde gerne eine Stimmungsanalyse in Spanisch machen. Ist das ein richtiger Ansatz, um den Datensatz zu teilen? Ich habe ein Verzeichnis mit 2500 TXT-Dateien (Meinungen). – anon

+4

Wie ich schon sagte, ist 2500 keine große Zahl. Sie sollten also besser eine Kreuzvalidierung durchführen, um Ihre Leistung zu bewerten. Darüber hinaus müssen Sie möglicherweise zuerst einen "endgültigen Testsatz" (z. B. 500 Artikel) trennen, 2000 für die Modellauswahl verwenden (mithilfe der Kreuzvalidierung das beste Modell auswählen), und wenn Sie sich für ein Modell entschieden haben, Überprüfen Sie die Leistung auf dem ursprünglich gehaltenen Testset. Je nach Anzahl der Faktoren können sich Abweichungen ergeben. –

Verwandte Themen