本文算是對上一篇博文大白話講解word2vec到底在做些什麼基於tensorflow的技術實現吧。
版本說明
———-這次我不會忘記要寫版本了分割線~
python:python3.5
tensorflow:tensorflow-0.12.1
numpy+mkl:numpy-1.11.3+mkl
matplotlib:matplotlib-2.0.0
sklearn:scikit_learn-0.18.1
scipy:scipy-0.19.0
注:雖然代碼裏沒有直接使用scipy和mkl,但是是sklearn的依賴,也是要下載安裝好的。
導入的包
數據源
本次實驗用到的數據源是網上下載的哈利波特1-7,經過去符號處理,只留下了單詞序列
代碼
已經上傳到Github上了。
word2vec_harrypotter
結果
嗯哼,做了word2vec有什麼效果呢?
效果在這裏
實驗取了單詞頻數top150成圖,這裏截取了一部分。
可以看到,黃色圈出來的back,out,behind,into,up距離比較近,himself,her,him,them,us聚在一起,還有for,though,than,but,and這些聚在一起。
當然,迭代次數多一些,效果可能會更棒。
說明
代碼參考了Tensorflow實戰 黃文堅 唐源著