NLP-零基礎入門NLP之新聞文本分類


賽事理解

今天是打卡的第一天,任務是零基礎入門NLP之新聞文本分類,賽事的鏈接如下:

賽題理解

  • 賽題名稱:零基礎入門NLP之新聞文本分類
  • 賽題目標:通過這道賽題可以引導大家走入自然語言處理的世界,帶大家接觸NLP的預處理、模型構建和模型訓練等知識點。
  • 賽題任務:賽題以自然語言處理為背景,要求選手對新聞文本進行分類,這是一個典型的字符識別問題。

賽題數據

  • 賽題以匿名處理后的新聞數據為賽題數據,數據集報名后可見並可下載。賽題數據為新聞文本,並按照字符級別進行匿名處理。整合划分出14個候選分類類別:財經、彩票、房產、股票、家居、教育、科技、社會、時尚、時政、體育、星座、游戲、娛樂的文本數據。
  • 賽題數據由以下幾個部分構成:訓練集20w條樣本,測試集A包括5w條樣本,測試集B包括5w條樣本。為了預防選手人工標注測試集的情況,我們將比賽數據的文本按照字符級別進行了匿名處理。
  • 在數據集中標簽的對應的關系如下:{'科技': 0, '股票': 1, '體育': 2, '娛樂': 3, '時政': 4, '社會': 5, '教育': 6, '財經': 7, '家居': 8, '游戲': 9, '房產': 10, '時尚': 11, '彩票': 12, '星座': 13}

評測指標

  • 評價標准為類別f1_score的均值,選手提交結果與實際測試集的類別進行對比,結果越大越好。
賽事說明到這基本介紹結束,重點剖析各個部分的重要使用的方法和技術

f1_score重點介紹

F1分數(F1-score)是分類問題的一個衡量指標。一些多分類問題的機器學習競賽,常常將F1-score作為最終測評的方法。它是精確率和召回率的調和平均數,最大為1,最小為0。

計算過程

  • 首先定義以下幾個概念:
    • TP(True Positive):預測答案正確
    • FP(False Positive):錯將其他類預測為本類
    • FN(False Negative):本類標簽預測為其他類標
  • 通過第一步的統計值計算每個類別下的precision和recall
    • 精准度 / 查准率(precision):指被分類器判定正例中的正樣本的比重
    • 召回率 / 查全率 (recall):指的是被預測為正例的占總的正例的比重
    • 另外,介紹一下常用的准確率(accuracy)的概念,代表分類器對整個樣本判斷正確的比
  • 通過第二步計算結果計算每個類別下的f1-score,計算方式如下
  • 通過對第三步求得的各個類別下的F1-score求均值,得到最后的評測結果,計算方式如下

解題思路

思路1:TF-IDF + 機器學習分類器

直接使用TF-IDF對文本提取特征,並使用分類器進行分類。在分類器的選擇上,可以使用SVM、LR、或者XGBoost。

TF-IDF的思路

  • 計算詞頻
    • 詞頻(TF) = 某個詞在文章中的出現次數 / 文章總詞數
  • 某個詞在文章中的出現次數
    • 逆文檔頻率(IDF) = log(語料庫的文檔總數/包含該詞的文檔總數+1)
  • 計算TF-IDF
    • TF-IDF = 詞頻(TF) * 逆文檔頻率(IDF)
  可以看到,TF-IDF與一個詞在文檔中的出現次數成正比,與該詞在整個語言中的出現次數成反比。所以,自動提取關鍵詞的算法就是計算出文檔的每個詞的TF-IDF值,然后按降序排列,取排在最前面的幾個詞。
優點:
  • 簡單快速,結果比較符合實際情況
缺點:
  • 單純以"詞頻"衡量一個詞的重要性,不夠全面,有時重要的詞可能出現次數並不多。
  • 這種算法無法體現詞的位置信息,出現位置靠前的詞與出現位置靠后的詞,都被視為重要性相同,這是不正確的。

思路2:FastText(了解不多,后續補充)

FastText是入門款的詞向量,利用Facebook提供的FastText工具,可以快速構建出分類器。

fastText的架構和word2vec中的CBOW的架構類似,因為它們的作者都是Facebook的科學家Tomas Mikolov,而且確實fastText也算是word2vec所衍生出來的。

fastText模型架構

其中x1,x2,...,xN1,xN表示一個文本中的n-gram向量,每個特征是詞向量的平均值。這和前文中提到的cbow相似,cbow用上下文去預測中心詞,而此處用全部的n-gram去預測指定類別。

 

fastText和word2vec的區別

  • 相似處:
    • 圖模型結構很像,都是采用embedding向量的形式,得到word的隱向量表達。
    • 都采用很多相似的優化方法,比如使用Hierarchical softmax優化訓練和預測中的打分速度。
  • 不同處:
    • 模型的輸出層:word2vec的輸出層,對應的是每一個term,計算某term的概率最大;而fasttext的輸出層對應的是分類的label。不過不管輸出層對應的是什么內容,起對應的vector都不會被保留和使用。
    • 模型的輸入層:word2vec的輸出層,是 context window 內的term;而fasttext 對應的整個sentence的內容,包括term,也包括 n-gram的內容。
  • 兩者本質的不同,體現在 h-softmax的使用:
    • Word2vec的目的是得到詞向量,該詞向量 最終是在輸入層得到,輸出層對應的 h-softmax也會生成一系列的向量,但最終都被拋棄,不會使用。
    • fastText則充分利用了h-softmax的分類功能,遍歷分類樹的所有葉節點,找到概率最大的label(一個或者N個)

思路3:WordVec + 深度學習分類器

WordVec是進階款的詞向量,並通過構建深度學習分類完成分類。深度學習分類的網絡結構可以選擇TextCNN、TextRNN或者BiLSTM。

WordVec

詞向量(word embedding),可以很好地度量詞與詞之間的相似性。隨着深度學習(Deep Learning)在自然語言處理中應用的普及,很多人誤以為word2vec是一種深度學習算法。其實word2vec算法的背后是一個淺層神經網絡,分為兩種模型

  • CBOW 由上下文的詞語預測中間詞
  • Skip 由中心詞預測上下文的詞語

深度學習分類器(簡要說明,后續詳細介紹)

深層學習的分類器主要處理文本的可以使用RNN,LSTM,BiLSTM(雙向LSTM),CNN(TEXTCNN)等

思路4:Bert詞向量(了解不多,后續補充)

 


免責聲明!

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



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