计数器具有不在数据中的单词

时间:2017-03-11 09:58:27

标签: pandas scikit-learn

我是sklearn和countvectorizer的新手。

一些奇怪的行为发生在我身上。

初始化计数矢量化器

from sklearn.feature_extraction.text import CountVectorizer
count_vect = CountVectorizer()
document_mtrx = count_vect.fit_transform(df['description'])
count_vect.vocabulary_
count_vect.vocabulary_
Out[28]:
{u'viewscity': 36216,
 u'sizeexposed': 31584,
 u'rentalcontact': 29104,
 u'villagebldg': 36323,

获取包含单词rentalcontact

的行
df[df['description'].str.contains('rentalcontact')]

返回的行数是0.为什么会这样?

1 个答案:

答案 0 :(得分:2)

CountVectorizer的参数lowercase默认为True - 这很可能就是为什么您无法找到这些值。

所以试试这个:

df[df['description'].str.lower().str.contains('rentalcontact')]
#                        ^^^^^^^

更新:

  

词汇_: dict

     

术语与功能索引的映射。

u'rentalcontact': 29104 - 表示'rentalcontact'在功能列表中有一个索引29104

即。 vectorizer.get_feature_names()[29104]应该返回'rentalcontact'