word2vecのコードをもう一度読んだメモ

一度挫折した時
http://d.hatena.ne.jp/m_matsunag/20150104

word2vec.c
L76: if (ch == 13) continue; これはなんだろう
L82-83: ただの改行だったら「</s>」を返す
L448: windowが言及されている

☆ 他人の読書メモ
http://qiita.com/y2squared/items/4f62863adf32429da51f
http://blog.csdn.net/lingerlanlan/article/details/38232755

http://blog.unnono.net/2014/01/nips2013word2vec.html (論文)

☆ 新しく知った関数
posix_memalign...メモリを確保する。終わったらちゃんとfreeしよう(syn0はしてない…?)
http://kawa0810.hateblo.jp/entry/20120430/1335775256
a = posix_memalign...としているが、返り値は「成功したら0」くらいなのであんまり意味がない気がする

☆ 内部の構造
hsが有効な時はsyn1、negが有効な時はsyn1negがある

最終的にはsyn0を書き込んでいる

neu1e、隠れ層っぽい

for (c = 0; c < layer1_size; c++) syn1[c + l2] += g * neu1[c];

☆ オプション
推奨:negative sampling, cbowはやるが、hsはやらない

☆ WordIndex

  • 1 …ファイル末尾か未知語