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的基本操作之一,这正是我所需要的。感谢您指出这一点,不知道我是如何忘记词干。作为回答发布? –

回答