09/03/08 15:11:53
ほとんど空白ばかりの文書、JPGの中身をコピペした文書は重要でありません。
エントロピーが適度で、人間が先を予測出来る文書が重要らしいと思うのですが厳密にはわかりません。
そこでまず人間に重要らしいと思わせられる文書を自動生成されてみようと思いました。
>>37
トン。 サイモン・シン読んでみます。
もともとの目標が全文検索エンジンを作る事なので、知識0のままで高速にindexを作りたいんです。
40:デフォルトの名無しさん
09/03/08 18:48:42
言語と絵の境界は曖昧だよ。
41:デフォルトの名無しさん
09/03/08 23:16:30
>>39 ああ、そうするとデータ圧縮系の話が興味あると思う。
どのように符号化すれば圧縮限界に近づくかとかそういうことだよね。
でも自然言語はあえて冗長な部分があったり
(70% 削っても人間は元の文が復元できるとかいう実験結果があった。
数字はいいかげん)、一次元の尺度ではうまくいかないんじゃないかなぁと思う。
機能語は単純な頻度とか圧縮率で抽出できると思うけど、
内容語は頻度もそんなにないし曖昧性もあるし。
機能語だけに着目して言語判定できるかというとそういうものでもないし。
前文字コード判別でバイト列の N グラムを作って判別したことあるよ。
この場合単語分割する必要すらないんで……。
知識ゼロで作るのは研究としては意味あるけどねー
精度的にはまだまだなんで、かなりブラッシュアップが必要だと思うよ
42:デフォルトの名無しさん
09/03/16 14:43:57
スレ違い
43:デフォルトの名無しさん
09/03/23 19:33:21
は?
44:デフォルトの名無しさん
09/03/23 22:58:51
>>43
しね
45:デフォルトの名無しさん
09/06/19 04:51:03
つながりの確率を求めて単語分割したいんだけど2バイト同士のつながりの統計を取ろうとすれば、
4バイト(int) * 2の32乗 の記憶域が必要になる。(出てこない文字を削れば減るが)
単語は、2語より長くなるから、もっと記憶域を使うことになる。
たとえば、「プログラ」のあと、「ム」「ミング」が来やすいという統計を取ろうとすれば
相当の記憶域が必要。 どうすればいいんでしょうか?
x,y,z,v,wを16bit数とし、「プログラム」の個数を数えるには sum[x][y][z][v][w]という配列にアクセスするようなものと思うのですが。
46:デフォルトの名無しさん
09/06/19 04:55:45
全角で8語くらいまでの統計が求められれば、たくさん自動学習させることで、
どんな既存の辞書も使う事無しに精度はかなり良いと思います。
PPM圧縮を調べたのですが、長い単語の対処方法がわかりません。
47:デフォルトの名無しさん
09/06/19 13:52:06
頻出する (2語、4バイトの) 単語が求め、それに2バイトを割り当てて
再び、4バイトの単語の統計をとれば、長い単語が求められそうです。
48:デフォルトの名無しさん
09/09/12 07:03:04
特徴語、重要語の求め方教えて。
辞書による単語分割は使わず。
中国語、漢語でも可能な方法。
49:48
09/09/12 08:07:55
何度もデータを読みに行くのは辞めたい。 一度のロードで済ましたい。時間食うので。
例えば、一度目の読み込みで単語辞書を決定し、2度目で単語の回数を測定するとか。
5Gのデータ群だと、2回読めば10Gになり時間食う。
読み込みは、一度だけでいい方法ありますか。
50:デフォルトの名無しさん
09/09/12 11:41:37
>>49
64bitOSで32GBくらいRAMを積めばOK。
51:48
09/09/12 17:38:28
再読み込み、巨大メモリを使って
試行錯誤せず (計算多くせず) 済む方法が知りたいです。
辞書無しの方法がいいです。
52:デフォルトの名無しさん
09/09/12 20:43:09
5Gを全て使わずとも適当にさっぴいてやればいい
53:48
09/09/12 20:54:34
具体的には、500Mを利用して単語辞書を作成するとかですか?
5Gは複数ファイルの合計値です。
各ファイル毎に特徴語を求めたいです。
辞書に漏れた単語のランク付けがうまくいかないと思うのですが?
54:デフォルトの名無しさん
09/09/12 20:58:45
単語辞書だと、「単語」「辞書」に分かれますが、「語辞」と間違えて抜き出したら
「単語」や「辞書」が一つも出現せず、「語辞」が多く出る文書の特徴語と同じになってしまいます。
これをどのように回避するのかが重要と思うのですが?
55:デフォルトの名無しさん
09/09/12 21:35:43
クラスタリングで、文書のドメイン特定してから
そのドメインにおいて、単語辞書 を 単語 辞書 とすべきか 単 語辞 書 にすべきかを
HMMなり使って最大になる分割を決めればいい。
と、素人ながらに思ったが。
特徴語が同じになるって話だから、そもそもクラスタリングがうまく行かない可能性が高いかw
56:デフォルトの名無しさん
09/09/12 21:47:51
短時間、辞書無し、何言語でも、特徴語を抜き出したいです。
HMMは、確率的に最も有り得る単語分割を決定するって事でしょうか。
これを行ってからだと相当時間食いそうなのが難点です。
57:デフォルトの名無しさん
09/09/12 23:06:47
それは無理。
辞書ありの形態素解析器ですら、使ってるんですから。
確率使わずに、最適な分割例を決めるとか、無理でしょw
58:デフォルトの名無しさん
09/09/12 23:11:23
確率は使うのは良いんですが、膨大な時間を使うのを回避したいです。
59:デフォルトの名無しさん
09/09/12 23:15:43
特徴語を決定するのに、全ての単語の単語分割が必要なのかどうかも疑問です。
60:デフォルトの名無しさん
09/09/13 03:53:43
まずビタピ(ビーム)サーチやってみます。 ABCDはそれぞれ1語(16bit)としたとき
分割方法は8とおりありますが、Aが1000回出現してABは5回出現ならABが繋がる確率は1/200でしょうか?
一方でBが10回しか出現しないとすれば1/2になりますが、これは少ない方(確率の高い方)を採用すれば性格でしょうか?
ABCD
ABC-D
AB-CD
AB-C-D
A-BCD
A-BC-D
A-B-CD
A-B-C-D
61:60
09/09/13 06:16:05
2語の統計とっても、ABCDなど3語以上の出現確率が不明だ。
3語、4語、5語と統計取るのはメモリ容量から実現難しい。
2語(16bit)でやる人は多いと思いますが、3語以上の確率はどう求めますか?
62:デフォルトの名無しさん
09/09/13 11:39:25
>45辺りから全力で間違った方向に進んでいるような気がする。
疎行列とか連想配列とか使えよ。
63:デフォルトの名無しさん
09/09/13 14:36:47
便乗の質問です
>>60
A 1000回
AB 5回
B 10回
こんな場合だとAとABとBを単語として認識することになるんでしょうか。
もしABがあった場合、これはどの単語が出現したとカウントするんでしょう。
AとABとB、三つともカウントですか?
64:60
09/09/13 15:07:26
>>63
カウントは、出現したやつは全部カウントしないと統計取る意味ないじゃないですか。
よく繋がる語を、単語と見なすんです。
同じ語の繋がりでも文意によっては変わるんです。日本語変換と同じです。
65:デフォルトの名無しさん
09/09/13 16:18:06
なるほど。
語Aと語Bの複合語ABがあった時にもA, B, ABを全部カウントですね。
辞書ありの形態素解析なんかでは最長一致の事が多いから、ABだけですよね。
66:デフォルトの名無しさん
09/09/18 08:41:15
必要と思うので、グーグルのメモリ管理、mapとicuの導入方法をここに記す。
いまから調べる。 windows XP 32bit visual c++ 2008を元にする。
67:デフォルトの名無しさん
09/09/26 23:32:43
文章のクラスタリングをするために適当な固定次元の特徴ベクトルで表現できないかと思っています
どんなベクトル表現が適切でしょうか
68:デフォルトの名無しさん
09/09/26 23:55:25
日本語処理はrubyが充実しててpython使ってる人があまりいない気がする
69:デフォルトの名無しさん
09/09/26 23:56:36
それは完全に気のせいです
70:デフォルトの名無しさん
09/09/27 09:25:54
I18Nのハンドリングは自然言語処理と基本的に関係ありませんから。
71:デフォルトの名無しさん
09/09/27 12:21:03
>>67
2文字か3文字(32-48bit)ごとの統計を取って、2の32乗のベクトルと見なす。
そのベクトルのうち直交しているものをいくつか選び出す。
たとうば、20個選べば、20次元の座標に、それぞれの文書を特徴づけられる。
72:デフォルトの名無しさん
09/09/28 01:07:42
自然語処理って強化学習と相性よさそうなのに
あんまり話を聞かないのは,ダメだってことかな
73:71
09/09/28 08:03:50
>>67
一緒に作るか?前から文書分類しようと考えていた
74:デフォルトの名無しさん
09/09/28 08:29:39
ベイジアンスパムフィルタは、判定結果(あるいはその判定を人間がさらに判定した結果)に
もとづいて学習させてるじゃない?
75:デフォルトの名無しさん
09/09/28 08:56:48
>>71
意味通じない
76:71
09/09/28 14:14:58
>>75
ABCDEFG・・・は2バイト文字とする。
ABC、BCD、CDE・・はそれぞれ一回ずつ出現する。出現した物をカウントする。
すると、2の48乗次元ベクトル空間が得られる。
似ている文書では、同じ箇所がカウントされやすくそのベクトルの類似がはかれる。
これでは、計算量の点から、クラスタリングが困難なので
直行している基底をいくつか選んで射影をとってクラスタする。
すると、20次元くらいなどにおさえられる。
77:デフォルトの名無しさん
09/09/28 17:50:03
文字コードが一文字nビットm文字単位だとだと(mn)^2次元ですか。
どうしてそう無駄なパラメータ入れるかな。
78:デフォルトの名無しさん
09/10/09 10:16:43
高速クラスタリング考えた。偶然良いクラスタに入る法、良いクラスタを選択する法の2つ。
※クラスタの中心を求めるコストは無視できるとする。
前者。
データを100個、1000個など一定数になるように等分する。N等分されたとする。
クラスタnの中心を求めてそれと離れている (関係が薄い) ものをクラスタn+1へ移す。
n=Nのときだけ、クラスタ0へ移すか、新規クラスタへ移すかを選択する。
次クラスタへ移す条件=悶値を徐々に上げていくことで分割が完了する。
後者。
始めにクラスタの中心を関係が薄いもの (直行しているベクトル) 同士で選び出す。
0 < a < b < 1を適当に設定して、クラスタの中心との内積値がbを超えたら、そのクラスタに属すものとする。
すべてのクラスタの中心との内積値が、a未満ならどこにも属さない新規クラスタとする。
こっちは一度の走査で分割が完了する。
79:78
09/10/09 10:23:47
後者は、内積値が最大になるクラスタへ移すのが最善だけど、
時間食うので、bを超えたらそこにしてしまいます。
より良いクラスタがある可能性はあります。
後者で荒く分割 (a,bは0に近い) してから前者を用いるのもいいかもしれません。
80:デフォルトの名無しさん
09/10/09 10:48:26
>>78
どこが高速なの?
81:78
09/10/09 11:01:06
前者をK-means法と比較すると、
クラスタに合わないもの(悶値以下のもの)は、そのまま次のクラスタへ入れてしまう所。
たまたまそこが良かったらそのままにする。
K-means法は合うところを試行錯誤して選ぶ。
後者は、一度の走査で入る場所を確定できる。
82:デフォルトの名無しさん
09/10/09 11:47:09
>>81
前者は収束が鬼のように遅くなるだけの気がするけど?
83:デフォルトの名無しさん
09/10/09 12:19:02
文書分類するやついま作ってる。それを動かしてもらうとわかりやすいはず。
84:デフォルトの名無しさん
09/10/09 17:03:33
>>78>>81
悶値って何?
閾値じゃなくて?
85:デフォルトの名無しさん
09/10/09 17:40:07
まちがえて似た字を当てはめたかも?
86:デフォルトの名無しさん
09/10/09 17:42:28
スマン
いきち = 閾値 は、字だけみた事あって読みを知らなかった。
87:デフォルトの名無しさん
09/10/09 17:45:25
閾値の読み方
閾値の本来の読み方は「いきち」で、「しきいち」は慣用読み。「閾」の字は日本人になじみが薄く、第二次大戦後、当用漢字外とされたため、字義である「敷居(しきい)」の語を当てたものと思われる。「閾」の訓読みは「しきみ」。
しきい値 - Wikipedia
88:デフォルトの名無しさん
09/10/20 10:36:29
日本語の判定テストレポート
対象ソフト。
universalchardet-1.0.3 URLリンク(code.google.com)
icu4c-4_2_1 URLリンク(site.icu-project.org)
nkf-2.0.9 URLリンク(sourceforge.jp)
libguess-0.2.0-d7 URLリンク(www.honeyplanet.jp)
対象サンプル。
一部文字化けを含むネット上ニュースまたはwindowsXPのバイナリファイル。
個数 バイナリ 2300、 UTF8 5200、 SJIS 4100、 JIS 3800、 EUC-JP 2000
速度。
libguessがもっとも速くこれを1としたときの比較。 ICU 185、 nkf 30、 universalchardet 10
正解率。
libguess 0.99971(5個)、 ICU 0.9996(6個)、 nkf 0.998567(25個)、 universalchardet 0.969221(537個)
まとめ。
libguess( 関数 guess_jp)とnkfは日本語限定の判定。
ICUとuniversalchardetは判定可能な全ての言語での判定。
ICUは一致率60未満でバリナリと判定しこのとき4つのバイナリが西ヨーロッパ言語、2つのEUCが中国語となった。中国語と判定されたケースはもともと漢字が多く言語判定ではICUがもっとも正確といえる。
nkfの25個はSJISをバイナリと誤認した。universalchardetは、バイナリを言語、言語をバイナリなど間違えるケースが多発した。
日本語限定であればlibguess。 世界各国語が対象なら判定速度は遅いがICUがいい。
89:デフォルトの名無しさん
09/10/20 10:43:02
↑
正解率の括弧は、間違えた個数です。
90:デフォルトの名無しさん
09/10/24 18:54:24
>>83
おい、はやく報告しろ。
91:デフォルトの名無しさん
09/11/02 19:16:16
アイデアのみで実装してないけど、自然言語処理にウェーブレット
使ったらどうだろう?
92:デフォルトの名無しさん
09/11/05 09:17:25
>>90
クラスタリングは諦めた。
それほど関連のある文書は多くない。
正しい分類が出来たところでほとんどは関連がない。
対象はたとえば世界中の文書。
ある一つの文書を指定したとき、関連する文書をサーチするのでいいや。
これは少ししたら上げる
93:デフォルトの名無しさん
09/11/10 09:32:42
やっと悪金解除された・・・
>>92
それはデータが少ないからじゃないのか?
どの位のデータなんだ?
94:デフォルトの名無しさん
09/11/11 05:16:35
100万件を10個程度ずつ10万個に分類したところで意味があるか。
人間にとって価値がないと思う。
いかに速く分類できたという数値測定は意味あるだろうが・
95:デフォルトの名無しさん
09/11/11 05:22:36
100万件の分類には相当時間かかるから、人間がデータを与えたら
それと似た文書を高速で検索できれば十分という考えになった。
100万などやったら、数時間~一日とかかかるだろ。ずれなく分類使用した場合。
96:デフォルトの名無しさん
09/11/16 16:17:41
>>90
重要そうな文書を指定個数だけ勝手に判断して、
それと類似する文書を抜き出すのは出来た。
クラスタリングは全てを分類しなければならず大変だが
これなら短時間で可能。
97:デフォルトの名無しさん
09/11/17 07:48:06
ふう、悪金解除されたと思ったらまたされて、ようやく解除された・・・
お、ちゃんと進めてるみたいじゃん。
それってk-NN検索だね。
でもそれを効率良く(高速に)行なおうとすると索引が必要になって、
索引作りって半ばクラスタリングしてるようなもんになってない?
ところで100万文書というとかなりのもんだけど、やっぱウェブ?
98:デフォルトの名無しさん
09/11/17 08:38:35
昨日まちがえて Tully's cafe でキャラメルマキアート頼んでしまったが
店員さんは適当にキャラメルトッピングのホットコーヒーを作ってくれた
99:デフォルトの名無しさん
09/11/23 09:51:13
特徴ベクトルを抜き出す部分までは言語処理だけど
クラスタリングは別分野になるな。
画像でも、ベクトルさえ抽出できていたら
分類するのは言語でも共通するから。
100:デフォルトの名無しさん
09/11/23 11:04:56
ファイル群の特徴ベクトル抽出に一時間掛かったとしても
ほぼ無視出来るほどの時間だろう。
これに比べて分類は数倍-数十倍掛かるだろうから。
あと、クラスタリングより類似画像抽出のほうが困難と思った。
大きな分類だけではなく、ひとつひとつの対応まで必要だから。
これを高速で行えれば言語でも使える。
101:デフォルトの名無しさん
09/11/23 11:10:51
基底となるベクトルを3つ、4つなど数個を設定して
それとの類似度を計算して3次元、4次元座標に移し替えれば
クラスタリングしやすいと思った。
これを計算量は3n、 4nで分類に比べた無視出来る程度。
これで距離が近い物は元々似ている可能性があり
離れていれば、元々似ていないことが決定する。
102:デフォルトの名無しさん
09/11/27 00:39:26
わかち書きってどのようなアルゴリズムでやるんですか。
辞書は与えられたとして最長一致にしたいのですが。
103:102
09/11/27 05:21:43
簡単かと思っていたら、LZH ZIPなど圧縮法と関係あるみたいですね。
圧縮は辞書から最長一列を求めることなので。
104:デフォルトの名無しさん
09/11/27 05:42:45
ChaSenのソース読めばわかるよ。
色んなやり方があるけど、
基本的には当然、辞書の中の単語で文を切っていく
切っていくときに、単語の出現頻度を加味しながら、評価関数をmax(min)する組み合わせを探すだけ。
ChaSenなんかは、単語の頻度だけじゃなくて、品詞も見てて、
ある品詞が来たときに次の品詞は何になるかって情報を使ってるのね。(条件付き確率ってやつ)
(もしかすると、品詞情報を使って解くと言うより、品詞を当てるために使ってるのかもしれんが・・・)
で、ここまで書いてて俺がわかんなくなったんだけどw
あれってHMMをモデルに使ってるらしいけど、一体何を隠れ状態にしてるの?
品詞?単語?
あと、HMMつっても、解くときってどうやってるの?
確かMeCabがViterbiを使って高速に解くように改良したってどっかで書いてたけど
逆に、ChaSenの時は、HMMを何で解いてたの?まさか全探索してないよね?w
105:デフォルトの名無しさん
09/11/27 05:48:33
それは最もあり得る探索では
最長一致を高速に求めたいのですが
106:デフォルトの名無しさん
09/11/27 05:54:37
最長一致を高速に求めるなら、全文検索のお話じゃだめなの?
多分、SuffixTree(or Array)なりを作るような感じになると思うけど・・・
多分そっちだと、どうやって高速に作って、枝刈りしてリソース押さえるかって問題になるけど・・
でも、ちょい研究としては古いかな・・・。
107:デフォルトの名無しさん
09/11/27 06:01:01
ここいくとそれほど古い話でもないようだけど。
研究は知らないけど、コピーと同等の速度で分かち書きを出力できればいいけど。
DO++: LZ法再び
DO++: 最長一致文字列の話
URLリンク(hillbig.cocolog-nifty.com)
URLリンク(hillbig.cocolog-nifty.com)
108:デフォルトの名無しさん
09/11/27 06:09:19
ほほー、これは知らなかった。
BWT法とかよりいけそうなのか・・・。
うちはSuffixArrayで色々やってきたんだけど、
Treeに比べればメモリ的には優しいけど、それでも大変なんだよな・・・
なんせ一切端折らずに全ての位置情報を付加すれば、
文字数分のintなりlongの位置情報が必要になっちまうから・・・
109:デフォルトの名無しさん
09/11/27 06:10:01
全文検索に使いたいんですけど、結局の所、
分かち書きしなくても、辞書に登録と検索は可能なんですよね。
N-gramでやれば。
分割して無駄省けば、辞書サイズと検索精度は上がりますが。
検索目的で考えれば、品詞分解にやってる人は無駄だと思います。
それ以外で、MeCabやChaSen使うのはかなり少数な気がします
110:デフォルトの名無しさん
09/11/27 06:24:07
SuffixArrayやBWT法は一時期きょうみ持ったけど、
大きな欠点として新規データの追加が行えないので離れた。
構築時間も掛かるし。zipなど定番と同程度、同圧縮になれば
全文検索出来る分のメリットはあるけど。
これ実現したら、世界標準の圧縮になり得るけど。
111:デフォルトの名無しさん
09/11/27 06:34:58
Suffix Array、BWTは、O(n)で実現できるようですけど、
10nでも100nでも、O(n)ですからね。
圧縮と書き込み完了までの合計がコピーの5倍以内だったらいいけど。
112:デフォルトの名無しさん
09/11/28 18:04:51
┏┓┏┓ ┏━━━┓ ┏┓ ┏━━┓┏━┓
┃┃┃┃ ┗━━━┓┃ ┃┃ ┗━┓┏┛┃┏┓┃
┏━┛┗┛┗━━┓ ┏━━━┛┗┓┃┃ ┏━┛┗┓┃┗┛┃
┃┏┓┏┓┏━┓┃ ┗━━━┓┃┃┃ ┗━┓┏┛┗━┛
┃┃┃┃┃┃ ┃┃ ┏━━┓ ┃┃┃┃ ┏━┛┗┓
┃┃┃┃┃┃┏━┛┗┓┃┏━┓┃ ┃┃┃┃ ┃┏━┓┏┛
┃┃┃┃┃┃┃┏┓┏┛┃┃ ┃┃ ┃┃┃┃ ┃┃ ┃┃
┃┗┛┗┛┃┃┗┛┃ ┃┗━┛┗━┛┃┃┗┓┃┗━┛┃
┗━━┛┗━┛ ┗━━━━┛┗━┛┗━━┛
113:デフォルトの名無しさん
09/11/29 11:47:52
>>2 にある 依存構造解析 というのは、 構文解析 (下記) とは意味が異なるの?
URLリンク(ja.wikipedia.org)
114:デフォルトの名無しさん
09/11/29 11:58:52
形態素解析も依存構造解析も構文解析の一種
115:デフォルトの名無しさん
09/11/29 12:00:19
ここって随分低レベルになったり、
逆に、自然言語処理の研究者(M、Dr含む)が書き込んでるっぽいなぁってレスがあったりで
波がすごいなw
116:デフォルトの名無しさん
09/11/29 12:30:15
>>114
ありがとう。同じグループとして繋がりました。
>>115
すみません。まったくの素人です。
たまたま検索エンジンでこちらががヒットして、気になったことを質問しました。
大量にある文書から個人情報の箇所を自動的に隠蔽したく (例: 鈴木様 <<人名>>様)、
そういう技術を探していました。 市販の商品もあるようですが、手元のマシンで動かして確かめ
たり、理解を進めたいと思っています。
もし形態素解析で「人名」が特定できるなら、その部分を除去して元に戻すことで望む動作に
ならないかと期待しています。
実データを用いてどこまでできるか、何はできないか知りたいと思っています。
117:デフォルトの名無しさん
09/12/02 02:30:42
>>101
よくあるのは特異値分解していくつかの特異ベクトルを基底に選んで低次元に投射するってのだね。
そういうオーソドックスな事はやってみた?
118:デフォルトの名無しさん
09/12/15 18:35:53
(つд⊂)エーン
119:デフォルトの名無しさん
09/12/15 20:39:43
dosita
120:デフォルトの名無しさん
09/12/15 21:54:04
俺も今泣きたい。
121:デフォルトの名無しさん
09/12/19 08:21:24
nasite?
122:デフォルトの名無しさん
10/01/03 17:02:06
なにが
123:デフォルトの名無しさん
10/01/15 09:43:12
部外者です。
つまらない質問なんですけど、例えば「住んでいて」という言葉を「住んでて」と略したりしますよね?
これは文法的には間違っているけど、通じますよね?
こういった言葉の翻訳の場合、どのような処理をするもんなんでしょうか?
普通に考えると、辞書的な処理とか、略す規則を求めるとかなんでしょうけど、
もっと別の方法ってあるんですかね?
124:デフォルトの名無しさん
10/01/15 13:22:00
い抜き言葉とか、ら抜き言葉とか
一応決まった規則があるから、それで処理するだけかと
もっと本気で分析するなら、音素関係を見て
どういう音素の繋がりがあった時に、どの音を抜くかとか
そういうのもあるとは思うけど
125:デフォルトの名無しさん
10/01/15 13:57:41
>>123
間違ってないよ。
君の知らない文法があるってだけ。
126:デフォルトの名無しさん
10/01/15 23:55:33
>>123
音素コーパスから統計処理。
127:デフォルトの名無しさん
10/01/23 13:22:01
>>117
特異値分解が、クラスタリングで重要なことがわかったけど
これを実行することが難しい。
128:デフォルトの名無しさん
10/01/23 14:23:24
でかい疎行列の特異値を計算するライブラリないですか?
129:デフォルトの名無しさん
10/01/23 14:33:59
特異値分解が、全ての相関度を計算するコストより
かかったら意味ないな。
経験的に、多くのベクトルと関連があって直行に近い数個のベクトル
を選んでおく方が良いか。
130:デフォルトの名無しさん
10/01/23 14:38:18
特異値分解できれば、相関度に影響の少ない次元を
数値的に削れるけど、時間がかかりすぎる気がしてきたから
これはやめるか。
131:デフォルトの名無しさん
10/01/23 15:12:54
っていうか、どうやってお前ら特徴ベクトル作ってんの?
片方の軸は単語として、もう片方は各文?
中身は頻度かtf・idfだと思うけど・・・
132:129
10/01/23 15:53:03
直交基底を始めに適当に作って
その基底でいくつかのサンプルをプロットしたときに
良く分布するものを選ぶことにした。
これなら次元を落とす作業の準備はほぼ一瞬ですむ。
133:デフォルトの名無しさん
10/01/24 09:15:25
卒論か何かかなぁ。
学部生が一人でやってるなら仕方ないけど、サーベイしなさ過ぎだぞ。
大規模疎行列の特異値分解についてはsvdpackcを探せ。
この中のlanczos法プログラム(las2.c)を使え。
具体的な使い方については茨大の新納先生の↓が参考になる。
URLリンク(nlp.dse.ibaraki.ac.jp)
他にも色々言いたいことはあるが面倒だからやめとくw
134:デフォルトの名無しさん
10/01/24 09:16:52
おっとすまん、そこの「SVDPACKCとその語義判別問題への利用」という論文だ。
135:デフォルトの名無しさん
10/01/24 09:48:06
サンクス
136:デフォルトの名無しさん
10/01/24 16:47:18
SVDPACKCの使い方みたのですが大規模疎行列は無理みたいでした。
1-3万 * 2000くらいが限度だと厳しいです。
シュミットの直交化を使って、正規直交基底を沢山作っておき、そこへサンプルをプロットして
分散(標準偏差)の良い上位k個を選んで、k次元に落とすことにしました。
137:デフォルトの名無しさん
10/01/24 17:18:02
研究屋が言う「大規模」と、実務屋が必要とする「大規模」は
字面は同じでも意味が全然違うというわな
138:デフォルトの名無しさん
10/01/24 17:49:44
まったく、ほんとに出来の悪い学生だな。
ちったぁ自分で工夫しろ。
仮にsvdpackcをそのまま使うにしても、25000x2000でダメだったのは512Mのメモリの場合と書いてあるだろ。
今時数十GB位のメモリ使えるだろ。
>>137
計算機の世界では数字さえ出てくれば意味は同じですよ。
賢い実務屋さんなら人をクサすような事ばかりじゃなくて、こういう時にはみんなどうしているのか教えてやってよ。
139:デフォルトの名無しさん
10/01/24 18:02:20
とりあえず64bit環境用意しないと、話が進まないけどな
>>138
単一のハードウェアに数十GB単位のメモリが仮に載せられたとして
それをそのまま利用できると思ってるのは所詮解説論文しか書けない実装出来無い奴の頭だ
どこかの頭の悪い文系SEと同じ
ちなみに、大規模計算機の数十GBは、分散型だから、単一ではせいぜい数GB程度のメモリ
これを分散型にする場合、SVDをそういうアルゴリズムに落とさないといけないと言う問題が待っててだなry
140:デフォルトの名無しさん
10/01/24 18:34:18
おっとそれは俺が4年前に通った道だ
141:136
10/01/24 18:40:46
個人のPCで他アプリを同時に動かす環境で使いたいのですが。メモリは多くて200Mが限度と思います。
142:デフォルトの名無しさん
10/01/24 18:57:21
>>141
誰かが答えを呉れるのを待ってるのかもしれないけど、自分で調べた事柄と
自分の考えたをそれぞれ説明して、疑問点を明確にしないと
もう誰も答えないと思うよ。
143:デフォルトの名無しさん
10/01/24 19:13:06
メモリが200しかないんだろ?
200しかない所に300はつっこめないだろ?
じゃあどうするの?
魔法使いじゃないんだから、メモリにツッコむには
・データを何らかの前処理で圧縮する
・メモリ以外を活用する
・サンプリング
の3つしか無いと思うんだが
144:デフォルトの名無しさん
10/01/25 04:20:38
メモリを買ってくる
145:デフォルトの名無しさん
10/01/25 09:16:05
仮想記憶?
146:129
10/01/25 19:35:04
疎な10万次元ベクトルを、100次元以下に縮めたら、
0ベクトルになる率が多くて使えなかった。
何の変換もしない元のデータのままて゜頻度の少ない単語を無視して
次元圧縮するのが確実に有効っぽい。
147:デフォルトの名無しさん
10/01/25 23:01:01
目的が何か知らないけど(潜在的な意味繋がりを使いたいとかならともかく)
次元圧縮そのものが目的なら、頻度で切って
そこから更に次元圧縮するのって、何か無駄に見えるが・・・
頻度で切るなら圧縮意味なくね?
148:129
10/01/26 10:33:44
100万 - 1000万件ほどの文書のクラスタリングをしたいのですが。
計算量を減らすために次元を減らしたいのですが。
149:デフォルトの名無しさん
10/01/28 07:50:51
この分野を勉強してみたいと思うのですが、入門書とかおすすめのサイトを教えていただけませんか?
150:デフォルトの名無しさん
10/01/28 09:17:25
とりあえず、ずばり「自然言語処理」がタイトルに入ってる本が何冊かある。
151:デフォルトの名無しさん
10/01/28 17:28:04
自然言語処理って、ぶっちゃけ何でも屋だからなぁ・・・
漠然と自然言語処理を勉強するっていったって・・・
ちなみに、今世間で騒がれてる
検索エンジン、日本語入力、機械翻訳、なんて言うメジャーな自然言語処理の応用例と言われてるツールは
どっちかと言うと、この分野じゃ本流じゃないからな。
152:デフォルトの名無しさん
10/01/28 17:31:39
> 日本語入力、機械翻訳
これが専門の人から教わったので、俺にとっては自然言語処理というとこれなんだがw
153:デフォルトの名無しさん
10/01/28 17:39:59
最近はGoogleや集合知ブームのせいか知らないけど
統計的な言語処理が流行ってるなぁ・・・
統語的な話しとか、生成文法とかの話はどこへやら・・
154:デフォルトの名無しさん
10/01/28 17:56:47
「計量」言語学なんて用語もあるように、統計的な手法も歴史はあるんだけどね。
155:デフォルトの名無しさん
10/01/29 18:41:06
K-meams法の最適解(最適な中心)は固有値(ベクトル)計算で決まるみたいだね。
ここに書いてあった。普通のK-meamsで試行錯誤するより固有値計算した方が
かかる時間は半分になるそうだ。
スペクトラルクラスタリング
URLリンク(d.hatena.ne.jp)
スペクトラルクラスタリングは次元圧縮しながらKmeansする手法
URLリンク(d.hatena.ne.jp)
156:デフォルトの名無しさん
10/01/29 18:46:06
こんな線形代数の初歩しかやってない事が2001-2003年頃まで知られて無かったらしい。当たり前すぎて誰も論文かかなかっただけかも。
157:デフォルトの名無しさん
10/01/29 19:02:22
日本語で書いてあるより詳しい資料見つけてきた。
固有ベクトル求めてK-meamsやるソフトウェアは無いと思うんで作りたんだけど実力がない。
だれか。
スペクトラルクラスタリング
URLリンク(nlp.dse.ibaraki.ac.jp)
部分時系列クラスタリングの 理論的基礎
URLリンク(www.research.ibm.com)
縮約類似度行列を用いたスペクトラル手法による クラスタリング結果の改善
URLリンク(nlp.dse.ibaraki.ac.jp)
158:デフォルトの名無しさん
10/01/29 21:39:33
逆に言うとK-meansが正確に高速にとけると
固有値、ベクトル計算できるってことだな。特殊なやつだけだけど。
いまかんがえたやつだけど、1万個なら100クラスタ*100個に分けて
クラスタの中心とそのノルムを計算して、
ノルムはクラスタの散らばり度を表すから
その小さい物を、ほかのクラスタの散らばり度を無くす様に配置転換していけばいとおもうな。
ここで、良い場所がなければ101個目のクラスタを作って良いとする。
1つのクラスタが一番散らばりが少なくなるからどこかで止めないといけないが。
159:デフォルトの名無しさん
10/01/31 09:38:09
みなさん、どれくらいの機械使ってるもんなのかな。
スペック足りないからもっとゴツいの買ってほしいんだが、
「お前のコードがヘボいからだ!」と言われそうだ。
ヘボいのは(たぶん)事実だから、あんまり強気に出られない。
運用の方のスペックは割と情報があるけど、開発の方のスペックがどうなっているのか
見たことがない。
160:デフォルトの名無しさん
10/01/31 13:12:35
>>159
用途やデータの規模によるところが大きいかと。
161:デフォルトの名無しさん
10/01/31 15:02:14
いやそりゃ重々わかってるんだけどさ…
162:149
10/02/01 14:36:40
趣味である言語の自分用の機械翻訳ツールを作ってみようと思ってるんですが、
どこから勉強すべきか分からないんです。
自然言語処理の基礎から勉強するのは遠回り過ぎますか?
163:デフォルトの名無しさん
10/02/01 22:02:29
>>162
楽しむだけなら、
URLリンク(www.amazon.co.jp)
なんか読むだけでいいんじゃないか。
164:デフォルトの名無しさん
10/02/04 11:46:45
>>153
日本語限定のことはあまり価値無い
全世界や未知語や宇宙語でも共通するのが良い
165:デフォルトの名無しさん
10/02/04 14:32:23
671番さん
57行目でclassまたはinterfaceがありません。
です。
すみませんがよろしくおねがいします。
166:デフォルトの名無しさん
10/02/04 18:15:03
対話コーパスの隣接対について、自動的にタグ付けするアルゴリズムってどこかで研究されてる?
167:デフォルトの名無しさん
10/02/05 00:29:16
>>139
今時数十GBがそんな特別なもんかよおい・・・
ていうか、それをそのまま使えない環境なんて捨てちまえよ、おい・・・
いずれにせよサーベイしなさすぎだな、みんな。
168:162
10/02/05 00:42:53
>>163
レスが遅れましたがありがとうございます。
読んでみます
169:デフォルトの名無しさん
10/02/05 04:43:32
ググることをしないIR専門家(自称)
170:デフォルトの名無しさん
10/02/05 05:22:17
むしろググるな
論文探すって言う意味なら良いけど、
それなら、もっと良い方法あるだろ。
IR専門家なら、参考にするのは、査読付き論文のみにするだろjk
171:デフォルトの名無しさん
10/02/05 05:24:33
>>167
サーベイでどうにかなるもんだいじゃないだろ
元論文だって、結果の裏で細かい実装上の苦労があんだよ
そのノウハウ蓄積無しに、サーベイサーベイ言ってもなぁ・・・
172:デフォルトの名無しさん
10/02/05 07:02:47
サーベイばっかしてて研究進まない香具師
173:デフォルトの名無しさん
10/02/05 08:40:15
サーベイと言ったらとりあえずはIEEE-CS DLとACM DLは常識だと思った俺が悪かった。すまん。
174:デフォルトの名無しさん
10/02/05 20:43:08
>>173
そいつら、やたら使い難いじゃん。ググルスカラのほうが遥かにマシ。
175:デフォルトの名無しさん
10/02/12 11:52:51
>>159
Core i7にメモリ8GB。
マシンパワーで片付くものなら片付けちゃった方がいい。
開発用ならなおさら、ちょこっと試したい事をイージーに試せる方がいい。
もっともっとメモリ欲しいとおねだり中。
176:デフォルトの名無しさん
10/02/12 12:49:29
もうみんな64bit化はデフォなんだ。
ところで、複数マシンで処理する場合、みんな何使ってる?
やっぱMPI?
177:デフォルトの名無しさん
10/02/19 11:19:49
>>148
亀レスで悪いけど、もともとかなりの疎行列だと思うんだけど、どうして次元削減する必要あるの?
178:デフォルトの名無しさん
10/02/19 18:12:21
>>177
???あまりにも疎だから次元減らしたいんじゃね?
179:デフォルトの名無しさん
10/02/21 23:07:06
>>178
疎ならコンパクトに表現できんじゃん。
次元減らして何がしたいんだろ。
180:デフォルトの名無しさん
10/02/22 19:01:31
表現がコンパクトなだけで空間としては全然コンパクトじゃない罠