文字特徵提取
阿新 • • 發佈:2021-10-16
英文文字特徵提取
方法步驟:
①匯入相關API
from sklearn.feature_extraction.text import CountVectorizer
②例項化CountVectorizer
text=CountVectorizer()
③呼叫fit_transform()方法進行特徵提取
results=text.fit_transform(data)
主要程式碼:
def text_demo(): data=["I am going to school","What do you want to do"] #例項化CountVectorizertext=CountVectorizer() #呼叫fit_transform()方法 results=text.fit_transform(data) print("特徵值:\n",text.get_feature_names()) print("特徵值提取結果:\n",results.toarray()) #results.toarray()將稀疏矩陣轉換為二維陣列的形式
執行結果:
中文文字特徵提取
中文文字特徵提取步驟與英文類似,主要區別在於中文文字特徵提取需要進行分詞處理,否則就會出現如下結果,將一句話作為一個詞處理:
一、 中文分詞(使用jieba):
①匯入jieba
import jieba
②將目標進行分詞處理
jieba.cut(text)
③將分詞處理結果轉化為列表形式
list(jieba.cut(text))
④將列表轉化為字串形式
" ".join(list(jieba.cut(text)))
主要程式碼:
def cut_text(text): result=" ".join(list(jieba.cut(text))) # print(result) return result
二、中文文字特徵提取
①定義一個空陣列,並利用該空陣列接收中文分詞後的結果
data_cut=[] #定義一個空陣列 for i in data: data_cut.append(cut_text(i)) #利用空陣列接收分詞後的結果
②例項化CountVectorizer
CountVectorizer()
③呼叫fit_transform()方法
text.fit_transform(data_cut)
主要程式碼:
def chinese_text_demo(): data=["我們也可以將資料儲存在檔案中","但是在檔案中讀寫資料速度相對較慢","優秀的檔案很優秀"] data_cut=[] #定義一個空陣列 for i in data: data_cut.append(cut_text(i)) #利用空陣列接收分詞後的結果 #例項化CountVectorizer text=CountVectorizer() #呼叫fit_transform()方法 results=text.fit_transform(data_cut) print("特徵值:\n",text.get_feature_names()) print("特徵值提取結果:\n",results.toarray())