中文词向量的训练
最近在做畢設,需要對中文進行向量化表示,現(xiàn)有的最全中文詞向量預訓練向量有:最全中文詞向量
part 1:以上鏈接中的詞向量介紹:
格式
預先訓練好的向量文件是文本格式。每行包含一個單詞和它的向量。每個值由空格分隔。第一行記錄元信息:第一個數(shù)字表示文件中的字數(shù),第二個數(shù)字表示向量大小。
除了密集的單詞向量(用SGNS訓練)之外,我們還提供稀疏向量(用PPMI訓練)。它們與liblinear的格式相同,其中“:”之前的數(shù)字表示維度索引,“:”之后的數(shù)字表示該值。
預訓練的中文單詞矢量
基本設置
| Window Size | Dynamic Window | Sub-sampling | Low-Frequency Word | Iteration | Negative Sampling* |
| 5 | Yes | 1e-5 | 10 | 5 | 5 |
各種領域詞向量
用不同的表示法,上下文特征和語料庫訓練的中文單詞向量。下面的下載鏈接都是我的百度網盤, 因為怕資料丟失, 所以統(tǒng)一保存在了我的網盤, 后期可能回不時更新。
| Word2vec / Skip-Gram with Negative Sampling (SGNS) | ||||
| Corpus | Context Features | |||
| Word | Word + Ngram | Word + Character | Word + Character + Ngram | |
| Baidu Encyclopedia 百度百科 | 300d | 300d | 300d | 300d |
| Wikipedia_zh 中文維基百科 | 300d | 300d | 300d | 300d |
| People’s Daily News 人民日報 | 300d | 300d | 300d | 300d |
| Sogou News 搜狗新聞 | 300d | 300d | 300d | 300d |
| Financial News 金融新聞 | 300d | 300d | 300d | 300d |
| Zhihu_QA 知乎問答 | 300d | 300d | 300d | 300d |
| Weibo 微博 | 300d | 300d | 300d | 300d |
| Literature 文學作品 | 300d | 300d | 300d | 300d |
| Complete Library in Four Sections 四庫全書 | 300d | 300d | NAN | NAN |
| Mixed-large 綜合 | 300d | 300d | 300d | 300d |
| Positive Pointwise Mutual Information (PPMI) | ||||
| Corpus | Context Features | |||
| Word | Word + Ngram | Word + Character | Word + Character + Ngram | |
| Baidu Encyclopedia 百度百科 | 300d | 300d | 300d | 300d |
| Wikipedia_zh 中文維基百科 | 300d | 300d | 300d | 300d |
| People’s Daily News 人民日報 | 300d | 300d | 300d | 300d |
| Sogou News 搜狗新聞 | 300d | 300d | 300d | 300d |
| Financial News 金融新聞 | 300d | 300d | 300d | 300d |
| Zhihu_QA 知乎問答 | 300d | 300d | 300d | 300d |
| Weibo 微博 | 300d | 300d | 300d | 300d |
| Literature 文學作品 | 300d | 300d | 300d | 300d |
| Complete Library in Four Sections 四庫全書 | 300d | 300d | NAN | NAN |
| Mixed-large 綜合 | 300d | 300d | 300d | 300d |
詞共現(xiàn)性
我們發(fā)布的詞向量來自不同的共現(xiàn)統(tǒng)計量。目標和上下文向量在一些相關論文中通常被稱為輸入和輸出向量。
在這一部分中,可以獲得超出單詞的任意語言單位的向量。例如,字符向量(word-character)。
所有向量均由SGNS在百度百科上進行訓練
?
?
| Feature | Co-occurrence Type | Target Word Vectors | Context Word Vectors |
| Word | Word → Word | 300d | 300d |
| Ngram | Word → Ngram (1-2) | 300d | 300d |
| Word → Ngram (1-3) | 300d | 300d | |
| Ngram (1-2) → Ngram (1-2) | 300d | 300d | |
| Character | Word → Character (1) | 300d | 300d |
| Word → Character (1-2) | 300d | 300d | |
| Word → Character (1-4) | 300d | 300d | |
| Radical | Radical | 300d | 300d |
| Position | Word → Word (left/right) | 300d | 300d |
| Word → Word (distance) | 300d | 300d | |
| Global | Word → Text | 300d | 300d |
| Syntactic Feature | Word → POS | 300d | 300d |
| Word → Dependency | 300d | 300d |
?
表示
現(xiàn)有的單詞表示方法分為兩類,即密集和稀疏向量。 SGNS模型(word2vec工具包中的一個模型)和PPMI模型分別是這兩類的典型方法。 SGNS模型通過淺層神經網絡訓練低維實數(shù)(密集)向量。它也被稱為神經嵌入方法。 PPMI模型是一種稀疏的特征表示,通過PPM加權方案進行加權。
上下文特征
三個上下文特征: word , ngram 和 character 常見于文獻中。大多數(shù)單詞表示方法主要利用單詞共現(xiàn)統(tǒng)計,即使用單詞作為上下文特征(單詞特征)。受語言建模問題的啟發(fā),我們在上下文中引入了ngram特性。 word-word和word-ngram共現(xiàn)統(tǒng)計都用于訓練(ngram特征)。對于中國人來說,漢字(漢字)通常表達強烈的語義。為此,我們考慮使用單詞和單詞字符共現(xiàn)統(tǒng)計來學習單詞向量。字符級ngram的長度范圍從1到4 (字符特征)。
除了word,ngram和character之外,還有其他對單詞向量的屬性具有實質影響的特征。例如,使用整個文本作為上下文特征可以將更多的主題信息引入詞向量;使用依賴關系解析作為上下文特征可以為詞向量添加語法約束。本項目考慮了17種同現(xiàn)類型。
語料庫
我們費了很大勁收集各個領域的語料。所有文本數(shù)據(jù)都通過刪除html和xml標簽進行預處理。只保留純文本,并且[HanLP(v_1.5.3)](https://github.com/hankcs/HanLP)用于分詞。詳細的語料庫信息如下所示:
?
| Corpus | Size | Tokens | Vocabulary Size | Description |
| Baidu Encyclopedia 百度百科 | 4.1G | 745M | 5422K | Chinese Encyclopedia data from https://baike.baidu.com/ |
| Wikipedia_zh 中文維基百科 | 1.3G | 223M | 2129K | Chinese Wikipedia data from https://dumps.wikimedia.org/ |
| People’s Daily News 人民日報 | 3.9G | 668M | 1664K | News data from People’s Daily(1946-2017) http://data.people.com.cn/ |
| Sogou News 搜狗新聞 | 3.7G | 649M | 1226K | News data provided by Sogou labs http://www.sogou.com/labs/ |
| Financial News 金融新聞 | 6.2G | 1055M | 2785K | Financial news collected from multiple news websites |
| Zhihu_QA 知乎問答 | 2.1G | 384M | 1117K | Chinese QA data from https://www.zhihu.com/ |
| Weibo 微博 | 0.73G | 136M | 850K | Chinese microblog data provided by NLPIR Lab http://www.nlpir.org/download/weibo.7z |
| Literature 文學作品 | 0.93G | 177M | 702K | 8599 modern Chinese literature works |
| Mixed-large 綜合 | 22.6G | 4037M | 10653K | We build the large corpus by merging the above corpora. |
| Complete Library in Four Sections 四庫全書 | 1.5G | 714M | 21.8K | The largest collection of texts in pre-modern China. |
所有的單詞都考慮在內,包括低頻詞。
?
工具包
所有的單詞向量由[ngram2vec](https://github.com/zhezhaoa/ngram2vec/)工具箱進行訓練。 Ngram2vec工具箱是[word2vec](https://github.com/svn2github/word2vec)和[fasttext](https://github.com/facebookresearch/fastText)工具箱的超集,支持任意上下文特性和模型。
中文推理基準
詞向量的質量通常通過推理問題任務來評估。在這個項目中,有兩個基準被用于評估。首先是CA翻譯,其中大多數(shù)類比問題直接從英語基準轉換而來。雖然CA翻譯已被廣泛用于許多中文word embedding論文,但它只包含三個語義問題的問題,涵蓋了134個中文單詞。相比之下,CA8是專門為中文而設計的。它包含了17813個類比問題,涵蓋了全面的形態(tài)和語義關系。 CA轉換后的CA8及其詳細描述在[ testsets ](https://github.com/Embedding/Chinese-Word-Vectors/tree/master/testsets)文件夾中提供。
評估工具包
我們在[evaluation](https://github.com/Embedding/Chinese-Word-Vectors/tree/master/evaluation)文件夾中提供評估工具包。
運行以下代碼來評估密集向量。
?
| 1 2 | `$ python ana_eval_dense.py -v <vector.txt> -a CA8/morphological.txt $` python ana_eval_dense.py -v <vector.txt> -a CA8/semantic.txt |
?
運行以下代碼來評估稀疏向量。
`
$ python ana_eval_sparse.py -v <vector.txt> -a CA8/morphological.txt $
?
part 2: word2vec預訓練詞向量介紹:
Word2vec詞向量的獲得是根據(jù)神經語言模型進行訓練的,主要有CBOW和Skip-Gram兩種方式得到相應的預訓練方式:
part3: Glove詞向量訓練方法:
glove在word2vec的基礎上引入了詞的共現(xiàn)矩陣。
part4: Fasttext詞向量訓練方法:
首先會介紹一些預備知識,比如softmax、ngram等,然后簡單介紹word2vec原理,之后來講解fastText的原理,并著手使用keras搭建一個簡單的fastText分類器,最后,我們會介紹fastText在達觀數(shù)據(jù)的應用
NO.1 ? ?預備知識
?
1?Softmax回歸
?
Softmax回歸(Softmax Regression)又被稱作多項邏輯回歸(multinomial logistic regression),它是邏輯回歸在處理多類別任務上的推廣。
在邏輯回歸中, 我們有m個被標注的樣本:,其中。因為類標是二元的,所以我們有。我們的假設(hypothesis)有如下形式:
代價函數(shù)(cost function)如下:
在Softmax回歸中,類標是大于2的,因此在我們的訓練集
中,。給定一個測試輸入x,我們的假設應該輸出一個K維的向量,向量內每個元素的值表示x屬于當前類別的概率。具體地,假設形式如下:
代價函數(shù)如下:
?
其中1{·}是指示函數(shù),即1=1,1=0
既然我們說Softmax回歸是邏輯回歸的推廣,那我們是否能夠在代價函數(shù)上推導出它們的一致性呢?當然可以,于是:
可以看到,邏輯回歸是softmax回歸在K=2時的特例。
2?分層Softmax
?
你可能也發(fā)現(xiàn)了,標準的Softmax回歸中,要計算y=j時的Softmax概率:,我們需要對所有的K個概率做歸一化,這在|y|很大時非常耗時。于是,分層Softmax誕生了,它的基本思想是使用樹的層級結構替代扁平化的標準Softmax,使得在計算時,只需計算一條路徑上的所有節(jié)點的概率值,無需在意其它的節(jié)點。
下圖是一個分層Softmax示例:
樹的結構是根據(jù)類標的頻數(shù)構造的霍夫曼樹。K個不同的類標組成所有的葉子節(jié)點,K-1個內部節(jié)點作為內部參數(shù),從根節(jié)點到某個葉子節(jié)點經過的節(jié)點和邊形成一條路徑,路徑長度被表示為。于是,就可以被寫成:
其中:
表示sigmoid函數(shù);
表示n節(jié)點的左孩子;
是一個特殊的函數(shù),被定義為:
是中間節(jié)點的參數(shù);X是Softmax層的輸入。
上圖中,高亮的節(jié)點和邊是從根節(jié)點到??的路徑,路徑長度
可以被表示為:
于是,從根節(jié)點走到葉子節(jié)點,實際上是在做了3次二分類的邏輯回歸。
通過分層的Softmax,計算復雜度一下從|K|降低到log|K|。
?
3?n-gram特征
?
在文本特征提取中,常常能看到n-gram的身影。它是一種基于語言模型的算法,基本思想是將文本內容按照字節(jié)順序進行大小為N的滑動窗口操作,最終形成長度為N的字節(jié)片段序列??聪旅娴睦?#xff1a;
我來到達觀數(shù)據(jù)參觀
相應的bigram特征為:我來 來到 到達 達觀 觀數(shù) 數(shù)據(jù) 據(jù)參 參觀
相應的trigram特征為:我來到 來到達 到達觀 達觀數(shù) 觀數(shù)據(jù) 數(shù)據(jù)參 據(jù)參觀
?
注意一點:n-gram中的gram根據(jù)粒度不同,有不同的含義。它可以是字粒度,也可以是詞粒度的。上面所舉的例子屬于字粒度的n-gram,詞粒度的n-gram看下面例子:
?
我 來到 達觀數(shù)據(jù) 參觀
?
相應的bigram特征為:我/來到 來到/達觀數(shù)據(jù) 達觀數(shù)據(jù)/參觀
相應的trigram特征為:我/來到/達觀數(shù)據(jù) 來到/達觀數(shù)據(jù)/參觀?
n-gram產生的特征只是作為文本特征的候選集,你后面可能會采用信息熵、卡方統(tǒng)計、IDF等文本特征選擇方式篩選出比較重要特征。
?
NO.2 ??Word2vec
?
?
你可能要問,這篇文章不是介紹fastText的么,怎么開始介紹起了word2vec?
最主要的原因是word2vec的CBOW模型架構和fastText模型非常相似。于是,你看到facebook開源的fastText工具不僅實現(xiàn)了fastText文本分類工具,還實現(xiàn)了快速詞向量訓練工具。word2vec主要有兩種模型:skip-gram 模型和CBOW模型,這里只介紹CBOW模型,有關skip-gram模型的內容請參考達觀另一篇技術文章:
漫談Word2vec之skip-gram模型
1?模型架構
CBOW模型的基本思路是:用上下文預測目標詞匯。架構圖如下所示:
輸入層由目標詞匯y的上下文單詞 組成, 是被onehot編碼過的V維向量,其中V是詞匯量;隱含層是N維向量h;輸出層是被onehot編碼過的目標詞y。輸入向量通過 維的權重矩陣W連接到隱含層;隱含層通過 維的權重矩陣 ?連接到輸出層。因為詞庫V往往非常大,使用標準的softmax計算相當耗時,于是CBOW的輸出層采用的正是上文提到過的分層Softmax。
2?前向傳播
輸入是如何計算而獲得輸出呢?先假設我們已經獲得了權重矩陣和(具體的推導見第3節(jié)),隱含層h的輸出的計算公式:
即:隱含層的輸出是C個上下文單詞向量的加權平均,權重為W。
接著我們計算輸出層的每個節(jié)點:
這里是矩陣的第j列,最后,將作為softmax函數(shù)的輸入,得到:
3?反向傳播學習權重矩陣
在學習權重矩陣和過程中,我們首先隨機產生初始值,然后feed訓練樣本到我們的模型,并觀測我們期望輸出和真實輸出的誤差。接著,我們計算誤差關于權重矩陣的梯度,并在梯度的方向糾正它們。
首先定義損失函數(shù),objective是最大化給定輸入上下文,target單詞的條件概率。因此,損失函數(shù)為:
這里,表示目標單詞在詞庫V中的索引。
如何更新權重?
我們先對E關于求導:
函數(shù)表示:
于是,的更新公式:
如何更新權重W?
我們首先計算E關于隱含層節(jié)點的導數(shù):
然后,E關于權重的導數(shù)為:
于是,的更新公式:
?
NO.3 ??fastText分類
?
?
終于到我們的fastText出場了。這里有一點需要特別注意,一般情況下,使用fastText進行文本分類的同時也會產生詞的embedding,即embedding是fastText分類的產物。除非你決定使用預訓練的embedding來訓練fastText分類模型,這另當別論。
1?字符級別的n-gram
word2vec把語料庫中的每個單詞當成原子的,它會為每個單詞生成一個向量。這忽略了單詞內部的形態(tài)特征,比如:“apple” 和“apples”,“達觀數(shù)據(jù)”和“達觀”,這兩個例子中,兩個單詞都有較多公共字符,即它們的內部形態(tài)類似,但是在傳統(tǒng)的word2vec中,這種單詞內部形態(tài)信息因為它們被轉換成不同的id丟失了。
?
為了克服這個問題,fastText使用了字符級別的n-grams來表示一個單詞。對于單詞“apple”,假設n的取值為3,則它的trigram有:
“<ap”, ?“app”, ?“ppl”, ?“ple”, “l(fā)e>”
其中,<表示前綴,>表示后綴。于是,我們可以用這些trigram來表示“apple”這個單詞,進一步,我們可以用這5個trigram的向量疊加來表示“apple”的詞向量。
這帶來兩點好處:
1. 對于低頻詞生成的詞向量效果會更好。因為它們的n-gram可以和其它詞共享。
2. 對于訓練詞庫之外的單詞,仍然可以構建它們的詞向量。我們可以疊加它們的字符級n-gram向量。
2?模型架構
之前提到過,fastText模型架構和word2vec的CBOW模型架構非常相似。下面是fastText模型架構圖:
注意:此架構圖沒有展示詞向量的訓練過程??梢钥吹?#xff0c;和CBOW一樣,fastText模型也只有三層:輸入層、隱含層、輸出層(Hierarchical Softmax),輸入都是多個經向量表示的單詞,輸出都是一個特定的target,隱含層都是對多個詞向量的疊加平均。
不同的是,CBOW的輸入是目標單詞的上下文,fastText的輸入是多個單詞及其n-gram特征,這些特征用來表示單個文檔;CBOW的輸入單詞被onehot編碼過,fastText的輸入特征是被embedding過;CBOW的輸出是目標詞匯,fastText的輸出是文檔對應的類標。
值得注意的是,fastText在輸入時,將單詞的字符級別的n-gram向量作為額外的特征;在輸出時,fastText采用了分層Softmax,大大降低了模型訓練時間。這兩個知識點在前文中已經講過,這里不再贅述。
fastText相關公式的推導和CBOW非常類似,這里也不展開了。
3?核心思想
現(xiàn)在拋開那些不是很討人喜歡的公式推導,來想一想fastText文本分類的核心思想是什么?
仔細觀察模型的后半部分,即從隱含層輸出到輸出層輸出,會發(fā)現(xiàn)它就是一個softmax線性多類別分類器,分類器的輸入是一個用來表征當前文檔的向量;模型的前半部分,即從輸入層輸入到隱含層輸出部分,主要在做一件事情:生成用來表征文檔的向量。那么它是如何做的呢?疊加構成這篇文檔的所有詞及n-gram的詞向量,然后取平均。疊加詞向量背后的思想就是傳統(tǒng)的詞袋法,即將文檔看成一個由詞構成的集合。
于是fastText的核心思想就是:將整篇文檔的詞及n-gram向量疊加平均得到文檔向量,然后使用文檔向量做softmax多分類。這中間涉及到兩個技巧:字符級n-gram特征的引入以及分層Softmax分類。
4?關于分類效果
還有個問題,就是為何fastText的分類效果常常不輸于傳統(tǒng)的非線性分類器?
假設我們有兩段文本:
我 來到 達觀數(shù)據(jù)
俺 去了 達而觀信息科技
這兩段文本意思幾乎一模一樣,如果要分類,肯定要分到同一個類中去。但在傳統(tǒng)的分類器中,用來表征這兩段文本的向量可能差距非常大。傳統(tǒng)的文本分類中,你需要計算出每個詞的權重,比如tfidf值, “我”和“俺” 算出的tfidf值相差可能會比較大,其它詞類似,于是,VSM(向量空間模型)中用來表征這兩段文本的文本向量差別可能比較大。
?
但是fastText就不一樣了,它是用單詞的embedding疊加獲得的文檔向量,詞向量的重要特點就是向量的距離可以用來衡量單詞間的語義相似程度,于是,在fastText模型中,這兩段文本的向量應該是非常相似的,于是,它們很大概率會被分到同一個類中。
使用詞embedding而非詞本身作為特征,這是fastText效果好的一個原因;另一個原因就是字符級n-gram特征的引入對分類效果會有一些提升?。
?
NO.4 ?手寫一個fastText
?
?
keras是一個抽象層次很高的神經網絡API,由python編寫,底層可以基于Tensorflow、Theano或者CNTK。它的優(yōu)點在于:用戶友好、模塊性好、易擴展等。所以下面我會用keras簡單搭一個fastText的demo版,生產可用的fastText請移步https://github.com/facebookresearch/fastText。
如果你弄懂了上面所講的它的原理,下面的demo對你來講應該是非常明了的。
為了簡化我們的任務:
1. 訓練詞向量時,我們使用正常的word2vec方法,而真實的fastText還附加了字符級別的n-gram作為特征輸入;
2. 我們的輸出層使用簡單的softmax分類,而真實的fastText使用的是Hierarchical Softmax。
首先定義幾個常量:
VOCAB_SIZE = 2000
EMBEDDING_DIM =100
MAX_WORDS = 500
CLASS_NUM = 5
VOCAB_SIZE表示詞匯表大小,這里簡單設置為2000;
EMBEDDING_DIM表示經過embedding層輸出,每個詞被分布式表示的向量的維度,這里設置為100。比如對于“達觀”這個詞,會被一個長度為100的類似于[ 0.97860014, 5.93589592, 0.22342691, -3.83102846, -0.23053935, …]的實值向量來表示;
MAX_WORDS表示一篇文檔最多使用的詞個數(shù),因為文檔可能長短不一(即詞數(shù)不同),為了能feed到一個固定維度的神經網絡,我們需要設置一個最大詞數(shù),對于詞數(shù)少于這個閾值的文檔,我們需要用“未知詞”去填充。比如可以設置詞匯表中索引為0的詞為“未知詞”,用0去填充少于閾值的部分;
CLASS_NUM表示類別數(shù),多分類問題,這里簡單設置為5。
模型搭建遵循以下步驟:
1.?添加輸入層(embedding層)。Embedding層的輸入是一批文檔,每個文檔由一個詞匯索引序列構成。例如:[10, 30, 80, 1000] 可能表示“我 昨天 來到 達觀數(shù)據(jù)”這個短文本,其中“我”、“昨天”、“來到”、“達觀數(shù)據(jù)”在詞匯表中的索引分別是10、30、80、1000;Embedding層將每個單詞映射成EMBEDDING_DIM維的向量。于是:input_shape=(BATCH_SIZE, MAX_WORDS), output_shape=(BATCH_SIZE,MAX_WORDS, EMBEDDING_DIM);
2.?添加隱含層(投影層)。投影層對一個文檔中所有單詞的向量進行疊加平均。keras提供的GlobalAveragePooling1D類可以幫我們實現(xiàn)這個功能。這層的input_shape是Embedding層的output_shape,這層的output_shape=( BATCH_SIZE, EMBEDDING_DIM);
3.?添加輸出層(softmax層)。真實的fastText這層是Hierarchical Softmax,因為keras原生并沒有支持Hierarchical Softmax,所以這里用Softmax代替。這層指定了CLASS_NUM,對于一篇文檔,輸出層會產生CLASS_NUM個概率值,分別表示此文檔屬于當前類的可能性。這層的output_shape=(BATCH_SIZE, CLASS_NUM)
4.?指定損失函數(shù)、優(yōu)化器類型、評價指標,編譯模型。損失函數(shù)我們設置為categorical_crossentropy,它就是我們上面所說的softmax回歸的損失函數(shù);優(yōu)化器我們設置為SGD,表示隨機梯度下降優(yōu)化器;評價指標選擇accuracy,表示精度。
用訓練數(shù)據(jù)feed模型時,你需要:
1.?將文檔分好詞,構建詞匯表。詞匯表中每個詞用一個整數(shù)(索引)來代替,并預留“未知詞”索引,假設為0;
2.?對類標進行onehot化。假設我們文本數(shù)據(jù)總共有3個類別,對應的類標分別是1、2、3,那么這三個類標對應的onehot向量分別是[1, 0,
0]、[0, 1, 0]、[0, 0, 1];
3.?對一批文本,將每個文本轉化為詞索引序列,每個類標轉化為onehot向量。就像之前的例子,“我 昨天 來到 達觀數(shù)據(jù)”可能被轉化為[10, 30,
80, 1000];它屬于類別1,它的類標就是[1, 0, 0]。由于我們設置了MAX_WORDS=500,這個短文本向量后面就需要補496個0,即[10, 30, 80, 1000, 0, 0, 0, …, 0]。因此,batch_xs的 維度為( BATCH_SIZE,MAX_WORDS),batch_ys的維度為(BATCH_SIZE, CLASS_NUM)。
下面是構建模型的代碼,數(shù)據(jù)處理、feed數(shù)據(jù)到模型的代碼比較繁瑣,這里不展示。
?
NO.5 ?fastText在達觀數(shù)據(jù)的應用
fastText作為誕生不久的詞向量訓練、文本分類工具,在達觀得到了比較深入的應用。主要被用在以下兩個系統(tǒng):
1. 同近義詞挖掘。Facebook開源的fastText工具也實現(xiàn)了詞向量的訓練,達觀基于各種垂直領域的語料,使用其挖掘出一批同近義詞;
2. 文本分類系統(tǒng)。在類標數(shù)、數(shù)據(jù)量都比較大時,達觀會選擇fastText 來做文本分類,以實現(xiàn)快速訓練預測、節(jié)省內存的目的。
?
?
總結
- 上一篇: mysql1044错误代码_mysql出
- 下一篇: C语言编程输出象棋棋盘