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

2020-12-05 機器之心Pro

對於國內自然語言處理的研究者而言,中文詞向量語料庫是需求很大的資源。近日,來自北京師範大學和人民大學的研究者開源了「中文詞向量語料庫」,試圖為大家解決這一問題,該庫包含經過數十種用各領域語料(百度百科、維基百科、人民日報 1947-2017、知乎、微博、文學、金融、古漢語等)訓練的詞向量,涵蓋各領域,且包含多種訓練設置。目前,該研究的論文《Analogical Reasoning on Chinese Morphological and Semantic Relations》已經被 ACL2018 大會接收。

項目連結:https://github.com/Embedding/Chinese-Word-Vectors

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

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

格式

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

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

預訓練中文詞向量

基本設定

多領域詞彙

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

*該項目提供了字向量,因為古漢語大多數漢字獨立成詞。

多種共現信息

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

在這一部分中,我們可以獲取詞層面之上的任意語言單元向量。例如,漢字向量包含在詞-漢字的上下文向量中。所有向量都在百度百科上使用 SGNS 訓練。

表徵

現有的詞表徵方法一般可分為兩種,即密集型和稀疏型的詞嵌入表徵。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) 進行詞分割。語料庫的詳細信息如下:

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

工具包

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

ngram2vec:https://github.com/zhezhaoa/ngram2vec/word2vec:https://github.com/svn2github/word2vecfasttext: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.

