1. 程式人生 > 其它 >文字特徵提取

文字特徵提取

英文文字特徵提取

方法步驟:

①匯入相關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"]
    #例項化CountVectorizer
text=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())

執行結果: