色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

一些解決文本分類問題的機器學習最佳實踐

zhKF_jqr_AI ? 來源:未知 ? 作者:李倩 ? 2018-07-31 09:28 ? 次閱讀

編者按:文本分類是各類應用中的一種基礎機器學習問題,近日,一篇關于文本分類的文章成功引起學界大牛和競賽機構注意,讓他們在twitter上爭相轉載。那么,它到底講述了什么內容呢?考慮到原文過長,本文是其中的(上)篇。

文本分類是一種應用廣泛的算法,它是各種用于大規模處理文本數據的軟件系統的核心,常被用于垃圾郵件識別及幫助論壇機器人標記不當評論。

當然,以上只是文本分類的兩種常規應用,它們處理的是預定義的二元分類問題。在多元分類任務中,算法分類主要基于本文中的關鍵詞

分類器標記垃圾郵件,并把它們過濾到垃圾郵件文件夾中

另一種常見的文本分類是情感分析,它的目標是識別文本內容積極與否:文字所表達的思想類型。同樣的,這也是多元分類問題,我們可以采用二元的喜歡/不喜歡評級形式,也可以進一步細化,如設成1星到5星的星級評級。情感分析的常見應用包括分析影評,判斷消費者是否喜歡這部電影,或者是分析大型商場的評論,推測普通大眾對某個品牌新產品的看法。

本指南將介紹一些解決文本分類問題的機器學習最佳實踐,你可以從中學到:

用機器學習解決文本分類問題

如何為文本分類問題挑選正確的模型

如何用TensorFlow實現你選擇的模型

文本分類流程

第一步:收集數據

第二步:探索數據

第2.5步:選擇一個模型

第三步:準備數據

第四步:構建、訓練、評估模型

第五步:調整超參數

第六步:部署模型

文本分類流程

第一步:收集數據

收集數據是解決任何監督學習問題的最重要一步,數據的質量和數量直接決定著文本分類器的性能上限。

如果你沒有想要解決的的特定問題,或者只是對一般的文本分類感興趣,你可以直接用已經開源的大量數據集。這個GitHub repo里可能包含不少你可以用到的鏈接:github.com/google/eng-edu/blob/master/ml/guides/textclassification/loaddata.py。

但是,如果你有一個待解決的特定問題,你就得先收集必要數據。當然,有些數據是現成的,一些組織會提供訪問其數據的公共API,比如Twitter API或NY Times API,如果有用,你可以直接通過它們來解決自己的問題。

以下是收集數據過程中的一些注意事項:

如果使用公共API,請在使用前先閱讀它們的使用限制,比如某些API會對你的訪問速度設限。

收集訓練樣本的量永遠是越多越好,這有助于模型更好地概括。

如果涉及分類,確保每個類的樣本數量不會過度失衡,換句話說,每個類中都應該有相當數量的樣本。

確保你的樣本可以覆蓋所有可能的輸入空間,而不僅僅是最常見的幾種情況。

在本指南中,我們將以斯坦福大學開源的大型電影評論數據集(IMDb)為例,說明整個本文分類流程。該數據集包含人們在IMDb網站上發布的電影評論,以及評論者是否喜歡電影的相應標簽(“positive”或“negative”)。這是用于情緒分析問題的一個經典數據集。

第二步:探索數據

構建、訓練模型只是整個流程的一部分,如果事先能了解數據特征,這會對之后的模型構建大有裨益,比如更高的準確率,或是更少的數據和更少的計算資源。

加載數據集

首先,讓我們將數據集加載到Python中:

def load_imdb_sentiment_analysis_dataset(data_path, seed=123):

"""Loads the IMDb movie reviews sentiment analysis dataset.

# Arguments

data_path: string, path to the data directory.

seed: int, seed for randomizer.

# Returns

A tuple of training and validation data.

Number of training samples: 25000

Number of test samples: 25000

Number of categories: 2 (0 - negative, 1 - positive)

# References

Mass et al., http://www.aclweb.org/anthology/P11-1015

Download and uncompress archive from:

http://ai.stanford.edu/~amaas/data/sentiment/aclImdb_v1.tar.gz

"""

imdb_data_path = os.path.join(data_path, 'aclImdb')

# Load the training data

train_texts = []

train_labels = []

for category in ['pos', 'neg']:

train_path = os.path.join(imdb_data_path, 'train', category)

for fname in sorted(os.listdir(train_path)):

if fname.endswith('.txt'):

with open(os.path.join(train_path, fname)) as f:

train_texts.append(f.read())

train_labels.append(0if category == 'neg'else1)

# Load the validation data.

test_texts = []

test_labels = []

for category in ['pos', 'neg']:

test_path = os.path.join(imdb_data_path, 'test', category)

for fname in sorted(os.listdir(test_path)):

if fname.endswith('.txt'):

with open(os.path.join(test_path, fname)) as f:

test_texts.append(f.read())

test_labels.append(0if category == 'neg'else1)

# Shuffle the training data and labels.

