0

Je fais actuellement de la classification de texte en utilisant sklearn.Sklearn - extraction de texte à partir de texte - normalise les entités de texte en fusionnant des formes au pluriel et au singulier

Comme première étape, je dois évidemment utiliser vectorizer - soit CountVectorizer ou TfIdfVectorizer. La question que je veux aborder est que dans mes documents souvent, j'ai des formes singulières et plurielles du même mot. Lorsque je réalise une vectorisation, je veux fusionner des formes singulières et plurielles et les traiter comme une même fonction textuelle.

Il est évident que je peux pré-traiter manuellement les textes et remplacer simplement tous les mots au pluriel par des formes de mots singuliers quand je sais quels mots ont ce problème. Mais peut-être existe-t-il un moyen de le faire de manière plus automatisée, lorsque des mots qui sont extrêmement similaires les uns aux autres sont fusionnés dans la même entité?

MISE À JOUR.

Basé sur la réponse fournie précédemment, j'avais besoin d'effectuer un stemming. Voici un exemple de code qui regroupe tous les mots de la colonne 'review' d'une DF de données, que j'utilise ensuite pour la vectorisation et la classification. Juste au cas où quelqu'un le trouverait utile.

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

Je pense que ce dont vous avez besoin est [* * provenant] (https://nlp.stanford.edu/IR-book/html/htmledition/stemming-and -lemmatisation-1.html), à savoir la suppression des terminaisons de mots qui ont une racine commune, et c'est l'une des opérations de base dans le prétraitement des données de texte – user2314737

+0

@ user2314737 c'est exactement ce dont j'ai besoin. Merci de m'avoir signalé cela, je ne suis pas sûr de ce que j'ai oublié de faire. Poster comme réponse? –

Répondre