日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

机器学习(3.文本数据的特征抽取(第一种))

發(fā)布時間:2024/9/30 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 机器学习(3.文本数据的特征抽取(第一种)) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文本特征抽取

作用:對文本數(shù)據(jù)進(jìn)行特征值化

類:sklearn.feature_extraction.text.CountVectorizer

1.CountVectorizer語法

? ? ??CountVectorizer(max_df=1.0,min_df=1,)

? ? ? ? ? ? ? ????返回詞頻矩陣

? ??CountVectorizer.fit_transform(X,y)??????

? ? ? ? ? ? ?X:文本或者包含文本字符串的可迭代對象

? ? ? ? ? ??返回值:返回sparse矩陣

? ?CountVectorizer.inverse_transform(X)

? ? ? ? ? ??X:array數(shù)組或者sparse矩陣

返回值:轉(zhuǎn)換之前數(shù)據(jù)格式

? ?CountVectorizer.get_feature_names()

? ? ? ? ? ?返回值:單詞列表

2.流程和例子

from sklearn.feature_extraction.text import CountVectorizerdef conuntvec():"""對文本進(jìn)行特征值化:return: None"""cv = CountVectorizer()data = cv.fit_transform(["life is short,i like python","life is too long,i dislike python"])print(cv.get_feature_names())# 將sparse矩陣轉(zhuǎn)換為·數(shù)組print(data.toarray())return Noneif __name__ == '__main__':conuntvec()

?結(jié)果:

['dislike', 'is', 'life', 'like', 'long', 'python', 'short', 'too'] [[0 1 1 1 0 1 1 0][1 1 1 0 1 1 0 1]]

?第一行,打印出? ?統(tǒng)計所有文章當(dāng)中所有的詞,重復(fù)的只看做一次? ?(詞的列表)

?注意: 對于單個的英文字母直接進(jìn)行放棄,不進(jìn)行統(tǒng)計? (因為它是沒有分類的依據(jù)的)

數(shù)據(jù)數(shù)組:, 類似于統(tǒng)計的次數(shù),對每篇文章,在詞的列表里面進(jìn)行統(tǒng)計每個詞出現(xiàn)的次數(shù)

?數(shù)據(jù)數(shù)組的第一行,第一個小數(shù)組:對應(yīng)的輸入的數(shù)據(jù),以逗號分隔開,

? 例如第一句話是:"life is short,i like python",? ? 對應(yīng)詞的列表,出現(xiàn)幾次值就為幾

?3. 文本特征抽取: 統(tǒng)計次數(shù) Count()? ?,可用于文本分類,情感分析

4.

(1)對于中文特征值化要,按照指定的格式提前分好詞,例如?

? ? ?中文文本以空格分開

from sklearn.feature_extraction.text import CountVectorizerdef countvec():"""對中文文本進(jìn)行特征值化:return: None"""cv = CountVectorizer()data = cv.fit_transform(["人生 苦短 我 喜歡 Python Python","人生 漫長 不用 Python"])print(cv.get_feature_names())print(data.toarray())return Noneif __name__ == '__main__':countvec()

? ?結(jié)果:? 代表的意思同英文一樣,統(tǒng)計出次數(shù)

['python', '不用', '人生', '喜歡', '漫長', '苦短'] [[2 0 1 1 0 1][1 1 1 0 1 0]]

(2)可以使用jieba庫進(jìn)行分詞

利用jieba庫做中文特征抽取,? 例子

from sklearn.feature_extraction.text import CountVectorizer import jiebadef cutword():content1 = jieba.lcut("今天很殘酷,明天更殘酷,后天很美好,但絕對大部分是死在明天晚上,""所以每個人不要放棄今天。")content2 = jieba.lcut("我們看到的從很遠(yuǎn)星系來的光是在幾百萬年之前發(fā)出的,""這樣當(dāng)我們看到宇宙時,我們是在看它的過去。")content3 = jieba.lcut("如果只用一種方式了解某樣事物,你就不會真正了解它。""了解事物真正含義的秘密取決于如何將其與我們所了解的事物相聯(lián)系。")# 把分詞后的列表轉(zhuǎn)換成字符串c1 = ' '.join(content1)c2 = ' '.join(content2)c3 = ' '.join(content3)return c1, c2, c3def chinesevec():"""對一段文本使用jieba分詞后組成有空格的格式的字符串進(jìn)行文本特征抽取:return: None"""c1, c2, c3 = cutword()cv = CountVectorizer()data = cv.fit_transform([c1, c2, c3])print(cv.get_feature_names())print(data.toarray())return Noneif __name__ == '__main__':chinesevec()

抽取的結(jié)果: 完成了中文特征抽取,文本特征值化

['一種', '不會', '不要', '之前', '了解', '事物', '今天', '光是在', '幾百萬年', '發(fā)出', '取決于', '只用', '后天', '含義', '大部分', '如何', '如果', '宇宙', '我們', '所以', '放棄', '方式', '明天','星系', '晚上', '某樣', '殘酷', '每個', '看到', '真正', '秘密', '絕對', '美好', '聯(lián)系', '過 去', '這樣'] [[0 0 1 0 0 0 2 0 0 0 0 0 1 0 1 0 0 0 0 1 1 0 2 0 1 0 2 1 0 0 0 1 1 0 0 0][0 0 0 1 0 0 0 1 1 1 0 0 0 0 0 0 0 1 3 0 0 0 0 1 0 0 0 0 2 0 0 0 0 0 1 1][1 1 0 0 4 3 0 0 0 0 1 1 0 1 0 1 1 0 1 0 0 1 0 0 0 1 0 0 0 2 1 0 0 1 0 0]]

?

與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的机器学习(3.文本数据的特征抽取(第一种))的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。