0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

如何為文本分類任務選擇正確的模型,這里有一個完整流程圖!

DPVg_AI_era ? 來源:未知 ? 作者:李倩 ? 2018-07-26 10:02 ? 次閱讀

谷歌官方推出“文本分類”指南教程。為了最大限度地簡化選擇文本分類模型的過程,谷歌在進行大約450K的文本分類實驗后,總結出一個通用的“模型選擇算法”,并附上一個完整的流程圖,非常實用。

文本分類(Text classification)算法是大規(guī)模處理文本數(shù)據(jù)的各種軟件系統(tǒng)的核心。比如,電子郵件軟件使用文本分類來確定受到的郵件是發(fā)送到收件箱還是過濾到垃圾郵件文件夾;討論論壇使用文本分類來確定用戶評論是否應該標記為不當。

下面是兩個主題分類( topic classification)的例子,任務是將文本文檔歸類為預定義的一組主題。多數(shù)主題分類問題要基于文本中的關鍵字。

主題分類被用于標記收到的垃圾郵件,這些郵件被過濾到垃圾郵件文件夾中

另一種常見的文本分類是情感分析(sentiment analysis),其目的是識別文本內(nèi)容的極性(polarity):它所表達的觀點的類型。這可以采用二進制的“喜歡/不喜歡”來評級,或者使用更精細的一組選項,比如從1顆星星到5顆星星的評級。情感分析的例子包括分析Twitter上的帖子,以確定人們是否喜歡黑豹電影,或者從沃爾瑪?shù)脑u論中推斷普通大眾對耐克新品牌的看法。

這個指南將教你一些解決文本分類問題的關鍵的機器學習最佳實踐。你將學習:

使用機器學習解決文本分類問題的高級、端到端工作流(workflow)

如何為文本分類問題選擇合適的模型

如何使用TensorFlow實現(xiàn)你選擇的模型

文本分類的workflow

以下是解決機器學習問題的workflow

步驟1:收集數(shù)據(jù)

步驟2:探索你的數(shù)據(jù)

步驟2.5:選擇一個模型*

步驟3:準備數(shù)據(jù)

步驟4:構建、訓練和評估你的模型

步驟5:調(diào)優(yōu)超參數(shù)

步驟6:部署模型

解決機器學習問題的workflow

【注】 “選擇模型”并不是傳統(tǒng)機器學習workflow的正式步驟;但是,為你的問題選擇合適的模型是一項關鍵的任務,它可以在接下來的步驟中明確并簡化工作。

谷歌機器學習速成課程的《文本分類》指南詳細解釋了每個步驟,以及如何用文本數(shù)據(jù)實現(xiàn)這些步驟。由于篇幅限制,本文在涵蓋重要的最佳實踐和經(jīng)驗法則的基礎上,重點介紹步驟2.5:如何根據(jù)數(shù)據(jù)集的統(tǒng)計結構選擇正確的模型,并提供一個完整的流程圖。

步驟1:收集數(shù)據(jù)

收集數(shù)據(jù)是解決任何有監(jiān)督的機器學習問題的最重要步驟。構成它的數(shù)據(jù)集有多好,你的文本分類器就有多好。

如果你沒有想要解決的特定問題,只是對探索文本分類感興趣,那么有大量可用的開源數(shù)據(jù)集。下面的GitHub repo就足以滿足你的需求:

https://github.com/google/eng-edu/blob/master/ml/guides/text_classification/load_data.py

另一方面,如果你正在處理一個特定的問題,則需要收集必要的數(shù)據(jù)。許多組織提供用于訪問其數(shù)據(jù)的公共API——例如,Twitter API或NY Times API,你可以利用這些來找到想要的數(shù)據(jù)。

以下是收集數(shù)據(jù)時需要記住的一些重要事項:

如果你使用的是公共API,請在使用之前了解API的局限性。例如,一些API對查詢速度設置了限制。

訓練示例(在本指南的其余部分稱為示例)越多越好。這將有助于模型更好地泛化。

確保每個類或主題的樣本數(shù)量不會過度失衡。也就是說,每個類都應該有相當數(shù)量的樣本。

確保示例充分覆蓋了可能的輸入空間,而不僅僅覆蓋常見的情況。