random.seed(seed)

random.shuffle(train_texts)

random.seed(seed)

random.shuffle(train_labels)

return ((train_texts, np.array(train_labels)),

(test_texts, np.array(test_labels)))

檢查數據

加載完數據后,最好對其一一檢查:選擇一些樣本,手動檢查它們是否符合你的預期。比如示例用的電影評論數據集,我們可以輸出一些隨機樣本,檢查情緒標簽和評論包含的情緒是否一致。

“十分鐘的故事非要講兩小時,要不是沒什么大事,我早就中途起身走人了。”

這是數據集中被標記為“negative”的評論,很顯然,評論者覺得電影非常拖沓、無聊,這和標簽是匹配的。

收集關鍵指標

完成檢查后,你需要收集以下重要指標,它們有助于表征文本分類任務:

樣本數:數據集中的樣本總數。

類別數:數據集中的主題或分類數。

每個類的樣本數:如果是均衡的數據集,所有類應該包含數量相近的樣本;如果是不均衡的數據集,每個類所包含的樣本數會有巨大差異。

每個樣本中的單詞數:這是文本分類問題,所以要統計樣本所包含單詞數的中位數。

單詞詞頻分布:數據集中每個單詞的出現頻率(出現次數)。

樣本長度分布:數據集中每個樣本的

第2.5步:選擇一個模型

到目前為止,我們已經匯總了數據,也深入了解了數據中的關鍵特征。接下來,根據第二步中收集的各個指標,我們就要開始考慮應該使用哪種分類模型了。這也意味著我們會提出以下這些問題:“我們該怎么把文本數據轉成算法輸入?”(數據預處理和向量化),“我們應該使用什么類型的模型?”,“我們的模型應該實用什么參數配置?”……

得益于數十年的研究,現在數據預處理和模型配置的選擇非常多元化,但這么多的選擇其實也帶來了不少麻煩,我們手頭只有一個特定問題,它的范圍也很寬泛,那么怎么選才是最好的呢?最老實的方法是一個個試過去,去掉不好的,留下最好的,但這種做法并不現實。

在本文中,我們嘗試著簡化選擇文本分類模型的過程。對于給定數據集,我們的目標只有兩個:準確率接近最高,訓練時間盡可能最低。我們針對不同類型的問題(特別是情感分析和主題分類問題)進行了大量(~450K)實驗,共計使用12個數據集,交替測試了不同數據預處理技術和不同模型架構的情況。這個過程有助于我們獲得影響優化的各個參數。

下面的模型選擇和流程圖是以上實驗的總結。

數據準備與模型算法構建

計算比率:樣本數/單個樣本平均單詞數

如果以上比率小于1500,對文本進行分詞,然后用簡單的多層感知器(MLP)模型對它們進行分類(下圖左側分支)

a.用n元模型對句子分詞,并把詞轉換成詞向量

b.根據向量的重要程度評分,從中抽出排名前2萬的詞

c.構建MLP模型

如果以上比率大于1500,則將文本標記成序列,用sepCNN模型對它們進行分類(下圖右側分支)

a.對樣本進行分詞,根據單詞詞頻選擇其中的前2萬個

b.將樣本轉換為單詞序列向量

c.如果比率小于1500,用預訓練的sepCNN模型進行詞嵌入,效果可能會很好

調整超參數,尋找模型的最佳參數配置

在下面的流程圖中,黃色框表示數據和模型的準備階段,灰色框和綠色框表示過程中的每個選擇,其中綠色表示“推薦選擇”。你可以把這張圖作為構建第一個實驗模型的起點,因為它能以較低的計算成本提供較良好的性能。之后如果有需要,你可以再在這基礎上繼續改進迭代。

文本分類流程圖

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

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

我們應該如何準備數據以有效地學習文本和標簽之間的關系?

其中,第二個問題取決于第一個問題的答案,我們預處理數據的方式取決于選擇的具體模型。文本分類模型大致可分為兩類:使用單詞排序信息的序列模型和把文本視為一組單詞的n-gram模型。其中序列模型的類型包括卷積神經網絡(CNN)、遞歸神經網絡(RNN)及其變體。n-gram模型的類型包括邏輯回歸、MLP、DBDT和SVM。

對于電影評論數據集,樣本數/單個樣本平均單詞數約為144,所以我們會構建一個MLP模型。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 文本分類
    +關注

    關注

    0

    文章

    18

    瀏覽量

    7330
  • 分類器
    +關注

    關注

    0

    文章

    152

    瀏覽量

    13201
  • 機器學習
    +關注

    關注

    66

    文章

    8425

    瀏覽量

    132771

原文標題:ML通用指南:文本分類詳細教程(上)

文章出處:【微信號:jqr_AI,微信公眾號:論智】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    pyhanlp文本分類與情感分析

    ) throws IllegalArgumentException, IOException;例如:每個分類里面都是一些文本文檔。任何滿足此格式的語料庫都可以直接加載。數據集實現考慮到大規模訓練的時候
    發表于 02-20 15:37

    TensorFlow的CNN文本分類

    在TensorFlow中實現CNN進行文本分類(譯)
    發表于 10-31 09:27

    NLPIR平臺在文本分類方面的技術解析

    下NLPIR大數據語義智能分析系統是怎樣實現文本分類的。NLPIR大數據語義智能分析平臺的文本分類有兩種模式:專家規則分類機器
    發表于 11-18 17:46

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

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

    基于apiori算法改進的knn文本分類方法

    的,通過實例去學習分類在這方面就很有優勢。 般的文本分類分為這幾個步驟,首先是建立文檔的表示模型,即通過若干特征去表示
    發表于 11-09 10:25 ?9次下載
    基于apiori算法改進的knn<b class='flag-5'>文本分類</b>方法

    運用多種機器學習方法比較短文本分類處理過程與結果差別

    目標 從頭開始實踐中文短文本分類,記錄下實驗流程與遇到的坑運用多種機器學習(深度學習 + 傳統
    的頭像 發表于 11-02 15:37 ?5274次閱讀
    運用多種<b class='flag-5'>機器</b><b class='flag-5'>學習</b>方法比較短<b class='flag-5'>文本分類</b>處理過程與結果差別

    textCNN論文與原理——短文本分類

    是處理圖片的torchvision,而處理文本的少有提及,快速處理文本數據的包也是有的,那就是torchtext[1]。下面還是結合上個案例:【深度學習】textCNN論文與原理——
    的頭像 發表于 12-31 10:08 ?2542次閱讀
    textCNN論文與原理——短<b class='flag-5'>文本分類</b>

    文本分類個大型“真香現場”來了

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

    基于深度神經網絡的文本分類分析

    卷積神經網絡、循環神經網絡、注意力機制等方法在文本分類中的應用和發展,分析多種典型分類方法的特點和性能,從準確率和運行時間方面對基礎網絡結構進行比較,表明深度神經網絡較傳統機器學習方法
    發表于 03-10 16:56 ?37次下載
    基于深度神經網絡的<b class='flag-5'>文本分類</b>分析

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

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

    基于不同神經網絡的文本分類方法研究對比

    海量文本分析是實現大數據理解和價值發現的重要手段,其中文本分類作為自然語言處理的經典問題受到研究者廣泛關注,而人工神經網絡在文本分析方面的優異表現使其成為目前的主要研究方向。在此背景下,介紹卷積
    發表于 05-13 16:34 ?49次下載

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

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

    帶你從頭構建文本分類

    文本分類是 NLP 中最常見的任務之, 它可用于廣泛的應用或者開發成程序,例如將用戶反饋文本標記為某種類別,或者根據客戶文本語言自動歸類。另外向我們平時見到的郵件垃圾過濾器也是
    的頭像 發表于 03-22 10:49 ?3618次閱讀

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

    文本分類是NLP領域的較為容易的入門問題,本文記錄文本分類任務的基本流程,大部分操作使用了**torch**和**torchtext**兩個庫。 ## 1. 文本數據預處理
    的頭像 發表于 02-22 14:23 ?1127次閱讀

    卷積神經網絡在文本分類領域的應用

    在自然語言處理(NLP)領域,文本分類直是個重要的研究方向。隨著深度學習技術的飛速發展,卷積神經網絡(Convolutional Neural Network,簡稱CNN)在圖像識
    的頭像 發表于 07-01 16:25 ?752次閱讀
    主站蜘蛛池模板: 87影院午夜福利| 国产精品久久人妻拍拍水牛影视 | 成人免费在线| 哇嘎在线精品视频在线观看| 含羞草国产亚洲精品岁国产精品| 在线a亚洲视频| 欧美一级成人影院免费的| 免费乱理伦片在线观看八戒| voyeurhit农村夫妻偷拍| 忘忧草日本在线社区WWW电影| 精品国产乱码久久久久乱码| 最新精品国产| 67194con免费福和视频| 欧美 亚洲 日韩 中文2019| 俄罗斯摘花| 伊人久久精品午夜| 日韩高清毛片| 久久re这里视频只精品首页| 超碰在线 视频| 亚洲中文字幕一二三四区苍井空 | 全黄H全肉禁乱公| 精品综合久久久久久8888| sihu国产精品永久免费| 亚洲精品另类有吗中文字幕| 欧洲vs美洲完整视频| 好男人在线视频| 成人免费视频网站www| 伊人久久精品99热超碰| 色综合 亚洲 自拍 欧洲| 老熟女重囗味HDXX| 国产亚洲AV精品无码麻豆| YELLOW视频在线观看免费版高清| 亚洲午夜AV久久久精品影院色戒| 日韩精品 电影一区 亚洲高清| 久久高清免费视频| 国产香蕉九九久久精品免费| 办公室中文BD| 97在线精品视频免费| 一手揉着乳头一手模仿抽插视频| 无码AV动漫精品一区二区免费 | 午夜国产精品免费观看|