2014-12-19 81 views
6

如何創建單詞矢量?我用一個熱鍵來創建單詞向量,但它非常龐大,並且不會爲類似的語義詞而推廣。所以我聽說過使用神經網絡的單詞向量,它發現了單詞相似性和單詞向量。所以我想知道如何生成這個向量(算法)或好的素材來開始創建單詞向量?如何創建單詞矢量

+0

您可能想從類型x文檔矩陣,tf-idf權重和餘弦相似性開始。去谷歌上查詢。你會對問題有一個很好的認識。 – Pierre 2014-12-20 00:42:50

回答

8

字矢量或所謂的分佈式申述有着悠久的歷史,現在,從S. Bengio的工作或許開始(Bengio,Y.,Ducharme,R.,& Vincent,P.(2001).A neural probabilistic language model.NIPS.),其中他獲得了作爲訓練神經網絡語言模型的副產品的單詞向量。

大量的研究表明,這些載體確實捕獲了單詞之間的語義關係(參見例如http://research.microsoft.com/pubs/206777/338_Paper.pdf)。 Collobert等人的這篇重要論文(http://arxiv.org/abs/1103.0398)也是理解單詞向量及其獲得和使用方式的一個很好的起點。

除了word2vec,還有很多方法來獲得它們。示例包括Collobert等人的SENNA嵌入(http://ronan.collobert.com/senna/),T.Mikolov的可以使用RNNToolkit(http://www.fit.vutbr.cz/~imikolov/rnnlm/)等計算的RNN嵌入。對於英文,現成的嵌入可以從這些網站下載。 word2vec確實使用skip-gram模型(不是神經網絡模型)。另一個計算文字表示的快速代碼是GloVe(http://www-nlp.stanford.edu/projects/glove/)。這是一個懸而未決的問題,無論深層神經網絡對於獲得好的嵌入還是非常重要。

根據您的應用程序,您可能更喜歡使用不同類型的單詞向量,因此嘗試使用幾種常用算法並查看哪些方法對您更好。

3

我認爲你的意思是Word2Vec(https://code.google.com/p/word2vec/)。它基於給定的語料庫訓練文檔的N維單詞向量。因此,在我對word2vec的理解中,神經網絡僅用於聚合文檔向量的維度,並捕獲單詞之間的某些關係。但應該提到的是,這並不是真正的語義相關性,它只是反映了培訓機構的結構關係。

如果你想捕捉語義關聯來看看基於WordNet的措施,例如實行的是這些libaries:

要開始與word2vec你可以使用他們pretrained向量。您應該在https://code.google.com/p/word2vec/找到關於此的所有信息。

當你尋求一個java實現。這是一個很好的起點:http://deeplearning4j.org/word2vec.html

我希望這有助於

最良好的祝願