在本指南中,我們將使用IMDb的電影評論數(shù)據(jù)集來說明這個workflow。這個數(shù)據(jù)集收集了人們在IMDb網(wǎng)站上發(fā)布的電影評論,以及相應的標簽(“positive”或“negative”),表示評論者是否喜歡這部電影。這是情緒分析問題的一個典型例子。

步驟2:探索你的數(shù)據(jù)

加載數(shù)據(jù)集

檢查數(shù)據(jù)

收集關鍵指標

構建和訓練模型只是工作流程的一部分。事先了解數(shù)據(jù)的特征能夠幫助你構建更好的模型。這不僅僅意味著獲得更高的準確度,也意味著需要較少的訓練數(shù)據(jù),或者更少的計算資源。

步驟2.5:選擇一個模型

到這一步,我們已經(jīng)收集了數(shù)據(jù)集,并深入了解了數(shù)據(jù)的關鍵特性。接下來,根據(jù)我們在步驟2中收集的指標,我們應該考慮應該使用哪種分類模型。這意味著提出問題,例如“如何將文本數(shù)據(jù)呈現(xiàn)給期望輸入數(shù)字的算法?”(這叫做數(shù)據(jù)預處理和矢量化),“我們應該使用什么類型的模型?”,“我們的模型應該使用什么配置參數(shù)?”,等等。

經(jīng)過數(shù)十年的研究,我們已經(jīng)能夠訪問大量的數(shù)據(jù)預處理和模型配置選項。然而,大量可供選擇的可行方案大大增加了手頭的特定問題的復雜性和范圍??紤]到最好的選擇可能并不明顯,一個想當然的解決方案是嘗試盡每一種可能的選擇,通過直覺排除一些選擇。但是,這樣做成本是非常昂貴的。

在本指南中,我們試圖最大限度地簡化選擇文本分類模型的過程。對于給定的數(shù)據(jù)集,我們的目標是找到在最小化訓練所需的計算時間的同時,實現(xiàn)接近最大精度的算法。我們使用12個數(shù)據(jù)集針對不同類型的問題(尤其是情感分析和主題分類問題)進行了大量(~450K)實驗,將不同的數(shù)據(jù)預處理技術和不同的模型架構交替用于每個數(shù)據(jù)集。這有助于我們找到影響最佳選擇的數(shù)據(jù)集參數(shù)。

下面的模型選擇算法(model selection algorithm)和流程圖是我們的大量實驗的總結。

數(shù)據(jù)準備和模型構建算法

1. 計算樣本的數(shù)量/每個樣本中單詞的數(shù)量這個比率。

2. 如果這個比率小于1500,那么將文本標記為n-grams并使用簡單的MLP模型進行分類(下面的流程圖的左邊分支):

a. 將樣本分解成word n-grams;把n-grams轉(zhuǎn)換成向量。

b. 給向量的重要性打分,然后根據(jù)分支選擇前20K。

c. 構建一個MLP模型。

3. 如果比率大于1500,則將文本標記為序列,并使用sepCNN模型進行分類(流程圖右邊分支):

a. 將樣本分解成單詞;根據(jù)頻率選擇前20K的單詞。

b. 將樣本轉(zhuǎn)換為單詞序列向量。

c. 如果原始樣本數(shù)/每個樣本的單詞數(shù)這個比率小于15K,則使用微調(diào)的預訓練sepCNN模型,可能得到最優(yōu)的結果。

4. 用不同的超參數(shù)值來測量模型的性能,以找到數(shù)據(jù)集的最佳模型配置。

在下面的流程圖中,黃色框表示數(shù)據(jù)和模型準備過程?;疑蚝途G色框表示我們?yōu)槊總€流程考慮的選項。綠色框表示我們對每個流程的推薦選項。

你可以用這個流程圖作為你的第一個實驗的起點,因為它可以讓你在低計算成本下獲得良好的準確度。你可以在后面的迭代中繼續(xù)改進初始模型。

文本分類流程圖(點擊可放大查看)

此流程圖回答了兩個關鍵問題:

我們應該使用哪種學習算法或模型?

我們應該如何準備數(shù)據(jù),才能有效地學習文本和標簽之間的關系?

第二個問題的答案取決于第一個問題的答案;我們預處理數(shù)據(jù)的方式將取決于我們選擇的模型。模型可以大致分為兩類:使用單詞排序信息的模型(序列模型),以及僅將文本視為單詞的“bags”(sets)的模型(n-gram模型)。

