樸素貝葉斯-04

詞頻統計

TF

樸素貝葉斯-04

TF詞頻統計代碼 詞頻統計

<code>from sklearn.feature_extraction.text import CountVectorizer
/<code>

將所有樣本中出現的單詞進行編號,並計算每個樣本中每個單詞出現的次數

<code>X = ['我 愛 你','我 恨 你 恨 你']
#正則化處理,有效字符為字母數字和漢字
countCoder = CountVectorizer(token_pattern="[a-zA-Z|\\\\u4e00-\\\\u9fa5]+")
X = countCoder.fit_transform(X)
print(countCoder.get_feature_names())
print(X.toarray())
/<code>
<code>['你', '恨', '我', '愛']
[[1 0 1 1]
[2 2 1 0]]
/<code>

TF-IDF

樸素貝葉斯-04

樸素貝葉斯-04

樸素貝葉斯-04

提高了原來出現次數少的權重,個人感覺有點作用,但是作用並不大。只是把少出現的文字直觀看做權重大的專業術語來處理了。

TF和TF-IDF的代碼對比

<code>from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.feature_extraction.text import CountVectorizer
/<code>
<code>X = ['我 愛 你','我 恨 你 恨 你']
tfCoder = CountVectorizer(token_pattern="[a-zA-Z|\\\\u4e00-\\\\u9fa5]+") # TF模型
X1 = tfCoder.fit_transform(X) # 訓練TF模型
print(tfCoder.get_feature_names())
print(X1.toarray())
/<code>
<code>['你', '恨', '我', '愛']
[[1 0 1 1]
[2 2 1 0]]
/<code>
<code>tiCoder = TfidfVectorizer(norm=None,token_pattern="[a-zA-Z|\\\\u4e00-\\\\u9fa5]+")
X2 = tiCoder.fit_transform(X)
print(tiCoder.get_feature_names())
print(X2.toarray())
/<code>
<code>['你', '恨', '我', '愛']
[[ 1. 0. 1. 1.40546511]
[ 2. 2.81093022 1. 0. ]]
/<code>


分享到:


相關文章: