2016-08-26 6 views
0

Dokumentation Es ist auf die Schaffung eines DTM (Dokumentbegriff Matrix) für das text2vec Paket, zum Beispiel die folgenden, wo ein TFIDF Gewichtung nach dem Aufbau der Matrix angewandt wird: ein DTM Grundlage erstellen gängige Praxistext2vec in R- Neue Daten transformieren?

data("movie_review") 
N <- 1000 
it <- itoken(movie_review$review[1:N], preprocess_function = tolower, 
tokenizer = word_tokenizer) 
v <- create_vocabulary(it) 
vectorizer <- vocab_vectorizer(v) 
it <- itoken(movie_review$review[1:N], preprocess_function = tolower, 
tokenizer = word_tokenizer) 
dtm <- create_dtm(it, vectorizer) 
# get tf-idf matrix from bag-of-words matrix 
dtm_tfidf <- transformer_tfidf(dtm) 

Es ist auf einem Trainingsdatensatz und verwenden Sie diesen Datensatz als Eingabe für ein Modell. Wenn dann neue Daten angetroffen werden (ein Testsatz), muss derselbe DTM für die neuen Daten erstellt werden (dh dieselben Begriffe, die im Trainingssatz verwendet wurden). Gibt es sowieso in dem Paket, um einen neuen Datensatz auf diese Weise zu transformieren (in Scikit haben wir eine Transformationsmethode für genau diese Art von Instanz).

+0

Irgendwelche Mut warum Downvoted zu erklären? –

+1

Nimmt nicht "Mut" zu erklären. Bewegen Sie einfach Ihren Mauszeiger über den Abwärtspfeil. Viele Möglichkeiten, bei dieser Frage Anstoß zu nehmen. Kein Code. Keine Beispieldaten. Keine Erklärung, welche Art von Modellbildung oder Scoring erwartet werden könnte. Keine Erklärung, was ein "DTM" ist .... ja, ich weiß, was es (wahrscheinlich) ist, aber viele Programmierer vielleicht nicht. Ich muss also zustimmen, dass es zumindest "unklar" ist und auch nicht viel "Forschungsaufwand" demonstriert wird, und das sind durchaus stichhaltige Gründe für einen Downvote. Scheint auch ziemlich nutzlos, wenn es nicht erweitert wird, um seine vielen Mängel zu beheben. –

+1

Schweben zeigt mir nichts? Es ist frustrierend, wenn jemand ohne Erklärung abstimmt. Diese Art von Frage konzentriert sich auf ein bestimmtes Paket, wobei ich davon ausgehe, dass Sie, wenn Sie es verwendet haben und die Frage aus der Ferne beantworten könnten, wissen würden, was eine Dokument-Term-Matrix ist. Code ist auch ein harter .... da, was ich mich wundere, ist hier nicht wie hier ein Code, was ist falsch damit - aber stattdessen kann das Paket 'x' tun. Ich werde versuchen, es etwas zu erweitern, und ich danke Ihnen für die Kommentare. –

Antwort

4

Eigentlich, als ich begann text2vec Ich hielt diese Pipeline an erster Stelle. Jetzt bereiten wir die neue Version mit dem aktualisierten documentation vor.

Für v0.3 folgenden sollte funktionieren:

data("movie_review") 
train_rows = 1:1000 
prepr = tolower 
tok = word_tokenizer 

it <- itoken(movie_review$review[train_rows], prepr, tok, ids = movie_review$id[train_rows]) 
v <- create_vocabulary(it) %>% 
    prune_vocabulary(term_count_min = 5) 

vectorizer <- vocab_vectorizer(v) 
it <- itoken(movie_review$review[train_rows], prepr, tok) 
dtm_train <- create_dtm(it, vectorizer) 
# get idf scaling from train data 
idf = get_idf(dtm_train) 
# create tf-idf 
dtm_train_tfidf <- transform_tfidf(dtm_train, idf) 

test_rows = 1001:2000 
# create iterator 
it <- itoken(movie_review$review[test_rows], prepr, tok, ids = movie_review$id[test_rows]) 
# create dtm using same vectorizer, but new iterator 
dtm_test_tfidf <- create_dtm(it, vectorizer) %>% 
    # transform tf-idf using idf from train data 
    transform_tfidf(idf) 
+0

Fantastisch! Irgendeine Idee, wenn es CRAN treffen könnte? –

+0

Wenige Wochen. Aber Sie können es von Github, Zweig 0.4 installieren. –

+0

@B_Miner überprüfen neue Tutorial: http://dsnotes.com/text2vec/vectorization.html –

Verwandte Themen