research
対象語のインスタンスの文脈に出てきた単語の基本形・品詞・活用を素性にしてd=文脈,w=素性の700x2000くらいの共起行列をつくり、PLSIで100次元くらいに圧縮。model.pzdのP(z|d)の行ベクトルを文脈のベクトル表現とみなして、kmeans(k=10)でクラスタリング。…
ある対象語と同じ段落に共起した単語の頻度を数えて、 word1 1000 word2 2000 ...みたいなハッシュの形で標準出力に出すプログラムをCで書いた。これをrubyから``で呼び出してHashに入れて、 `hoge`.each do |line| key, val = line.split("\t") freq[key] +…
とりあえずc + glib + libsaryを使ってみる。 libsaryで行検索して、g_hash_tableをキーをgchar*、値をgint*で使う方法までわかった。 次はlibsaryでsaryの-sと-eオプションの動作をどうやって実現するか調べる。 参考リンク: http://www.nurs.or.jp/~ogocha…
入力 #段落ID 表記 読み 基本形 品詞 ... EOS #段落ID ...出力 行:対象語t 列:素性語f として、tとfが同じ段落に出現した回数を並べた行列。 f1:100 f2:200 f1:50 f3:300 ...入力ファイルの各行の先頭をindex pointにsuffix arrayを作成しておく。 find . -n…
plsiに投げる単語の共起頻度の行列を作り直したい。今はコーパスを全て走査して、単語のペアとその頻度のハッシュをつくるプログラムと、それを使って行列をつくるプログラムの2段構えになっている。しかし、ペアの数が膨大なのでハッシュが大きくなりすぎて…
対象語を中心とするウインドウ幅10単語の文脈をbag of wordsでベクトルにして、k=10でkmeansをかけたらクラスターの要素数が均等になった。そして、できれば対象語の語義ごとにまとまって欲しいところだが、そうはなってない。ベクトルが散らばりすぎて、ク…
とりあえず、文書-単語-行列をつくってPLSIにかけてるところ。 入力のフォーマットも簡単だし、使いやすそうな印象。 出てきたmodel.pdzの行列をベクトルとみなせばいいのかな。 http://chasen.org/~taku/software/plsi/
興味はあるけど、何をやっているのかわからないのでとりあえずメモメモ。 http://www.hirasa.mgmt.waseda.ac.jp/lab/list/05/2005_39.pdf#07/20追記: クラスタの個数=latent stateの個数とみなしてPLSIを行って、P(z|d)が最大になるようなlatent state(クラ…
数日かけてやっとクラスタリング結果が出たと思ったら、おまけのpurityとentropyの計算方法を間違ってた。 後付で必要な部分だけ別のスクリプトでつくればいいんだけど、毎回そんなことやるのも効率が悪いので、今後は時間のかかる部分だけで1スクリプトに切…
ふとググッたら出てきた論文。 http://nlp.dse.ibaraki.ac.jp/~shinnou/paper/nl-ken-180.pdf クラスタリングによる語義別用例の収集、ただし半教師あり。 これをもっと完全に教師無しにしたいなぁ。でも、bag of wordsじゃただの文書分類。しかしそれでもク…
あるぇー。1000次元のベクトル700個のkmeans(k=10)がいつまでたっても終わらないぞ〜(´・ω・`) どこで時間かかってるのかなぁ・・・。
こういうの実装してみようかな。 http://www.msi.co.jp/vmstudio/materials/tech/stat.html
うーん。今自分の研究をどこまでやったのか最初から説明してくださいと言われて、うまく説明できなかった。まだ、ミーティングなのでよかった。ちゃんと文書化しておかないとだめだな〜。
#クラスタリングと評価を行って、素性の組み合わせ毎に正解率を出す。 これ終わりました。後はミーティング前に結果をざっと見て、考察しよう。
実験データを取るプログラムは全部Perlで書いているのですが、そろそろ条件を色々変えて実験をしないとだめなので、オブジェクト指向に基づいて拡張容易になるように改良中。モジュールの殆どをクラス化して、条件付のループの類はIteratorパターンでまとめ…
ベクトルのクラスタリングの過程を適当にテキストに出力してるんですが、そのまま印刷しても見づらくて見づらくて・・・画面上で見れた方がいいね。出力結果をXMLで出力するところまでPerlで書いて、XMLデータをGUI上で表示して手動で調査する部分はJavaで作ろ…
研究の手始めに、毎日新聞13年分をChasenに掛けたデータから、単語同士のDice係数を求めて、Dice係数を素性として単語ベクトルを作って、対象語の周辺に登場した単語の単語ベクトルを足し合わせて対象語のインスタンスのベクトルをつくる、みたいなことをPer…