自然言語処理スレッド その3 at TECH
[2ch|▼Menu]
[前50を表示]
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 にある 依存構造解析 というのは、 構文解析 (下記) とは意味が異なるの?

Wikipedia項目リンク

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
表現がコンパクトなだけで空間としては全然コンパクトじゃない罠


最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5392日前に更新/48 KB
担当:undef