我想要用CountVectorizer來計算每個數字1~10出現的次數,
但只能抓出10的次數,其他數字都無法統計出來,
換成純文字可以正常計算
不知道是不是CountVectorizer把一位數字當作數字不統計
想請問板上大大是否有解法或是更好的計算方式
謝謝
import pandas as pd
import numpy as np
from sklearn.feature_extraction.text import CountVectorizer
data_list= [
'6 1 8 7 2 3 4 ',
'8 6 4 7 9 3 1 ',
'10 4 6 7 5 2 9',
'7 2 10 9 8 6 4',
]
vectorizer = CountVectorizer()
X = vectorizer.fit_transform(data_list)
print(vectorizer.get_feature_names())
print(X.toarray())
----------------------------------------
['10']
[[0]
[0]
[1]
[1]]
依據官方文件說明
預設抓取的 token 是「2個字元(含)以上」
所以只會抓到 10
可以修改預設的設定
就是參數 token_pattern (值為正則表示式)
把原本的token_pattern='(?u)\b\w\w+\b',
改成token_pattern='(?u)\b\w+\b',
試試看