2017-04-21 131 views
0

我想創建一個計算2個字符串之間相似度的應用程序。 字符串不長。 3句最長。 我做了一些研究,並且遇到了一些可能的解決方案路徑。話的字符串相似TF-IDF字袋或Word2vec

首先一個使用袋:計算單詞和比較2個製作載體(餘弦相似性)

第二使用TF-IDF,並比較所產生的載體。

第三是使用word2vec和比較向量。

現在的問題。

表現明智的是word2vec表現更好,TF-IDF的短句子?

培訓word2vec模型的最佳方法是什麼?我應該使用大量文本(例如維基百科轉儲),還是僅使用正在比較的句子進行訓練。

如何從word2vec獲取句子相似度。我應該平均每個句子中的單詞還是有更好的解決方案?

+0

幾件事情在這裏。這不是一個編程問題,所以你不應該在這裏問它,它會被標記爲脫離主題。 我不知道性能比較。但關於word2vec,你可以用它作爲你的單詞的嵌入矩陣,然後讓一個循環網絡產生句子的表示。這可能會超出你的問題,但這些模型是用來構建序列的表示,就像你想要做的一樣。但是,您需要一組列車來學習表示。否則,你可以用無監督的方式來訓練這個模型嗎? – ted

+0

我對神經網絡不太好,請你提供一個鏈接,使用word2vec和經常性網絡來生成句子的表示。對於訓練集應該有多少數據。我目前沒有大數據集可供使用。任何想法如何以無人監督的方式做到這一點。謝謝 – LonsomeHell

回答

1
  • 有了良好的火車數據,word2vec必須有更好的表現。 (我從中得到了很好的結果)

  • 您必須擁有大量的好數據。如果您正在使用英語,最好的方法是使用預先訓練的數據。您可以使用this link有很好的模型。據我所知,Google新聞預先訓練好的模型工作得很完美。

  • 在句子的部分文本中使用單詞的平均值是很常見的。更好的方法可以是像tf-idf加權平均的加權平均值。也有語義文本相似性研究的一個熱點,你可以按照它從它的Wiki Page