Photo by Sophia Baboolal on Unsplash

[NLP]不同詞向量在文本分類上的表現與實作

- word2vec, TF-IDF weighted, GloVe 與 doc2vec

Tom Lin
Published in
13 min readApr 17, 2020

--

引言

今天,我們要來認識詞向量(word embedding),詞向量的引入,是NLP的一大發展,透過向量化的方式,我們得以比較每個詞的相似程度,對文本分類問題的成效有很大提升,也讓詞向量後來成為NLP的標準前處理步驟之一。

在今日的分享中,我將試著比較不同詞向量操作之成效差異,並說明其操作流程,希望讓讀者在進行NLP相關建模時,有所幫助。

一、文章架構

此次的詞向量實作,包含了word2vec, TF-IDF weighted word2vec, GloVe word2vec, doc2vec, 與 TF-IDF word2vec + doc2vec 綜合版等。

我們的目的在透過各種詞向量的操作,得出每一個文本的文本向量,以此作為input進行文本分類器的訓練,並進行成效比較。

文章將依序說明資料前處理步驟、進行word2vec的訓練、載入預訓練詞向量、與使用doc2vec等方法,最後再簡單使用羅吉斯模型進行文本分類器訓練。

二、名詞說明

  • 詞向量:以一個向量來表示每一個詞義
  • 文本:每一則留言(在本例中)
  • 文本向量:以一個向量來代表每一則留言
  • Corpus:所有文本聚合起來,稱作Corpus
  • word2vec:詞向量的訓練模型
  • doc2vec:文本向量的訓練模型

三、資源引用與感謝

在我嘗試建構一系列好用的Python Class來進行詞向量訓練時,大量參考了下述作者的編程代碼,他們的文章篇篇精采,值得一讀,多虧他們的分享,讓我得以生成此文供大家賞析。

  1. “Text Classification with Word2vec” by nadbor,此文展示了如何撰寫詞向量的平均與進行加權,以得到適合的文本向量。
  2. “Multi-Class Text Classification Model Comparison and Selection” by Susan Li,此文也著重在如何撰寫簡潔的詞向量平均代碼實現。
  3. “Gensim Doc2vec Tutorial on IMDB Sentiment…

--

--

Tom Lin
Taiwan AI Academy

An enthusiastic in swimming, jogging and movies besides my job as an analyst. Specifically with long-standing passion on customer behavior analysis.