0

我正在使用sklearn進行一些文本分類。Sklearn - 從文本中提取特徵 - 通過合併複數和單數形式規範文本特徵

作爲第一步,我顯然需要使用vectorizer - CountVectorizer或TfIdfVectorizer。我想解決的問題是,在我的文件中,經常有單詞和複數形式的單詞。在執行矢量化時,我想「合併」單數和複數形式,並將它們視爲相同的文本特徵。

很明顯,我可以手動預處理文本,只需用單數形式的單詞替換所有複數形式的單詞,當我知道哪些單詞有這個問題時。但是也許有一些方法可以以更自動化的方式來完成,當彼此極其相似的單詞合併到同一個特徵中時?

UPDATE。

根據前面提供的答案,我需要執行詞幹分析。下面是一個示例代碼,它在數據框DF的'review'列中生成所有單詞,然後將其用於矢量化和分類。以防萬一任何人發現它有用。

from nltk.stem.snowball import SnowballStemmer 

stemmer = SnowballStemmer("english") 


df['review_token']=df['review'].apply(lambda x : filter(None,x.split(" "))) 

df['review_stemmed']=df['review_token'].apply(lambda x : [stemmer.stem(y) for y in x]) 

df['review_stemmed_sentence']=df['review_stemmed'].apply(lambda x : " ".join(x)) 
+1

我想你需要的是[*詞幹*](https://nlp.stanford.edu/IR-book/html/htmledition/stemming-and -lemmatization-1.html),即刪除具有共同根的單詞的結尾,這是預處理文本數據 – user2314737

+0

@ user2314737的基本操作之一,這正是我所需要的。感謝您指出這一點,不知道我是如何忘記詞幹。作爲回答發佈? –

回答