詞頻統計
TF
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
提高了原來出現次數少的權重,個人感覺有點作用,但是作用並不大。只是把少出現的文字直觀看做權重大的專業術語來處理了。
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>
閱讀更多 小白學習日記yang 的文章
關鍵字: sklearn CountVectorizer extraction