序列模型包括卷積神經(jīng)網(wǎng)絡(CNN),遞歸神經(jīng)網(wǎng)絡(RNN)及其變體。 n-gram模型包括邏輯回歸,簡單多層感知機(MLP或全連接神經(jīng)網(wǎng)絡),梯度提升樹(gradient boosted trees)和支持向量機(SVM)。

在實驗中,我們觀察到“樣本數(shù)”(S)與“每個樣本的單詞數(shù)”(W)的比率與模型的性能具有相關性。

當該比率的值很小(<1500)時,以n-gram作為輸入的小型多層感知機(選項A)表現(xiàn)得更好,或者說至少與序列模型一樣好。 MLP易于定義和理解,而且比序列模型花費的計算時間更少。

當此比率的值很大(> = 1500)時,我們就使用序列模型(選項B)。在接下來的步驟中,你可以根據(jù)這個比率值的大小,直接閱讀所選模型的相關章節(jié)。

對于我們的IMDb評論數(shù)據(jù)集,樣本數(shù)/每個樣本的單詞數(shù)的比值在144以下。這意味著我們將創(chuàng)建一個MLP模型。

步驟3:準備數(shù)據(jù)

N-gram向量[選項A]

序列向量[選項B]

標簽的向量化

步驟4:構建,訓練和評估模型

構建最后一層

構建n-gram模型[選項A]

構建序列模型[選項B]

訓練模型

步驟5:調(diào)優(yōu)超參數(shù)

步驟6:部署模型

結論

文本分類是機器學習中的基本問題,在各種產(chǎn)品應用中均有涉及。在本指南中,我們將文本分類的workflow分解為幾個步驟。對于每個步驟,我們都根據(jù)特定數(shù)據(jù)集的特征,建議自定義的實現(xiàn)方法。尤其是,我們根據(jù)樣本數(shù)量與每個樣本中的單詞數(shù)量的比值,來建議你使用哪一種模型,從而能夠更快地讓模型接近最佳性能。其他的步驟都是基于模型選擇這個步驟的。遵循這個指南中的建議,參考附錄中的代碼和流程圖將有助于你的學習和理解,并快速獲取文本分類問題的解決方案。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 二進制
    +關注

    關注

    2

    文章

    795

    瀏覽量

    41652
  • 文本分類
    +關注

    關注

    0

    文章

    18

    瀏覽量

    7306
  • 機器學習
    +關注

    關注

    66

    文章

    8418

    瀏覽量

    132628

原文標題:谷歌做了45萬次不同類型的文本分類后,總結出一個通用的“模型選擇算法”

文章出處:【微信號:AI_era,微信公眾號:新智元】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關推薦

    pyhanlp文本分類與情感分析

    關系如下:訓練訓練指的是,利用給定訓練集尋找能描述這種語言現(xiàn)象的模型的過程。開發(fā)者只需調(diào)用train接口即可,但在實現(xiàn)中,許多細節(jié)。分詞目前,本系統(tǒng)中的分詞器接口
    發(fā)表于 02-20 15:37

    基于文章標題信息的漢語自動文本分類

    文本分類文本挖掘的重要組成部分,是信息搜索領域的項重要研究課題。該文提出種基于文章標題
    發(fā)表于 04-13 08:31 ?10次下載

    基于GA和信息熵的文本分類規(guī)則抽取方法

    文本分類文本數(shù)據(jù)挖掘中非常重要的技術,已經(jīng)被廣泛地應用于信息管理、搜索引擎、推薦系統(tǒng)等多個領域。現(xiàn)有的文本分類方法,大多是基于向量空間
    發(fā)表于 06-03 09:22 ?26次下載

    融合詞語類別特征和語義的短文本分類方法

    針對短文本內(nèi)容簡短、特征稀疏等特點,提出種新的融合詞語類別特征和語義的短文本分類方法。該方法采用改進的特征選擇方法從短文本
    發(fā)表于 11-22 16:29 ?0次下載
    融合詞語類別特征和語義的短<b class='flag-5'>文本分類</b>方法

    文本分類大型“真香現(xiàn)場”來了

    ? 文本分類大型“真香現(xiàn)場”來了:JayJay的推文《超強文本半監(jiān)督MixText》中告訴大家不要浪費沒有標注過的數(shù)據(jù),但還是需要有標注數(shù)據(jù)的!但今天介紹的這篇paper,
    的頭像 發(fā)表于 02-05 11:02 ?1864次閱讀
    <b class='flag-5'>文本分類</b>的<b class='flag-5'>一</b><b class='flag-5'>個</b>大型“真香現(xiàn)場”來了

    結合BERT模型的中文文本分類算法

    針對現(xiàn)有中文短文夲分類算法通常存在特征稀疏、用詞不規(guī)范和數(shù)據(jù)海量等問題,提出種基于Transformer的雙向編碼器表示(BERT)的中文短文本分類算法,使用BERT預訓練語言模型
    發(fā)表于 03-11 16:10 ?6次下載
    結合BERT<b class='flag-5'>模型</b>的中文<b class='flag-5'>文本分類</b>算法

    種基于BERT模型的社交電商文本分類算法

    隨著網(wǎng)絡購物的高速發(fā)展,網(wǎng)絡商家和購物者在網(wǎng)絡交易活動中產(chǎn)生了大量的交易數(shù)據(jù),其中蘊含著巨大的分析價值。針對社交電商商品文本文本分類問題,為了更加高效準確地判斷文本所描述商品的類別,提出了
    發(fā)表于 04-13 15:14 ?8次下載
    <b class='flag-5'>一</b>種基于BERT<b class='flag-5'>模型</b>的社交電商<b class='flag-5'>文本分類</b>算法

    融合文本分類和摘要的多任務學習摘要模型

    文本摘要應包含源文本中所有重要信息,傳統(tǒng)基于編碼器-解碼器架構的摘要模型生成的摘要準確性較低。根據(jù)文本分類文本摘要的相關性,提出
    發(fā)表于 04-27 16:18 ?11次下載
    融合<b class='flag-5'>文本分類</b>和摘要的多<b class='flag-5'>任務</b>學習摘要<b class='flag-5'>模型</b>

    基于不同神經(jīng)網(wǎng)絡的文本分類方法研究對比

    神經(jīng)網(wǎng)絡、時間遞歸神經(jīng)網(wǎng)絡、結構遞歸神經(jīng)網(wǎng)絡和預訓練模型等主流方法在文本分類中應用的發(fā)展歷程比較不同模型基于常用數(shù)據(jù)集的分類效果,表明利用人工神經(jīng)網(wǎng)絡伂構自動獲取
    發(fā)表于 05-13 16:34 ?49次下載

    基于雙通道詞向量的卷積膠囊網(wǎng)絡文本分類算法

    的詞向量與基于特定文本分類任務擴展的語境詞向量作為神經(jīng)網(wǎng)絡的2輸入通道,并采用具有動態(tài)路由機制的卷積膠囊網(wǎng)絡模型進行文本分類。在多個英文數(shù)
    發(fā)表于 05-24 15:07 ?6次下載

    基于LSTM的表示學習-文本分類模型

    的關鍵。為了獲得妤的文本表示,提高文本分類性能,構建了基于LSTM的表示學習-文本分類模型,其中表示學習模型利用語言
    發(fā)表于 06-15 16:17 ?18次下載

    基于注意力機制的新聞文本分類模型

    基于注意力機制的新聞文本分類模型
    發(fā)表于 06-27 15:32 ?30次下載

    帶你從頭構建文本分類

    文本分類是 NLP 中最常見的任務, 它可用于廣泛的應用或者開發(fā)成程序,例如將用戶反饋文本標記為某種類別,或者根據(jù)客戶文本語言自動歸類。
    的頭像 發(fā)表于 03-22 10:49 ?3585次閱讀

    PyTorch文本分類任務的基本流程

    文本分類是NLP領域的較為容易的入門問題,本文記錄文本分類任務的基本流程,大部分操作使用了**torch**和**torchtext**兩
    的頭像 發(fā)表于 02-22 14:23 ?1107次閱讀

    卷積神經(jīng)網(wǎng)絡在文本分類領域的應用

    在自然語言處理(NLP)領域,文本分類直是重要的研究方向。隨著深度學習技術的飛速發(fā)展,卷積神經(jīng)網(wǎng)絡(Convolutional Neural Network,簡稱CNN)在圖像識
    的頭像 發(fā)表于 07-01 16:25 ?726次閱讀