中文文本預處理及表示

文本分類

1、創建語料庫

文本數據的獲取方法通常有兩種:html

  • 使用別人作好的語料庫
  • 爬蟲去獲取本身的預料數據

2、文本預處理

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

通常能夠使用正則表達式去進行刪除python

二、處理中文編碼問題

因爲python2不支持unicode的處理,所以使用python2作中文文本預處理須要遵循的原則是,存儲數據都用utf8,讀出來進行中文相關處理時,使用GBK之類的中文編碼。正則表達式

三、 中文分詞

中文分詞工具介紹算法

四、 去除停用詞
  • 載入停用詞
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)

3、文本表示(特徵提取)

通常特徵提取能夠有三種方法轉換成向量的形式。app

一、TF-IDF

TF-IDF詳細介紹參考工具

二、Word2vec

Word2vec原理可參考測試

三、Countvectorizer(詞袋模型)

可參考原理連接編碼

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

一、分詞:通常使用jieba軟件。
二、生成詞向量詞典:可以使用word2vec算法對分詞後的語料庫進行預訓練生成詞向量詞典。其中的字詞是不重複的,word2vec會對文本中的字、詞和標點基本元素的出現頻率進行統計,經過無監督訓練,得到做爲基礎語料基礎構成元素的字詞對應的指定維度的向量表徵。
三、數據集劃分:在源代碼可將數據集和測試集的劃分比例參數設爲0.6,60%用來訓練集,40%用來測試集和驗證集。
四、文本數字化:將分詞後語料庫文本中對應的字詞和2中詞向量詞典經行對比,獲其索引,即在詞向量詞典對應的序號,這樣文檔中都以整數索引序號表示從而實現索引形式的數字化,有利於下降文本表示的數據維度。
五、文本向量化:在數據進入模型訓練前需按照詞的索引序號從2中的詞向量詞典取出其對應的向量,這樣整篇文本被轉化爲向量的形式。
六、標籤:即文本類型,可用one-hot形式的標籤。
相關文章
相關標籤/搜索