2017-08-15 2 views
2

J'ai un ensemble de données avec des données de texte médical et je demande vectorizer tf-idf sur eux et calculer le score tf idf pour les mots comme ceci:Vectorizer la combinaison de mots en Python

import pandas as pd 
from sklearn.feature_extraction.text import TfidfVectorizer as tf 

vect = tf(min_df=60,stop_words='english') 

dtm = vect.fit_transform(df) 
l=vect.get_feature_names() 

x=pd.DataFrame(dtm.toarray(), columns=vect.get_feature_names()) 

Donc, fondamentalement, ma question est suivi-pendant que j'applique TfidfVectorizer il sépare le texte en mots distincts par exemple: "douleur", "mal de tête", "nausée" et ainsi de suite. Comment puis-je obtenir la combinaison de mots dans la sortie de TfidfVectorizer par exemple: «douleur sévère», «mal de tête de cluster», «vomissements de nausée». Merci

Répondre

4

Utilisation des paramètres ngram_range:

vect = tf(min_df=60, stop_words='english', ngram_range=(1,2)) 

ou (en fonction de vos objectifs):

vect = tf(min_df=60, stop_words='english', ngram_range=(2,2))