2017-08-31 7 views
-3

Je fais de l'analyse de texte, et je veux ignorer les mots qui ne sont que des nombres. Par exemple. du texte "Ceci est 000 Sparta!" seuls les mots «ceci», «est» et «Sparte» devraient être utilisés. Y a-t-il un moyen de faire cela? Comment?SKLearn TF-IDF pour supprimer des numéros?

+0

Qu'avez-vous essayé? –

Répondre

3

Le modèle de jeton par défaut pour TfidfVectorizer est u'(?u)\\b\\w\\w+\\b' qui correspond à un mot ayant au moins deux caractères de mot, c'est-à-dire [a-zA-Z0-9_]; Vous pouvez modifier le token_pattern à vos besoins, par exemple, regex (?ui)\\b\\w*[a-z]+\\w*\\b assure qu'il correspond à un mot, mais contient au moins une lettre:

from sklearn.feature_extraction.text import TfidfVectorizer 
tf = TfidfVectorizer(token_pattern=u'(?ui)\\b\\w*[a-z]+\\w*\\b') 
​ 
text = ["This is 000 Sparta!"] 
tfidf_matrix = tf.fit_transform(text) 
feature_names = tf.get_feature_names() 
​ 
print(feature_names) 
[u'is', u'sparta', u'this'] 

0

Regardez comment il est mis en œuvre dans la documentation officielle here. Tous les numéros sont traités comme une caractéristique #NUMBER