![]() |
ノート/RNN2017-03-17http://pepper.is.sci.toho-u.ac.jp/pepper/index.php?%A5%CE%A1%BC%A5%C8%2FRNN2017-03-17 |
![]() |
ノート/ノート
訪問者数 831 最終更新 2017-04-19 (水) 10:57:54
値の範囲を考える。w2v出力は-1〜1の要素を持つベクトル。活性化関数に何を使うか、だが、たとえばreluを使うと数値は全体に正の方がいい(出ないと困る)。ということで、w2vの出力を0.5だけゲタを履かせて、すべての数値を0〜1にしてみる。
ちなみに、sigmoidを使うなら-1〜1の設定はありだろう。sigmoidでやってみたのだが、かなり収束が遅い。
とりあえずreluを使った現状。横軸は学習データ数/100、縦軸は、青=loss、緑=出力ベクトル長。
元評価で◎のサンプルについて、距離の評価の分布をみる。同様に〇、△、×についても分布をみる。
ポイントは、コーパス上の評価値(◎、〇、△、×)とベクトル距離との対応・一致を見たいこと。
ベクトル距離順に並べたサンプルを、元の◎、〇、△、×の個数の割合で分割する。
◎×分類 | ◎ | 〇 | △ | × | 合計 |
サンプル数 | 924 | 662 | 262 | 624 | 2472 |
割合 | 37.3% | 26.8% | 10.6% | 25.2% | 100% |
◎×ごとの距離分布 | ◎ | 〇 | △ | × |
0.0〜0.1 | 13 | 16 | 5 | 7 |
0.1〜0.2 | 67 | 51 | 21 | 47 |
0.2〜0.3 | 114 | 82 | 26 | 72 |
0.3〜0.4 | 107 | 76 | 27 | 77 |
0.4〜0.5 | 93 | 88 | 36 | 70 |
0.5〜0.6 | 106 | 82 | 30 | 58 |
0.6〜0.7 | 105 | 63 | 38 | 63 |
0.7〜0.8 | 111 | 89 | 28 | 53 |
0.8〜0.9 | 69 | 45 | 20 | 50 |
0.9〜1.0 | 139 | 70 | 31 | 127 |
サンプルを距離順にソートし、上位から上記の割合で分割した結果に含まれる◎〜×の個数
距離順分類 | 上位924 | 次位662 | 三位262 | 四位624 | 合計 |
サンプル数 | 924 | 662 | 262 | 624 | 2472 |
順位 | 0〜924 | 925〜1586 | 1587〜1848 | 1849〜2472 | |
距離の値 | 1〜0.669 | 0.668〜0.428 | 0.427〜0. 339 | 0.339〜0 | |
◎ | 351 (38.0%) | 248 (37.5%) | 95 (36.3%) | 230 (36.9%) | |
〇 | 226 (24.5%) | 184 (27.8%) | 75 (28.6%) | 177 (28.4%) | |
△ | 95 (10.3%) | 75 (11.3%) | 28 (10.7%) | 64 (10.3%) | |
× | 252 (27.2%) | 155 (23.4%) | 64 (24.4%) | 153 (24.5%) | |
合計 | 924 (100%) | 662 (100%) | 262 (100%) | 624 (100%) |
◎×分類 | ◎ | 〇 | △ | × | 合計 |
サンプル数 | 97 | 82 | 10 | 61 | 250 |
割合 | 38.8% | 32.8% | 4.0% | 24.4% | 100% |
◎×ごとの距離分布 | ◎ | 〇 | △ | × |
0.0〜0.1 | 1 | 4 | 0 | 0 |
0.1〜0.2 | 5 | 4 | 0 | 2 |
0.2〜0.3 | 10 | 5 | 1 | 7 |
0.3〜0.4 | 10 | 10 | 0 | 6 |
0.4〜0.5 | 8 | 10 | 2 | 8 |
0.5〜0.6 | 8 | 11 | 1 | 5 |
0.6〜0.7 | 11 | 4 | 1 | 7 |
0.7〜0.8 | 10 | 14 | 2 | 5 |
0.8〜0.9 | 14 | 4 | 0 | 4 |
0.9〜1.0 | 20 | 16 | 3 | 17 |
コメント
#!/usr/bin/env python from nltk.corpus import treebank #print(treebank.fileids()) #どんなデータがあるか? wsj_xxxx.mrgとかがあることが分かる count = 0 for u in treebank.words('wsj_0003.mrg'): print(u, end=' ') if u=='.': print('\n') if count>5: break count =+ 1 print()でどんな単語がPennTreeコーパス(WallStreetJournal)にあるか見ておいた。出力は
A form of asbestos once used * * to make Kent cigarette filters has caused a high percentage of cancer deaths among a group of workers exposed * to it more than 30 years ago , researchers reported 0 *T*-1 . The asbestos fiber , crocidolite , is unusually resilient once it enters the lungs , with even brief exposures to it causing symptoms that *T*-1 show up decades later , researchers said 0 *T*-2 .みたいな感じ。ところどころで*だのが入っているのがちょっと気になるけれど。
それで、-pには単語を入れればいいらしいので、
python gentxt.py -m result/model_iter_1328 -p "there"
みたいなことで、生成テストができた。