7

Mam duży korpus opinii (2500) w surowym tekście. Chciałbym skorzystać z biblioteki uczącej się scikit, aby podzielić je na zestawy testowe/kolejowe. Co może być najlepszym podejściem do rozwiązania tego zadania dzięki nauce scikit? Czy ktokolwiek mógłby mi podać przykład podziału surowego tekstu w zestawach testowych/pociągowych (prawdopodobnie użyję reprezentacji tf-idf).Jak podzielić dane (nieprzetworzony tekst) na zestawy testowe/kolejowe z modułem crosswalacji scikit?

Odpowiedz

19

Załóżmy danych jest listą ciągów, tj

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

Następnie można podzielić ją na szkolenia (80%) i badania (20%) określa używając np train_test_split wykonując:

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

Przed Rush to robić, chociaż czytać those docs wskroś. 2500 nie jest "dużym korpusem" i prawdopodobnie chcesz zrobić coś w rodzaju k-krotnego sprawdzania krzyżowego, a nie pojedynczego podziału holdout.

+0

Chciałbym przeprowadzić analizę nastrojów w języku hiszpańskim. Czy jest to poprawne podejście do dzielenia zbioru danych ?, mam katalog z plikami 2500 .txt (opinie). – anon

+4

Jak już powiedziałem, 2500 nie jest dużą liczbą, więc lepiej jest przeprowadzić walidację krzyżową, aby ocenić swoją wydajność. Co więcej, być może trzeba najpierw odciąć "ostateczny zestaw testowy" (powiedzmy, 500 pozycji), użyć 2000 do wyboru modelu (używając sprawdzania krzyżowego, aby wybrać najlepszy model), a po ustaleniu modelu, sprawdź jego działanie na oryginalnie przetestowanym zestawie testowym. Mogą występować różnice w podejściu, w zależności od wielu czynników. –