日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

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

文本特征抽取

作用:對文本數據進行特征值化

類: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數組或者sparse矩陣

返回值:轉換之前數據格式

? ?CountVectorizer.get_feature_names()

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

2.流程和例子

from sklearn.feature_extraction.text import CountVectorizerdef conuntvec():"""對文本進行特征值化: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矩陣轉換為·數組print(data.toarray())return Noneif __name__ == '__main__':conuntvec()

?結果:

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

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

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

數據數組:, 類似于統計的次數,對每篇文章,在詞的列表里面進行統計每個詞出現的次數

?數據數組的第一行,第一個小數組:對應的輸入的數據,以逗號分隔開,

? 例如第一句話是:"life is short,i like python",? ? 對應詞的列表,出現幾次值就為幾

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

4.

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

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

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

? ?結果:? 代表的意思同英文一樣,統計出次數

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

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

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

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

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

['一種', '不會', '不要', '之前', '了解', '事物', '今天', '光是在', '幾百萬年', '發出', '取決于', '只用', '后天', '含義', '大部分', '如何', '如果', '宇宙', '我們', '所以', '放棄', '方式', '明天','星系', '晚上', '某樣', '殘酷', '每個', '看到', '真正', '秘密', '絕對', '美好', '聯系', '過 去', '這樣'] [[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位技術專家面對面20年技術見證,附贈技術全景圖

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。