資源|Chinese Word Vectors:目前最全的中文預訓練詞向量集合

選自GitHub

機器之心編譯

參與:劉曉坤、思源

項目鏈接:https://github.com/Embedding/Chinese-Word-Vectors

該項目提供使用不同表徵(稀疏和密集)、上下文特徵(單詞、n-gram、字符等)以及語料庫訓練的中文詞向量(嵌入)。在這裡,你可以輕鬆獲得具有不同屬性的預訓練向量,並將它們用於各類下游任務。

此外,開發者還在該工具中提供了一箇中文類比推理數據集 CA8 及其評估工具包,用戶可以以此評估自己詞向量的質量。

格式

本資源中的預訓練詞向量文件以文本格式存儲。每一行包含一個單詞及其詞向量。每個值由空格分開。第一行記錄元信息:第一個數字表示該單詞在文件中的排序,第二個數字表示維度大小。

除了密集單詞向量(以 SGNS 訓練),該項目還提供了稀疏向量(以 PPMI 訓練)。它們與 liblinear 格式相同,其中「:」前的數字代表維度索引,「:」後的數字表示值。

預訓練中文詞向量

基本設定

资源|Chinese Word Vectors:目前最全的中文预训练词向量集合

多領域詞彙

中文詞向量在不同的表徵、上下文特徵和語料庫上進行了訓練。

资源|Chinese Word Vectors:目前最全的中文预训练词向量集合
资源|Chinese Word Vectors:目前最全的中文预训练词向量集合

*該項目提供了漢字嵌入,因為古中文大多數漢字就是一個詞。

多種共現信息

開發者發佈了在不同的共現(co-occurrence)統計數據上的詞向量。目標和上下文向量在相關的論文中一般稱為輸入和輸出向量。

资源|Chinese Word Vectors:目前最全的中文预训练词向量集合

表徵

現有的詞表徵方法一般可分為兩種,即密集型和稀疏型的詞嵌入表徵。SGANS 模型(word2vec 工具包中的模型)和 PPMI 模型分別是這兩種表徵的典型案例。SGNS 模型通過一個淺層神經網絡學習低維度的密集向量,這也稱為神經嵌入方法。PPMI 模型是一種稀疏的特徵袋(bag-of-feature)表徵方法,且它會使用正逐點互信息(PPMI)對特徵進行加權。

上下文特徵

三種上下文特徵:單詞、n-gram 和字符在詞嵌入文獻中很常用。大多數詞表徵方法本質上利用了詞-詞的共現統計,即使用詞作為上下文特徵(詞特徵)。受語言建模問題的啟發,開發者將 n-gram 特徵引入了上下文中。詞到詞和詞到 n-gram 的共現統計都被用於訓練 n-gram 特徵。對於中文而言,字符(即漢字)通常表達了很強的語義。為此,開發者考慮使用詞-詞和詞-字符的共現統計來學習詞向量。字符級的 n-gram 的長度範圍是從 1 到 4(個字符特徵)。

除了詞、n-gram 和字符或漢字以外,還有其它對詞向量的屬性具有重要影響的特徵。例如,使用整個文本作為上下文特徵能將更多的主題信息引入到詞嵌入向量中,使用依存關係解析樹作為上下文特徵能為詞向量添加語法信息等。本項目考慮了 17 種同現類型。

語料庫

開發者做了大量工作來收集多個領域的語料庫。所有的文本數據都通過刪除 html 和 xml 標記進行了預處理。只有純文本被保留並使用 HanLP(v_1.5.3) 進行詞分割。語料庫的詳細信息如下:

资源|Chinese Word Vectors:目前最全的中文预训练词向量集合

所有的單詞都被包含其中,包括低頻詞。

工具包

所有的詞向量由 ngram2vec 工具包訓練。ngram2vec 工具包是 word2vec 和 fasttext 工具包的超集合,其支持抽象上下文特徵和模型。

  • ngram2vec:https://github.com/zhezhaoa/ngram2vec/

  • word2vec:https://github.com/svn2github/word2vec

  • fasttext:https://github.com/facebookresearch/fastText

中文詞類比基準

詞向量的質量通常由類比問題任務進行評估。在該項目中,開發者使用了兩個基準來評估。第一個是 CA-translated,其中大多數類比問題直接從英語基準中翻譯得到。雖然 CA-translated 在很多中文詞嵌入論文中被廣泛應用,但它僅包含了三個語義問題和 134 箇中文詞。相對的,CA8 是專門為中文語言設計的。它包含了 17813 個類比問題,覆蓋了綜合的詞法和語義關聯。CA-translated、CA8 和它們的詳細信息在 testets 文件夾中。

評估工具包

評估工具包在 evaluation 文件夾中。

運行以下代碼可評估密集向量:

$ python ana_eval_dense.py -v  
-a CA8/morphological.txt
$ python ana_eval_dense.py -v -a CA8/semantic.txt

運行以下代碼可評估稀疏向量:

$ python ana_eval_sparse.py -v  -a CA8/morphological.txt
$ python ana_eval_sparse.py -v -a CA8/semantic.txt

參考文獻

如果要使用這些嵌入和 CA8 數據集,請引用開發者的論文:

Shen Li, Zhe Zhao, Renfen Hu, Wensi Li, Tao Liu, Xiaoyong Du, Analogical Reasoning on Chinese Morphological and Semantic Relations, ACL 2018. 資源|Chinese Word Vectors:目前最全的中文預訓練詞向量集合

✄------------------------------------------------

廣告&商務合作:[email protected]


分享到:


相關文章: