Scikit learn Sklearn-从文本中提取特征-通过合并复数和单数形式来规范文本特征

Scikit learn Sklearn-从文本中提取特征-通过合并复数和单数形式来规范文本特征,scikit-learn,text-mining,feature-extraction,text-classification,Scikit Learn,Text Mining,Feature Extraction,Text Classification,我正在使用sklearn进行一些文本分类 作为第一步,我显然需要使用矢量器-CountVectorizer或TfIdfVectorizer。我想解决的问题是,在我的文档中,常常有同一个单词的单数和复数形式。当执行矢量化时,我想“合并”单数和复数形式,并将它们视为相同的文本特征 显然,当我知道哪些单词有这个问题时,我可以手动预处理文本,并用单数形式替换所有复数形式。但也许有一种更自动化的方法可以做到这一点,那就是将彼此极为相似的单词合并到同一个特征中 更新。 根据前面提供的答案,我需要执行词干分析

我正在使用sklearn进行一些文本分类

作为第一步,我显然需要使用矢量器-CountVectorizer或TfIdfVectorizer。我想解决的问题是,在我的文档中,常常有同一个单词的单数和复数形式。当执行矢量化时,我想“合并”单数和复数形式,并将它们视为相同的文本特征

显然,当我知道哪些单词有这个问题时,我可以手动预处理文本,并用单数形式替换所有复数形式。但也许有一种更自动化的方法可以做到这一点,那就是将彼此极为相似的单词合并到同一个特征中

更新。

根据前面提供的答案,我需要执行词干分析。下面是一个示例代码,它源于数据帧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))

我认为您需要的是词干分析,即删除具有公共根的单词的结尾,这是预处理文本数据的基本操作之一


这里解释了词干分析和柠檬化的一些规则:

我认为您需要的是词干分析,即删除具有公共根的单词的结尾,这是预处理文本数据的基本操作之一


这里解释了词干分析和柠檬化的一些规则:

我认为您需要的是,即删除具有公共根的单词的结尾,这是预处理文本的基本操作之一data@user2314737这正是我需要的。谢谢你指出这一点,我不知道我怎么忘记了词干。Post as answer?我认为您需要的是,即删除具有公共根的单词的结尾,这是预处理文本的基本操作之一data@user2314737这正是我需要的。谢谢你指出这一点,我不知道我怎么忘记了词干。帖子作为答案?