我正在使用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
有没有简单的方法可以实现这个目标?
答案 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}