from sklearn.feature_extraction.text import tfidfvectorizer
def cutword():
con1 = jieba.cut("今天很殘酷,明天更殘酷,後天很美好,但絕對大部分是死在明天晚上,所以每個人不要放棄今天。")
con2 = jieba.cut("我們看到的從很遠星系來的光是在幾百萬年之前發出的,這樣當我們看到宇宙時,我們是在看它的過去。")
con3 = jieba.cut("如果只用一種方式了解某樣事物,你就不會真正了解它。了解事物真正含義的秘密取決於如何將其與我們所了解的事物相聯絡。")
c1 = " ".join(con1)
c2 = " ".join(con2)
c3 = " ".join(con3)
return c1, c2, c3
def tfidfvec():
"""中文特徵化
:return none
"""c1, c2, c3 = cutword()
print("c1:", c1)
tf = tfidfvectorizer()
data = tf.fit_transform([c1,c2,c3])
print("特徵:")
print(tf.get_feature_names())
print("特徵的大小:")
print(len(tf.get_feature_names()))
print("詞向量:")
print(data.toarray())
print("第一列詞向量的個數:")
print(len(data.toarray()[0]))
return none
tfidfvec()
結果:c1: 今天 很 殘酷 , 明天 更 殘酷 , 後天 很 美好 , 但 絕對 大部分 是 死 在 明天 晚上 , 所以 每個 人 不要 放棄 今天 。
特徵:['一種', '不會', '不要', '之前', '了解', '事物', '今天', '光是在', '幾百萬年', '發出', '取決於', '只用', '後天', '含義', '大部分', '如何', '如果', '宇宙', '我們', '所以', '放棄', '方式', '明天', '星系', '晚上', '某樣', '殘酷', '每個', '看到', '真正', '秘密', '絕對', '美好', '聯絡', '過去', '這樣']
特徵的大小:
36詞向量:
[[0. 0. 0.21821789 0. 0. 0.
0.43643578 0. 0. 0. 0. 0.
0.21821789 0. 0.21821789 0. 0. 0.
0. 0.21821789 0.21821789 0. 0.43643578 0.
0.21821789 0. 0.43643578 0.21821789 0. 0.
0. 0.21821789 0.21821789 0. 0. 0. ]
[0. 0. 0. 0.2410822 0. 0.
0. 0.2410822 0.2410822 0.2410822 0. 0.
0. 0. 0. 0. 0. 0.2410822
0.55004769 0. 0. 0. 0. 0.2410822
0. 0. 0. 0. 0.48216441 0.
0. 0. 0. 0. 0.2410822 0.2410822 ]
[0.15698297 0.15698297 0. 0. 0.62793188 0.47094891
0. 0. 0. 0. 0.15698297 0.15698297
0. 0.15698297 0. 0.15698297 0.15698297 0.
0.1193896 0. 0. 0.15698297 0. 0.
0. 0.15698297 0. 0. 0. 0.31396594
0.15698297 0. 0. 0.15698297 0. 0. ]]
第一列詞向量的個數:
36
NLP 如何理解TF IDF?
tf idf term frequency inverse document frequency 是一種統計方法,用來衡量字詞對於文字的重要程度。字詞的重要性隨著它在當前文字 現的頻率成正比,隨著它在語料庫中其他文字 現的頻率成反比,因此td idf也經常被用來提取文字的特徵。本文主要講解什麼是tf...
文字向量化 從向量到向量(tfidf)
corpus dictionary.doc2bow text for text in texts tfidf models.tfidfmodel corpus 第一步 初始化乙個模型 doc bow 0,1 1,1 print tfidf doc bow 第二步 用模型轉換向量 0,0.707106...
NLP(四)詞向量
關於word2vec的原理網上很詳細了 本文 共2種詞向量轉換方式 1 獨熱編碼 2 word2vec from sklearn.preprocessing import labelencoder one hot labelencoder 輸入為列表好像也可以 word vector one hot...