Векторизатор комбинации слов в Python

У меня есть набор данных с медицинскими текстовыми данными, и я применяю к ним векторизатор tf-idf и вычисляю оценку tf idf для слов следующим образом:

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())

Итак, в основном мой вопрос заключается в следующем: пока я применяю TfidfVectorizer, он разбивает текст на отдельные слова, например: «боль», «головная боль», «тошнота» и так далее. Как я могу получить комбинацию слов в выводе TfidfVectorizer, например: «сильная боль», «кластерная головная боль», «тошнота, рвота». Спасибо


person Keithx    schedule 15.08.2017    source источник


Ответы (1)


Используйте параметр ngram_range:

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

или (в зависимости от ваших целей):

vect = tf(min_df=60, stop_words='english', ngram_range=(2,2))
person MaxU    schedule 15.08.2017