中文文本預處理及表示


文本分類

一、建立語料庫

文本數據的獲取方法一般有兩種:

  • 使用別人做好的語料庫
  • 爬蟲去獲取自己的預料數據

二、文本預處理

1、除去數據中非文本部分

一般可以使用正則表達式去進行刪除

2、處理中文編碼問題

由於python2不支持unicode的處理,因此使用python2做中文文本預處理需要遵循的原則是,存儲數據都用utf8,讀出來進行中文相關處理時,使用GBK之類的中文編碼。

3、 中文分詞

中文分詞工具介紹

4、 去除停用詞
  • 載入停用詞
stopwords = pd.read_csv("NLP_project\data\stopwords.txt", index_col=False, quoting=3, sep="\t", names=['stopword'],encoding='utf-8')
stopwords = stopwords['stopword'].values
  • 去停用詞
def preprocess_text(content_lines, sentences, category):
    for line in content_lines:
        try:
            segs = jieba.lcut(line)
            segs = list(filter(lambda x: len(x) > 1, segs))
            segs = list(filter(lambda x: x not in stopwords, segs))
            sentences.append((" ".join(segs), category))   #sentence是列表。里面是一個元祖,category是該內容的一個標簽
        except BaseException:
            print(line)

三、文本表示(特征提取)

一般特征提取可以有三種方法轉換成向量的形式。

1、TF-IDF

TF-IDF詳細介紹參考

2、Word2vec

Word2vec原理可參考

3、Countvectorizer(詞袋模型)

可參考原理鏈接

總結:文本預處理具體步驟

1、分詞:一般使用jieba軟件。
2、生成詞向量詞典:可使用word2vec算法對分詞后的語料庫進行預訓練生成詞向量詞典。其中的字詞是不重復的,word2vec會對文本中的字、詞和標點基本元素的出現頻率進行統計,通過無監督訓練,獲得作為基礎語料基礎構成元素的字詞對應的指定維度的向量表征。
3、數據集划分:在源代碼可將數據集和測試集的划分比例參數設為0.6,60%用來訓練集,40%用來測試集和驗證集。
4、文本數字化:將分詞后語料庫文本中對應的字詞和2中詞向量詞典經行對比,獲其索引,即在詞向量詞典對應的序號,這樣文檔中都以整數索引序號表示從而實現索引形式的數字化,有利於降低文本表示的數據維度。
5、文本向量化:在數據進入模型訓練前需按照詞的索引序號從2中的詞向量詞典取出其對應的向量,這樣整篇文本被轉化為向量的形式。
6、標簽:即文本類型,可用one-hot形式的標簽。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM