在對文本數據進行處理時,很大壹部分精力都用在數據集的特征提取上,因此記錄壹下常用的文本特征提取方法。
文本特征提取壹般分為兩部分
(1)文本本身屬性:元音字數數、輔音字母數、···
(2)基於文本的特征提取:TF-IDF等
比如提取以上文檔的特征,基於文本本身可以提取特征:
(1)字數:統計每壹行text文本的詞匯數量(有多少個單詞)
(2)非重復單詞數量:統計每壹行text文本中只出現壹次的單詞個數
(3)長度:每壹行text的長度,占了多少存儲空間(包含空格、符號、字母等的長度)
(4)停止詞數量統計:between、but、about、very等詞匯的數量統計
(5)標點符號數量:每壹行text中包含的標點符號數量
(6)大寫單詞數量:統計大寫單詞數量
(7)標題式單詞數量:統計單詞拼寫首字母是否為大寫,且其他字母為小寫的單詞數量
(8)單詞的平均長度:每壹行text中每個單詞長度的平均值
這些特征的提取不涉及復雜的函數計算,基於文本本身屬性提取直觀信息作為模型訓練的特征。
·
TF-IDF算法 :計算單詞權重最為有效的實現方法就是TF-IDF, 它是由Salton在1988 年提出的,以特征詞在文檔d中出現的次數與包含該特征詞的文檔數之比作為該詞的權重。
python中使用TfidfVectorizer函數實現TF-IDF特征的提取,生成每個text的TF-IDF特征。
·
經過TF-IDF特征提取後,數據集的特征變量超級多(TF-IDF計算了整個數據集出現的所有單詞對每個test的權重),面對這樣龐大的特征數據,可以通過SVD實現對數據集的壓縮。
SVD的原理是將龐大的TF-IDF生成的數據集A進行拆分,設置K值(想要壓縮得到的維度,例如K=20,壓縮後得到20列的特征數據集)X就是只有K個特征轉換後的數據集。
經過壓縮後的TF-IDF只有K列,與01中 基於文本本身特征 合並,即為文本數據集的特征向量。