Text Analytics, DocumentTermMatrix в R переведен на Python - PullRequest
0 голосов
/ 13 марта 2019

У меня есть следующий код в R и ищу эквивалент в Python.Что я хочу сделать, это взять слова из текста, очистить их (удалить знаки препинания, опустить, убрать пробелы и т. Д.) И создать из них переменные в матричном формате, который можно использовать в прогнозной модели.

text<- c("amazing flight",
         "got there early",
         "great prices on flights??")
mydata_1<- data.frame(text)

library(tm)
corpus<- Corpus(DataframeSource(mydata_1))
corpus<- tm_map(corpus, content_transformer(tolower))
corpus<- tm_map(corpus, removePunctuation)
corpus<- tm_map(corpus, removeWords, stopwords("english"))
corpus<- tm_map(corpus, stripWhitespace)

dtm_1<- DocumentTermMatrix(corpus)
final_output<- as.matrix(dtm_1)

Вывод выглядит так, как показано ниже, где слова «удивительный», «ранний» и т. Д. Теперь являются двоичными входными переменными, которые я могу использовать в модели:

Docs   amazing early flight flights got great prices
 1       1     0      1       0      0     0      0
 2       0     1      0       0      1     0      0
 3       0     0      0       1      0     1      1

Как можноэто должно быть сделано в Python?

1 Ответ

0 голосов
/ 14 марта 2019

Я нашел ответ.Эквивалент DocumentTermMatrix в Python называется CountVectorizer

text= ["amazing flight","got there early","great prices on flights??"]

from sklearn.feature_extraction.text import CountVectorizer
import pandas as pd

vectorizer= CountVectorizer() 
X= vectorizer.fit_transform(text)
Y= vectorizer.get_feature_names()
final_output= pd.DataFrame(X.toarray(),columns=Y)

, что дает следующий результат:

       amazing  early  flight  flights  got  great  on  prices  there
0      1        0      1       0        0    0      0   0       0
1      0        1      0       0        1    0      0   0       1
2      0        0      0       1        0    1      1   1       0
...