如何在CountVectorizer中考虑“标点符号”?

时间:2019-05-28 15:05:52

标签: nlp countvectorizer

我正在使用Sklearn的CountVectorizer将我的字符串转换为向量。但是,CountVectorizer默认情况下会选择2个或更多字符的标记,并且也忽略标点符号并将其视为分隔符。我想将甚至一个字符都视为标记,并且还包括标点符号。例如:

aaa 1 2.75 zzz
aaa 2 3.75 www

我想要一个矩阵

1 1 1 0 1 1 0 
1 0 1 1 0 0 1

有没有简单的方法可以实现这个目标?

1 个答案:

答案 0 :(得分:0)

您可以在此示例中使用自定义标记器:

import re

new_docs=["aaa 1 2.75 zzz","aaa 2 3.75 www"]

def my_tokenizer(text):
    return re.split("\\s+",text)


cv = CountVectorizer(new_docs,tokenizer=my_tokenizer)
count_vector=cv.fit_transform(new_docs)
print(cv.vocabulary_)

示例输出:

{'aaa': 4, '1': 0, '2.75': 2, 'zzz': 6, '2': 1, '3.75': 3, 'www': 5}

查看更多CountVectorizer usage examples here