sklearn Countervectorizer使用自定义标记器

时间:2019-06-12 04:54:03

标签: python scikit-learn

一个例子:

df=pd.DataFrame({'x':['thisisanewveaddea','sklearnisbeautiful']})
#transfer to list
df1=list(df.x.values)
from sklearn.feature_extraction import text
vectorizer=text.CountVectorizer()
x=vectorizer.fit_transform(df1)
x.toarray()

单词vector是:

Out[105]: 
array([[0, 1],
       [1, 0]], dtype=int64)

令牌生成器是:

vectorizer.get_feature_names()
Out[106]: ['sklearnisbeautiful', 'thisisanewveaddea']

但是,我想使用自己的令牌生成器/词典:

mydict=['thisi','san','ewveaddea','sklearnisb','eautiful']

使用我自己的令牌生成器,预期的单词向量为:

 x                ['thisi','san','ewveaddea','sklearnisb','eautiful']

'thisisanewveaddea':[1,      1,       1,           0,         0]
'sklearnisbeautiful':[0,     0,       0,           1          1]

如何将自己的令牌生成器转移到sklearn的Countervectorizer

1 个答案:

答案 0 :(得分:0)

CountVectorizer有一个tokenizer参数,您可以在其中传递自定义标记器。

https://scikit-learn.org/stable/modules/generated/sklearn.feature_extraction.text.CountVectorizer.html