相關焦點

  • 詞向量詳解:從word2vec、glove、ELMo到BERT
    目前,詞向量(又叫詞嵌入)已經成為NLP領域各種任務的必備一步,而且隨著bert elmo,gpt等預訓練模型的發展,詞向量演變為知識表示方法,但其本質思想不變。學習各種詞向量訓練原理可以很好地掌握NLP各種方法。生成詞向量的方法有很多種,本文重點介紹word2vec,glove和bert。
  • 中文最佳,哈工大訊飛聯合發布全詞覆蓋中文BERT預訓練模型
    而在中文領域,哈工大訊飛聯合實驗室也於昨日發布了基於全詞覆蓋的中文 BERT 預訓練模型,在多個中文數據集上取得了當前中文預訓練模型的最佳水平,效果甚至超過了原版 BERT、ERINE 等中文預訓練模型。基於 Transformers 的雙向編碼表示(BERT)在多個自然語言處理任務中取得了廣泛的性能提升。
  • PTMs|2020最新NLP預訓練模型綜述
    該綜述系統地介紹了nlp中的預訓練模型。主要的貢獻包括:1.深入盤點了目前主流的預訓練模型,如word2vec,ELMo,BERT等。2.提出了一種預訓練模型的分類體系,通過四種分類維度來劃分目前已有的預訓練模型。
  • 一文讀懂最強中文NLP預訓練模型ERNIE
    同時 我 + 買 + 名詞 是一個非常明顯的購物意圖的句式,BERT 沒有對此類語法結構進行專門的建模,如果預訓練的語料中只有「我要買蘋果手機」,「我要買華為手機」,哪一天出現了一個新的手機牌子比如慄子手機,而這個手機牌子在預訓練的語料當中並不存在,沒有基於詞法結構以及句法結構的建模,對於這種新出來的詞是很難給出一個很好的向量表示的,而ERNIE 通過對訓練數據中的詞法結構,語法結構,語義信息進行統一建模
  • 詞向量學習算法 Word2Vec
    Word2Vec 是 google 在2013年提出的詞向量模型,通過 Word2Vec 可以用數值向量表示單詞,且在向量空間中可以很好地衡量兩個單詞的相似性。 1.
  • 詞嵌入的經典方法,六篇論文遍歷Word2vec的另類應用
    1、word2vec 簡介什麼是 word2vec:Word2Vec 是一個過程(技術),在這個過程中,將文本作為神經網絡的訓練數據,這個神經網絡的輸出向量被稱作嵌入,這些嵌入(向量)在訓練後會包含單詞的語義信息。
  • ImageNet 帶來的預訓練模型之風,馬上要吹進 NLP 領域了
    這些方法的出現預示著一個分水嶺時刻的到來了:這些預訓練語言模型有可能會在自然語言處理領域造成巨大而廣泛的影響,正如 ImageNet 預訓練模型在計算機視覺中所造成的影響一樣。從淺層到深度預訓練預訓練的詞向量已經統治了自然語言處理領域相當長一段時間。
  • 每個詞會訓練一個單詞向量,直到得到詞向量空間中維度最大的向量
    我們需要先梳理一下每一類任務的基本流程,主要包括:回答問題首先,我們要給出問題,之後找出問題中的關鍵詞或者問題中的關鍵字,再把問題中提到的關鍵字或者問題中的關鍵字組合起來,提煉出句子或者文章的核心詞,和關鍵句,把這些句子和文章的核心詞轉化為一個關鍵詞表。然後再提煉每一句話的核心詞。隨後我們要找出一個模型,用來判斷它所預測的答案是否與問題最接近。
  • NLP入門+實戰必讀:一文教會你最常見的10種自然語言處理技術
    (https://www.analyticsvidhya.com/blog/2017/06/word-embeddings-count-word2veec/)相關論文:這篇論文解釋了詞向量化的細節。深入理解詞向量化必讀。
  • NLP領域預訓練模型的現狀及分析
    相比隨機初始化的詞嵌入,模型訓練完成後的詞嵌入已經包含了詞彙之間的信息。2013年,Mikolov等人提出了word2vec工具,其中包含了CBOW(Continue Bag of Words)模型和Skip-gram模型[2-3],該工具僅僅利用海量的單語數據,通過無監督的方法訓練得到詞嵌入。
  • 復旦邱錫鵬超全NLP預訓練模型綜述論文:兩張圖帶你梳理完整脈絡
    機器之心報導機器之心編輯部超全預訓練語言模型概覽,入門學習、搭建知識體系、找文獻資料、找資原始碼,這裡有 NLP 預訓練模型的方方面面。第一代 PTM 旨在學習詞嵌入。由於下遊的任務不再需要這些模型的幫助,因此為了計算效率,它們通常採用淺層模型,如 Skip-Gram 和 GloVe。儘管這些經過預訓練的嵌入向量也可以捕捉單詞的語義,但它們卻不受上下文限制,只是簡單地學習「共現詞頻」。這樣的方法明顯無法理解更高層次的文本概念,如句法結構、語義角色、指代等等。
  • ALBERT一作藍振忠:預訓練模型應用成熟,ChineseGLUE要對標GLUE
    今年石破天驚的預訓練語言模型,可謂是下半年的 ALBERT 預訓練模型。和 XLNet、RoBERTa 等不同。ALBERT 模型大幅減少了模型的參數量,卻仍然在 GLUE、SQuAD 2.0、RACE 榜單上達到了 SOTA。另一項引起業界關注的項目,則是中文預訓練語言模型評價基準 ChineseGLUE。
  • 超越BERT、GPT,微軟提出通用預訓練模型MASS
    2018年開始,預訓練(pre-train) 毫無疑問成為NLP領域最熱的研究方向。藉助於BERT和GPT等預訓練模型,人類在多個自然語言理解任務中取得了重大突破。然而,在序列到序列的自然語言生成任務中,目前主流預訓練模型並沒有取得顯著效果。
  • 7天8卡訓練32種語言,字節跳動推出多語言預訓練新範式mRASP
    作者還公布了研究數據、代碼和預訓練模型,參見文末 GitHub 地址。接下來我們從三個方面介紹分析 mRASP:1)機器翻譯預訓練的挑戰;2)mRASP 的動機和方法;3)mRASP 的實際效果和分析。機器翻譯預訓練的挑戰目前絕大多數 AI 任務都是建立在數據基礎之上的統計學習,模型的性能很大程度上依賴於數據的質量和數量。
  • 中文NLP福利!大規模中文自然語言處理語料
    新智元推薦來源:AINLP作者:徐亮【新智元導讀】本文介紹一個中文自然語言處理語料庫項目:nlp_chinese_corpus ,初步貢獻了幾個已經預處理好的中文語料,包括維基、新聞和百科語料,可直接下載使用。
  • 手把手教你NumPy來實現Word2vec
    例如,單詞「happy」可以表示為4維向量[0.24、0.45、0.11、0.49],「sad」具有向量[0.88、0.78、0.45、0.91]。這種從單詞到向量的轉換也被稱為單詞嵌入(word embedding)。這種轉換的原因是機器學習算法可以對數字(在向量中的)而不是單詞進行線性代數運算。