1. 程式人生 > >文字分類演算法綜述

文字分類演算法綜述

業務背景

最近一段時間在今日頭條國際化部門實習,做的文字質量工作。主要是文字分類,就是用一些機器學習或者深度學習的方法過濾掉低俗的新聞。因為做的是小語種,比如說法語,德語,意語,泰米爾語等,標註力量特別有限,有些語種甚至找不到標註人員。在這種情況下,要通過模型準確的識別出低俗新聞,難度可想而知。

解決辦法:

  1. 前期在沒有標註的情況下,對每個小語種, 通過googletrans得到的一批低俗詞,然後利用pre-trained word2vec得到這批低俗詞的相似詞,用這些低俗詞和相似詞進行正則匹配,命中則說明低俗,否則認為正常
  2. 後期在線上積累了一批標註資料後,考慮採用模型進行文字分類。調研了很多文字分類演算法,總結如下。

文字分類演算法總結

文字預處理

  • 分詞
  • 移除停留詞
  • 移除低頻詞

傳統文字分類演算法

特徵工程 + 分類器 
特徵工程就是將文字轉換成固定維度的向量,再送入分類器中進行分類。 
特徵抽取的方法:

特徵工程:
  • 向量空間模型 
    • 詞帶模型(bag of words,unigram): 
      • 沒有考慮單詞之間的順序,和單詞之間的相關性, 對於短文字效果很差
    • bag of n-grams: 
      • 相比於bag of words,考慮了局部之間的順序資訊,但是向量的維度過大。如果單詞總數是|V||V|,那麼bi-gram單詞總數是|V|2|V|2,引數過多難以訓練
    • tfidf 
      • 設定了特徵的權重,即在bow的基礎上,使用tfidf權重代替1,但是同樣沒有考慮單詞之間的順序和單詞之間的相關性 
        1. 語義模型
    • word2vec 
      • word2vec技術直觀上就是將單詞對映到向量空間中,可以用來計算單詞之間的相似度,後續很多基於深度學習的文字分類演算法都利用了word2vec
      • word2vec * tfidf weight: 不同語fasttext將所有詞向量平均,該方法是每個單詞的詞向量乘上該單詞的tfidf權重,然後在求和,從而得到文字的特徵表達。
    • LDA 
      • 計算文件的主題分佈,對於長文字效果很好
    • LSI 
      • 基於矩陣分解的思想,計算出文字的語義向量

需要注意的是上述特徵工程的方法都是無監督學習方法。計算出來的文字特徵向量相當於把文字對映到向量空間,可以用來做文字相似度的計算。也就是在沒有標籤的情況下,可以做文字聚類。

分類器

分類器用的比較多的是LR,SVM,GBDT等,當然還有其他一些分類演算法,這裡不多贅述。

深度學習文字分類演算法

使用深度學習,自動從文字中提取特徵,省去了特徵工程,實現端到端的訓練,得益於深度學習強大的特徵表徵能力,使用深度學習進行文字分類其效果要往往要好於傳統的方法。


相關推薦

文字分類演算法綜述

業務背景最近一段時間在今日頭條國際化部門實習,做的文字質量工作。主要是文字分類,就是用一些機器學習或者深度學習的方法過濾掉低俗的新聞。因為做的是小語種,比如說法語,德語,意語,泰米爾語等,標註力量特別有限,有些語種甚至找不到標註人員。在這種情況下,要通過模型準確的識別出低俗新

基於協同訓練的半監督文字分類演算法

標籤: 半監督學習,文字分類 作者:煉己者 --- 本部落格所有內容以學習、研究和分享為主,如需轉載,請聯絡本人,標明作者和出處,並且是非商業用途,謝謝! 如果大家覺得格式看著不舒服,也歡迎大家去看我的簡書 半監督學習文字分類系列 用半監督演算法做文字分類(sklearn) sklearn半監督學習(

文字分類——演算法效能評估

內容提要 資料集 英文語料 中文語料 評估指標 召回率與準確率 F1-評測值 微平均與巨集平均 混淆矩陣   優秀的文字分類模型必須經得住真實資料集的驗證,因而分類器

基於機器學習的文字分類演算法的研究

1. 簡述 文字分類的方法屬於有監督的學習方法,分類過程包括文字預處理、特徵抽取、降維、分類和模型評價。本文首先研究了文字分類的背景,中文分詞演算法。然後是對各種各樣的特徵抽取進行研究,包括詞項頻率-逆文件頻率和word2vec,降維方法有主成分分析法和潛在索引分析,最後是對分類演算法進行研究,

文字分類演算法之--貝葉斯分類演算法的實現Java版本

package com.vista;import com.vista.ChineseSpliter;import com.vista.ClassConditionalProbability;import com.vista.PriorProbability;import com.vista.Trainin

文字分類演算法--樸素貝葉斯

貝葉斯定理 貝葉斯定理用公式表示: p(Y|X)=P(X|Y)P(Y)p(X) 其中,p(Y)是先驗概率,P(Y|X)是後驗概率,也就是要求的概率。 樸素貝葉斯演算法原理 樸素貝葉斯分類演算法是一種生成模型。訓練的過程是學習聯合概率分佈p(x,

文字分類演算法之--KNN演算法的簡介

1、KNN演算法的簡介 kNN演算法就是找到k個最相似的樣本,這些樣本所在的類,就是當前文件的所屬的類。如下圖:綠色圓圈表示你想分類的文字,其他是已知類別的樣本。圖中其他形狀和綠色圓圈的距離代表了相似

基於樸素貝葉斯分類器的文字分類演算法(上)

轉載請保留作者資訊: 作者:phinecos(洞庭散人)  Preface 本文緣起於最近在讀的一本書-- Tom M.Mitchell的書中第6章詳細講解了貝葉斯學習的理論知識,為了將其應用到實際中來,參考了網上許多資料,從而得此文。文章將分為兩個部分,第一部分將介紹貝葉斯學習的相關理論()。第二部

一種根據關鍵字進行分類文字分類演算法

這樣我們可以得出這個演算法的重點: 1.提取關鍵字 如何自動提取關鍵字呢?我們知道IDF值在一定程度上可以表達一個詞的重要程度,像“我的”,“你的”這樣的關鍵字肯定無法判斷出文章的類別,他們的IDF值也是較低的。而“AK47”,“火箭炮”這樣的關鍵字可以

文字處理——基於 word2vec 和 CNN 的文字分類綜述 & 實踐(一)

導語傳統的向量空間模型(VSM)假設特徵項之間相互獨立,這與實際情況是不相符的,為了解決這個問題,可以採用文字的分散式表示方式(例如 word embedding形式),通過文字的分散式表示,把文字表示成類似影象和語音的連續、稠密的資料。這樣我們就可以把深度學習方法遷移到文字

fastrtext︱R語言使用facebook的fasttext快速文字分類演算法

FastText是Facebook開發的一款快速文字分類器,提供簡單而高效的文字分類和表徵學習的方法,不過這個專案其實是有兩部分組成的。理論介紹可見部落格:NLP︱高階詞向量表達(二)——FastText(簡述、學習筆記) 本輪新更新的fastr

文字分類——NLV演算法研究與實現

內容提要 1 引言 2 NLV演算法理論 2.1 訓練模型 2.2 分類模型 3 NLV演算法實現 3.1 演算法描述 4 實驗及效能評估 4.1 實驗設計 4

機器學習筆記(3)——使用聚類分析演算法文字分類分類數k未知)

聚類分析是一種無監督機器學習(訓練樣本的標記資訊是未知的)演算法,它的目標是將相似的物件歸到同一個簇中,將不相似的物件歸到不同的簇中。如果要使用聚類分析演算法對一堆文字分類,關鍵要解決這幾個問題: 如何衡量兩個物件是否相似 演算法的效能怎麼度量 如何確定分類的個數或聚類

基於深度學習的文字分類6大演算法-原理、結構、論文、原始碼打包分享

    導讀:文字分類是NLP領域一項基礎工作,在工業界擁有大量且豐富的應用場景。傳統的文字分類需要依賴很多詞法、句法相關的human-extracted feature,自2012年深度學習技術快速發展之後,尤其是迴圈神經網路RNN、卷積神經網路CNN在NLP領域逐漸獲得廣

《機器學習實戰》基於樸素貝葉斯分類演算法構建文字分類器的Python實現

Python程式碼實現:#encoding:utf-8 from numpy import * #詞表到向量的轉換函式 def loadDataSet(): postingList = [['my','dog','has','flea','problems','help','please'],

NLP --- 文字分類(基於LDA的隱語意分析訓練演算法詳解)

上一節詳細介紹了什麼是LDA,詳細講解了他的原理,大家應該好好理解,如果不理解,這一節就別看了,你是看不懂的,這裡我在簡單的敘述LDA的演算法思想: 首先我們只擁有很多篇文字和一個詞典,那麼我們就可以在此基礎上建立基於基於文字和詞向量聯合概率(也可以理解為基於文字和詞向量的矩陣,大家暫且這樣

樸素貝葉斯分類演算法理解及文字分類器實現

貝葉斯分類是一類分類演算法的總稱,這類演算法均以貝葉斯定理為基礎,故統稱為貝葉斯分類。本文作為分類演算法的第一篇,將首先介紹分類問題,對分類問題進行一個正式的定義。然後,介紹貝葉斯分類演算法的基礎——貝葉斯定理。最後,通過例項討論貝葉斯分類中最簡單的一種:樸素貝葉斯分類。

【機器學習PAI實踐七】文字分析演算法實現新聞自動分類

一、背景 新聞分類是文字挖掘領域較為常見的場景。目前很多媒體或是內容生產商對於新聞這種文字的分類常常採用人肉打標的方式,消耗了大量的人力資源。本文嘗試通過智慧的文字挖掘演算法對於新聞文字進行分類。無需任何人肉打標,完全由機器智慧化實現。 本文通過PLDA演算

用樸素貝葉斯分類演算法做中文文字分類

一. 樸素貝葉斯分類演算法的原理 樸素貝葉斯分類器基於屬性條件獨立假設:對於已知類別,假設所有屬性相互獨立,也就是說,假設每個屬性獨立地對分類結果產生影響。 設待分類的樣本屬性集為TT,其中包含nn個屬性,分別為t1,t2,t3...tnt1,t2,t3..

關於K最近鄰分類演算法(KNN)的綜述

摘要 作為一種非引數的分類演算法, K近鄰(KNN)演算法是非常有效和容易實現的。 它已經廣泛應用於分類、迴歸和模式識別等 。在應用 KNN 演算法解決問題的時候, 要注意兩個方面的問題:—樣本權重和