0

私は今sklearnを使ってテキスト分類をしています。Sklearn - テキストからの特徴抽出 - 複数形と単数形をマージしてテキスト特徴を正規化する

最初のステップとして、私は明らかにVectorizer(CountVectorizerまたはTfIdfVectorizer)を使用する必要があります。私が取り組んでいきたい問題は、私の文書ではしばしば同じ単語の単数形と複数形があるということです。ベクトル化を実行するとき、私は単数形と複数形をマージし、それらを同じテキスト機能として扱いたいと思う。

私は手作業でテキストを前処理して、複数の単語の形をすべて単一の単語の形に置き換えることができます。しかし、もっと似たような言葉が同じ機能にマージされるときに、より自動化された方法でそれをやり遂げるための方法がありますか?

UPDATE。

前述の回答に基づいて、私はステミングを実行する必要がありました。以下は、データフレームDFの「レビュー」列のすべての単語を抜き出し、ベクトル化と分類に使用するサンプルコードです。ちょうど誰かがそれが有用であると思う場合に備えて。私は何が必要だと思う

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)、つまり、共通のルートを持つ単語の終わりを削除します。これは、テキストデータの前処理での基本操作の1つです。つまり、私が必要としているのは – user2314737

+0

@user2314737です。これを指摘していただきありがとうございます。回答として投稿しますか? –

答えて

関連する問題