2017-10-20 97 views
1

我正在學習使用TensorFlow教程的Word2Vec。我爲Word2Vec運行的代碼也來自TensorFlow教程:https://github.com/tensorflow/models/blob/master/tutorials/embedding/word2vec_optimized.py。當我運行15個紀元的代碼時,測試精度爲30%左右。當我跑100個紀元時,測試精度達到了39%左右。我正在使用Text8數據集進行培訓,並使用questions-words.txt進行評估。Word2Vec應該培養多少個時代?什麼是推薦的訓練數據集?

我是否需要跑更多的時代?我應該使用不同的數據集嗎?我怎樣才能提高測試的準確性?

回答

0

較大的數據集更好; text8是非常非常小 - 足以顯示一些類似字詞向量的解決能力,但不足以滿足其他目的。

更多的迭代可能有助於從較小的數據集中擠出略強的向量,但收益遞減。 (在弱數據集上沒有額外的迭代次數可以提取相同的豐富的相互關係,從而可以提供更大,更多樣化的語料庫。)

從相同的來源獲得相關的text9,如果我記得正確的話,大10倍。與使用text8進行10倍以上的迭代相比,使用它可能會獲得更好的評估結果。

我相信谷歌曾發佈的300萬預訓練載體 - GoogleNews集合 - 訓練了1000億字的新聞文章的語料庫,但只有3次通過。

請注意,單詞矢量質量沒有單一的標準:questions-words.txt類比解法只是一個方便的評估,但它可能是最好的單詞矢量在你自己的領域特定分析中不是最好的。類似地,在文本的一個域上訓練的單詞向量(如從新聞文章中設置的GoogleNews)可能會比與您的域更好匹配的文本(例如論壇帖子,科學文章等)不同 - 它們都以不同的方式使用不同的單詞)。

因此,通常最好使用自己的語料庫和自己的目標特定量化評估來幫助調整語料庫/參數選擇。

+0

謝謝!我會嘗試一個更大的數據集。 –

+0

較大的數據集的確提高了測試的準確性。還要感謝關於將數據集和測試與主題材料進行匹配的建議。 –

相關問題