5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

自然言語処理スレッド その3

1 :デフォルトの名無しさん:2009/02/20(金) 20:31:21
このスレッドでは、日本語の構文解析、談話理解、情報検索、
文章生成などの技術に関する理論と(おもに)実装を扱います。
あくまでアプリケーションプログラミングの技術的な面に重点をおきたいので、
学術的な話はアリですが、いわゆる人工無能や哲学的AI話、
言語学の話題などは他のスレッドでお願いします。


前スレ:自然言語処理スレッド その2
http://pc11.2ch.net/test/read.cgi/tech/1173105287/

次スレは>>980

2 :デフォルトの名無しさん:2009/02/20(金) 20:33:59
形態素解析
- Juman: http://nlp.kuee.kyoto-u.ac.jp/nl-resource/juman.html
- ChaSen: http://chasen.naist.jp/hiki/ChaSen/
- KAKASI: http://kakasi.namazu.org/
- MeCab: http://mecab.sourceforge.net/

依存構造解析
- KNP: http://nlp.kuee.kyoto-u.ac.jp/nl-resource/knp.html
- CaboCha: http://chasen.org/~taku/software/cabocha/

Namazu
- namazu: http://www.namazu.org/

3 :デフォルトの名無しさん:2009/02/20(金) 20:35:44
関連スレ

形態素解析と日本語処理
http://pc11.2ch.net/test/read.cgi/tech/1106606281/

4 :デフォルトの名無しさん:2009/02/20(金) 21:18:03
拠り所にする文法規則ってあるじゃん
めかぶならIPAとか
でも諸説あってどれか定められない
どの文法が機械処理に向いてるんだろう


ってずっと考えてるだけで実装が進まない

5 :デフォルトの名無しさん:2009/02/21(土) 03:51:37
       //
     /  /   パカッ
     //⌒)∩__∩
    /.| .| ノ     ヽ
    / | |  ●   ● |     
   /  | 彡  ( _●_) ミ  まピョーん☆
   /  | ヽ  |∪|  /_
  // │   ヽノ  \/
  " ̄ ̄ ̄ ̄ ̄ ̄ ̄(..ノ

6 :デフォルトの名無しさん:2009/02/28(土) 19:31:31
mecab の ipa (naist-jdic) は文法体系ってか品詞体系だと思うけど、
あの体系自体は機械処理に向けて作られたものなので、
考えて進まないくらいならあれでやっていいと思うが。

7 :デフォルトの名無しさん:2009/03/06(金) 14:05:39
文書の重要度 (まともらしい、スパムらしいなど) はどう計ればいいですか。
人間が学習させると、未知の文書、外国語の文書に対応できません。
圧縮してサイズが激減する物は、重要でないと言えると思いますが
減らない物が重要とは言えないです。JPGが重要文書になってしまいます。
もし日本語の特徴を学習してしまうと、アラビア語、バルト語、ムー大陸語に対応できません。
人間が認識可能であるらしいこと、価値ある文書であるらしいことを判別したいんです。

8 :デフォルトの名無しさん:2009/03/06(金) 14:10:49
無理

9 :7:2009/03/06(金) 14:27:54
無理って事は無いと思うんです。
たとえば、英語なら使われる文字は40文字程度、日本語なら6000文字程度など限定的ですし、
平仮名や、「は」「が」が良く出現するとかの特徴で言語らしい判別は出来そうですが。

10 :デフォルトの名無しさん:2009/03/06(金) 14:35:46
教師付き学習でもカオスになりそうだな

11 :デフォルトの名無しさん:2009/03/06(金) 14:38:32
もともとの目標を書きます。
全文検索エンジンを作ろうとして、その性能を評価したいんです。
重要文書が上位に検索されるように、インディックス作成時のパラメータを調整したいんです。
そこで重要文書を別の方法で得点づける必要が出てきます。

12 :デフォルトの名無しさん:2009/03/06(金) 14:41:19
>もし日本語の特徴を学習してしまうと、アラビア語、バルト語、ムー大陸語に対応できません。
特定の言語に最適化するつもりは無いんだろ?

>たとえば、英語なら使われる文字は40文字程度、日本語なら6000文字程度など限定的ですし、
>平仮名や、「は」「が」が良く出現するとかの特徴で言語らしい判別は出来そうですが。
だったら特定の言語の特徴は関係ないだろ。


13 :デフォルトの名無しさん:2009/03/06(金) 14:43:04
ランダムに打たれた文字、AA、普通の文書くらいの判別ならできるが
スパムとまともな文書(これらは主観的な判断)を見分けるには
重要度について客観的に評価できる形で厳密に定義する必要がある


14 :デフォルトの名無しさん:2009/03/06(金) 14:44:11
>>12
それは、例で出したんです。 多言語でも、頻出する語がある程度の割合ででるはずです。
「a」「the」「is」など。

15 :デフォルトの名無しさん:2009/03/06(金) 14:49:00
>圧縮してサイズが激減する物は、重要でない
うそ臭いな


16 :デフォルトの名無しさん:2009/03/06(金) 15:20:27
14のいうスパムは意味のない文書のことではなくて
言語の体をなしていない文書のことなのか?
それだとDMや文章系のコピペは重要で詩性の強い文学や歌詞は
重要ではないことになるぞ

17 :デフォルトの名無しさん:2009/03/06(金) 15:30:45
想像する重要でない文書は、同じ単語、文が頻繁に現れる物、どんな人間も理解できない文書です。
コピペ文も理解できるなら重要と見なします。 
コピペが同一文書に連続すれば、たとえば圧縮することで情報量が少ない事がわかります。
歌詞や文学もほぼ誰にも理解できないなら、価値を減らしたいです。
古代文字で現在解読されていなくても、古代人には理解できるなら価値を高めたいです。

18 :デフォルトの名無しさん:2009/03/06(金) 15:41:25
仮に可能であったとして完成したとしたら
これほど無用なものは無いな


19 :デフォルトの名無しさん:2009/03/06(金) 15:41:43
下準備として、辞書無しで単語分割したいのですが良い方法ありますか。 あと類似単語を見つける方法ありますか。
類似文書については、たとえば3byteの固定長語の出現回数を測定してベクトル空間法を使えば簡単そうです。

20 :デフォルトの名無しさん:2009/03/06(金) 15:45:06
>>18
グーグルの方法だと、リンクの入力を計測しますから
新規の文書の価値は低く、名の知れたサイトの価値は高いです。
新規の文書や、リンクのない検索で使えると思いますが。

21 :デフォルトの名無しさん:2009/03/06(金) 15:53:34
エントロピー次第って事か

22 :デフォルトの名無しさん:2009/03/06(金) 17:30:47
重要度とかいう俺様指標をきちんと定義しろよな。
あとは情報検索の入門書でも読め。

23 :デフォルトの名無しさん:2009/03/06(金) 18:36:44
文書の重要度ではないのですが、自分で考えた重要単語( indexに登録すべき語 )の求め方を書きます。
3-gramで全文検索して、不要単語は登録しない物を目指してます。
たとえばabcが、全100万文書中20文書出現するとします。x=100万/20 or log(100万/20)とおきます。
abcが多くの文書で出現すればxは小さい値になり、abcはそれを含む文書を特徴づける単語ではありません。
もし大きい値であれば、abcは重要単語と見なせます。そしてその周囲の語も重要である可能性が高いです。
本来の区切りが3バイトとは限らない為です。そこでbを中心に左右に (線形的に) 値を減らながら値を割り振ります(加算します)。
これを全単語に対して行うことで、indexに登録すべき文書範囲が決まります。

24 :デフォルトの名無しさん:2009/03/06(金) 18:47:19
23の方法である単語に対し、文書ごとの重要度が求められるのですが
この結果がホントに重要文書順を出力するのか調べたいんです。
たとえば、x = C + (100万/20) ^ r とした方がいいとか、
値を割り振るときに等比的に減少された方が良いとか、
考慮すべき所があります。

25 :デフォルトの名無しさん:2009/03/06(金) 19:20:02
頼む。

辞書無しで単語分割すること。 
辞書無しで類似単語を見つけること。
知識無しで文書がスパムでないことを定量化すること。
文書の分類(言語、エンコード、分野などで分類)すること。

単語分割にはViterbi 、A*がいいらしい。

26 :デフォルトの名無しさん:2009/03/07(土) 14:20:42
全文検索するにはエンコードを特定しないと駄目だな。 
SJISとEUCでN-gramで登録しても一方の検索がHITしない。
登録時はそのままにして
検索時に、全てのエンコードに変換して検索かけるという手はあるが
世界各国対応とすると検索回数が10回以上になる。
エンコードを決めて、N-gramするなら全ての言語の知識がいる。
どうすればいい?

27 :デフォルトの名無しさん:2009/03/07(土) 14:36:35
知識無しでエンコードする方法考えた。
ベクトル空間法で文書を分類し、つながりの確率から単語分割する。
頻出単語の昇順に番号を付ける。
もし同一言語でエンコードが異なる物は、単語のつながり方に関係があるはずで
上で付けた番号どおしで変換できる。

28 :デフォルトの名無しさん:2009/03/07(土) 14:50:07
しかし手間かかるから現実的でない。自動判別できるソフトを使うべきか

29 :デフォルトの名無しさん:2009/03/07(土) 20:11:28
サポートする全言語の知識はどうやろうが必要だと思うけど……。
スパムかどうかは普通読む人次第(読む人に関係なくスパムと見なされて
いるのはアダルトかアフィリエイトかな、現在のところ。)だから、
読む人と無関係な基準を作れたとして、それが意味あるとは思えない。
「重要度」というオレオレ単語をどうにかしる

30 :デフォルトの名無しさん:2009/03/07(土) 20:27:47
文書、言語として成り立っている物は正常なんです。
アダルトでも文法が正しく読めるならいいんです。
日本人の多くはアラビア語はわかりませんが、文法が正しく理解可能ならいいんです。
JPGファイルは情報量は多いですが、人間が理解できません。
適切なエントロピーである事が一つの条件になると思いますが厳密な定義はわかりません。

31 :デフォルトの名無しさん:2009/03/07(土) 20:30:03
いま試しに、言語の知識なしで、まともな文書を生成する事をやってます。
文書データは使いますが、文法や分かち書き辞書などは使いません。

32 :デフォルトの名無しさん:2009/03/07(土) 21:20:42
よー分からんが

Colorless green ideas sleep furiously.

というのは文法的には正しいのに意味をなさない文として有名だけど、
これは OK ってことだよね。

単語分割くらいならがんばればできると思うけど、それ以上は難しいかも。
単語分割はエントロピー的なもので教師なしに分割するという話は腐るほど
あるので、検索すれば出てくると思うけど……

最近の話だったら

ttp://nl-ipsj.r.dl.itc.u-tokyo.ac.jp/NL190program.html

ベイズ階層言語モデルによる教師なし形態素解析

○持橋大地, 山田武士, 上田修功(NTTコミュニケーション科学基礎研究所)

言語の文字列を階層Pitman-Yor過程による文字-単語階層nグラムモデルの
出力とみなし, ベイズ学習を行うことで, 教師データや辞書を一切用いな
い形態素解析を可能にする。これにより, 教師データの存在しない古文や
話し言葉,口語体などの形態素解析と言語モデルの作成が可能になる。

だと思う

33 :デフォルトの名無しさん:2009/03/07(土) 22:13:56
たとえば、 私 俺 わたくし オレ が似ていることを決定することもなかなか難しい。
プログラマは、国語学の知識は無いとして、品詞分解や文法として正しい文を組み立てられる物か。

34 :デフォルトの名無しさん:2009/03/08(日) 13:09:54
>>33
それは周辺の文脈を使って単語クラスタリングすればある程度分かるし、
そこまで言語学の知識なくても、周辺の N 単語を使うとか、
bag-of-words を使うとかすればいいし。
品詞を決めようとすると正解タグづきコーパスがないと難しいんじゃないかなぁ

35 :デフォルトの名無しさん:2009/03/08(日) 13:32:09
品詞名は決まらなくて良いんです。
本来、動詞、名詞と分類されるグループに含まれるっぽいという事がわかれば。
そのほか、英文とドイツ語が混在している文書ならは、英語っぽい、ドイツ語っぽいとかいう分類もあります。
でも今は単語分解してます。 辞書無しで短時間で分解したいんですが難しいです。
たとえば2バイトごとのつながりの計測はすぐに済みますが、
その統計を使ってabcdeというつながりが高確率であり得ると出ても、2語しか比較してないので
実際に文書から出現回数を求めてみないとわかりません。 このチェックを毎回していたら大分時間掛かります。

36 :デフォルトの名無しさん:2009/03/08(日) 14:45:46
繋がる部分は長めになるけど、分割部分は2バイトあればわかるか。
たとえば、abcxyが、本来abcとxyにわかれるならば、bcとxyのつながりに比べてcxのつながりは弱い。

37 :デフォルトの名無しさん:2009/03/08(日) 14:51:50
だから品詞名が必要ないなら単語分割したあとクラスタリングすればいい、
って言っているんだが。。。それが動詞っぽいクラスタであるか名詞っぽい
クラスタであるかは人間が見て分かるだけで、クラスタリングでは自動で
クラスタのラベルはつけないし。

あと前も書いたけど辞書なしで単語分割する手法も研究レベルでは
たくさんあるし、そういうの参考にすればいいんじゃないの? 
短時間でできるかどうかは自分で実装したことないので分かんないけど。

どちらかというと暗号解読系の技術に近いことがしたいのかもね。
サイモン・シンの「暗号解読」はちょうど未知の言語の判別問題について
どんな手法があるか書いてあるね。古代の言語(文字)の解読の話題も
書いてあったと思うので、そういうの読んでみたらいいんじゃない

38 :デフォルトの名無しさん:2009/03/08(日) 14:58:28
重要度順に並べるとどうなるか脳内でシミュレーションできない?
たとえばこのスレで重要度が高くなって欲しいレスと低くなって欲しいレスは
どういうの?

39 :デフォルトの名無しさん:2009/03/08(日) 15:11:53
ほとんど空白ばかりの文書、JPGの中身をコピペした文書は重要でありません。
エントロピーが適度で、人間が先を予測出来る文書が重要らしいと思うのですが厳密にはわかりません。
そこでまず人間に重要らしいと思わせられる文書を自動生成されてみようと思いました。

>>37
トン。 サイモン・シン読んでみます。 
もともとの目標が全文検索エンジンを作る事なので、知識0のままで高速にindexを作りたいんです。

40 :デフォルトの名無しさん:2009/03/08(日) 18:48:42
言語と絵の境界は曖昧だよ。

41 :デフォルトの名無しさん:2009/03/08(日) 23:16:30
>>39 ああ、そうするとデータ圧縮系の話が興味あると思う。
どのように符号化すれば圧縮限界に近づくかとかそういうことだよね。

でも自然言語はあえて冗長な部分があったり
(70% 削っても人間は元の文が復元できるとかいう実験結果があった。
数字はいいかげん)、一次元の尺度ではうまくいかないんじゃないかなぁと思う。

機能語は単純な頻度とか圧縮率で抽出できると思うけど、
内容語は頻度もそんなにないし曖昧性もあるし。
機能語だけに着目して言語判定できるかというとそういうものでもないし。

前文字コード判別でバイト列の N グラムを作って判別したことあるよ。
この場合単語分割する必要すらないんで……。

知識ゼロで作るのは研究としては意味あるけどねー
精度的にはまだまだなんで、かなりブラッシュアップが必要だと思うよ

42 :デフォルトの名無しさん:2009/03/16(月) 14:43:57
スレ違い

43 :デフォルトの名無しさん:2009/03/23(月) 19:33:21
は?

44 :デフォルトの名無しさん:2009/03/23(月) 22:58:51
>>43
しね

45 :デフォルトの名無しさん:2009/06/19(金) 04:51:03
つながりの確率を求めて単語分割したいんだけど2バイト同士のつながりの統計を取ろうとすれば、
4バイト(int) * 2の32乗 の記憶域が必要になる。(出てこない文字を削れば減るが)
単語は、2語より長くなるから、もっと記憶域を使うことになる。
たとえば、「プログラ」のあと、「ム」「ミング」が来やすいという統計を取ろうとすれば
相当の記憶域が必要。 どうすればいいんでしょうか?
x,y,z,v,wを16bit数とし、「プログラム」の個数を数えるには sum[x][y][z][v][w]という配列にアクセスするようなものと思うのですが。

46 :デフォルトの名無しさん:2009/06/19(金) 04:55:45
全角で8語くらいまでの統計が求められれば、たくさん自動学習させることで、
どんな既存の辞書も使う事無しに精度はかなり良いと思います。
PPM圧縮を調べたのですが、長い単語の対処方法がわかりません。

47 :デフォルトの名無しさん:2009/06/19(金) 13:52:06
頻出する (2語、4バイトの) 単語が求め、それに2バイトを割り当てて
再び、4バイトの単語の統計をとれば、長い単語が求められそうです。

48 :デフォルトの名無しさん:2009/09/12(土) 07:03:04
特徴語、重要語の求め方教えて。 
辞書による単語分割は使わず。
中国語、漢語でも可能な方法。

49 :48:2009/09/12(土) 08:07:55
何度もデータを読みに行くのは辞めたい。 一度のロードで済ましたい。時間食うので。
例えば、一度目の読み込みで単語辞書を決定し、2度目で単語の回数を測定するとか。
5Gのデータ群だと、2回読めば10Gになり時間食う。
読み込みは、一度だけでいい方法ありますか。


50 :デフォルトの名無しさん:2009/09/12(土) 11:41:37
>>49
64bitOSで32GBくらいRAMを積めばOK。

51 :48:2009/09/12(土) 17:38:28
再読み込み、巨大メモリを使って
試行錯誤せず (計算多くせず) 済む方法が知りたいです。
辞書無しの方法がいいです。

52 :デフォルトの名無しさん:2009/09/12(土) 20:43:09
5Gを全て使わずとも適当にさっぴいてやればいい

53 :48:2009/09/12(土) 20:54:34
具体的には、500Mを利用して単語辞書を作成するとかですか?
5Gは複数ファイルの合計値です。 
各ファイル毎に特徴語を求めたいです。
辞書に漏れた単語のランク付けがうまくいかないと思うのですが?

54 :デフォルトの名無しさん:2009/09/12(土) 20:58:45
単語辞書だと、「単語」「辞書」に分かれますが、「語辞」と間違えて抜き出したら
「単語」や「辞書」が一つも出現せず、「語辞」が多く出る文書の特徴語と同じになってしまいます。
これをどのように回避するのかが重要と思うのですが?

55 :デフォルトの名無しさん:2009/09/12(土) 21:35:43
クラスタリングで、文書のドメイン特定してから
そのドメインにおいて、単語辞書 を 単語 辞書 とすべきか 単 語辞 書 にすべきかを
HMMなり使って最大になる分割を決めればいい。


と、素人ながらに思ったが。
特徴語が同じになるって話だから、そもそもクラスタリングがうまく行かない可能性が高いかw

56 :デフォルトの名無しさん:2009/09/12(土) 21:47:51
短時間、辞書無し、何言語でも、特徴語を抜き出したいです。
HMMは、確率的に最も有り得る単語分割を決定するって事でしょうか。
これを行ってからだと相当時間食いそうなのが難点です。

57 :デフォルトの名無しさん:2009/09/12(土) 23:06:47
それは無理。
辞書ありの形態素解析器ですら、使ってるんですから。
確率使わずに、最適な分割例を決めるとか、無理でしょw

58 :デフォルトの名無しさん:2009/09/12(土) 23:11:23
確率は使うのは良いんですが、膨大な時間を使うのを回避したいです。

59 :デフォルトの名無しさん:2009/09/12(土) 23:15:43
特徴語を決定するのに、全ての単語の単語分割が必要なのかどうかも疑問です。

60 :デフォルトの名無しさん:2009/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:2009/09/13(日) 06:16:05
2語の統計とっても、ABCDなど3語以上の出現確率が不明だ。
3語、4語、5語と統計取るのはメモリ容量から実現難しい。 
2語(16bit)でやる人は多いと思いますが、3語以上の確率はどう求めますか?

62 :デフォルトの名無しさん:2009/09/13(日) 11:39:25
>45辺りから全力で間違った方向に進んでいるような気がする。
疎行列とか連想配列とか使えよ。


63 :デフォルトの名無しさん:2009/09/13(日) 14:36:47
便乗の質問です

>>60
A 1000回
AB 5回
B 10回

こんな場合だとAとABとBを単語として認識することになるんでしょうか。
もしABがあった場合、これはどの単語が出現したとカウントするんでしょう。
AとABとB、三つともカウントですか?


64 :60:2009/09/13(日) 15:07:26
>>63
カウントは、出現したやつは全部カウントしないと統計取る意味ないじゃないですか。
よく繋がる語を、単語と見なすんです。
同じ語の繋がりでも文意によっては変わるんです。日本語変換と同じです。

65 :デフォルトの名無しさん:2009/09/13(日) 16:18:06
なるほど。
語Aと語Bの複合語ABがあった時にもA, B, ABを全部カウントですね。
辞書ありの形態素解析なんかでは最長一致の事が多いから、ABだけですよね。


66 :デフォルトの名無しさん:2009/09/18(金) 08:41:15
必要と思うので、グーグルのメモリ管理、mapとicuの導入方法をここに記す。
いまから調べる。 windows XP 32bit visual c++ 2008を元にする。

67 :デフォルトの名無しさん:2009/09/26(土) 23:32:43
文章のクラスタリングをするために適当な固定次元の特徴ベクトルで表現できないかと思っています
どんなベクトル表現が適切でしょうか

68 :デフォルトの名無しさん:2009/09/26(土) 23:55:25
日本語処理はrubyが充実しててpython使ってる人があまりいない気がする

69 :デフォルトの名無しさん:2009/09/26(土) 23:56:36
それは完全に気のせいです

70 :デフォルトの名無しさん:2009/09/27(日) 09:25:54
I18Nのハンドリングは自然言語処理と基本的に関係ありませんから。

71 :デフォルトの名無しさん:2009/09/27(日) 12:21:03
>>67
2文字か3文字(32-48bit)ごとの統計を取って、2の32乗のベクトルと見なす。
そのベクトルのうち直交しているものをいくつか選び出す。
たとうば、20個選べば、20次元の座標に、それぞれの文書を特徴づけられる。


72 :デフォルトの名無しさん:2009/09/28(月) 01:07:42
自然語処理って強化学習と相性よさそうなのに
あんまり話を聞かないのは,ダメだってことかな

73 :71:2009/09/28(月) 08:03:50
>>67
一緒に作るか?前から文書分類しようと考えていた

74 :デフォルトの名無しさん:2009/09/28(月) 08:29:39
ベイジアンスパムフィルタは、判定結果(あるいはその判定を人間がさらに判定した結果)に
もとづいて学習させてるじゃない?

75 :デフォルトの名無しさん:2009/09/28(月) 08:56:48
>>71
意味通じない

76 :71:2009/09/28(月) 14:14:58
>>75
ABCDEFG・・・は2バイト文字とする。
ABC、BCD、CDE・・はそれぞれ一回ずつ出現する。出現した物をカウントする。
すると、2の48乗次元ベクトル空間が得られる。
似ている文書では、同じ箇所がカウントされやすくそのベクトルの類似がはかれる。
これでは、計算量の点から、クラスタリングが困難なので
直行している基底をいくつか選んで射影をとってクラスタする。
すると、20次元くらいなどにおさえられる。

77 :デフォルトの名無しさん:2009/09/28(月) 17:50:03
文字コードが一文字nビットm文字単位だとだと(mn)^2次元ですか。
どうしてそう無駄なパラメータ入れるかな。



78 :デフォルトの名無しさん:2009/10/09(金) 10:16:43
高速クラスタリング考えた。偶然良いクラスタに入る法、良いクラスタを選択する法の2つ。
※クラスタの中心を求めるコストは無視できるとする。

前者。
データを100個、1000個など一定数になるように等分する。N等分されたとする。
クラスタnの中心を求めてそれと離れている (関係が薄い) ものをクラスタn+1へ移す。
n=Nのときだけ、クラスタ0へ移すか、新規クラスタへ移すかを選択する。
次クラスタへ移す条件=悶値を徐々に上げていくことで分割が完了する。

後者。
始めにクラスタの中心を関係が薄いもの (直行しているベクトル) 同士で選び出す。
0 < a < b < 1を適当に設定して、クラスタの中心との内積値がbを超えたら、そのクラスタに属すものとする。
すべてのクラスタの中心との内積値が、a未満ならどこにも属さない新規クラスタとする。
こっちは一度の走査で分割が完了する。

79 :78:2009/10/09(金) 10:23:47
後者は、内積値が最大になるクラスタへ移すのが最善だけど、
時間食うので、bを超えたらそこにしてしまいます。
より良いクラスタがある可能性はあります。
後者で荒く分割 (a,bは0に近い) してから前者を用いるのもいいかもしれません。

80 :デフォルトの名無しさん:2009/10/09(金) 10:48:26
>>78
どこが高速なの?

81 :78:2009/10/09(金) 11:01:06
前者をK-means法と比較すると、
クラスタに合わないもの(悶値以下のもの)は、そのまま次のクラスタへ入れてしまう所。
たまたまそこが良かったらそのままにする。
K-means法は合うところを試行錯誤して選ぶ。

後者は、一度の走査で入る場所を確定できる。

82 :デフォルトの名無しさん:2009/10/09(金) 11:47:09
>>81
前者は収束が鬼のように遅くなるだけの気がするけど?

83 :デフォルトの名無しさん:2009/10/09(金) 12:19:02
文書分類するやついま作ってる。それを動かしてもらうとわかりやすいはず。

84 :デフォルトの名無しさん:2009/10/09(金) 17:03:33
>>78>>81
悶値って何?
閾値じゃなくて?

85 :デフォルトの名無しさん:2009/10/09(金) 17:40:07
まちがえて似た字を当てはめたかも?

86 :デフォルトの名無しさん:2009/10/09(金) 17:42:28
スマン
いきち = 閾値 は、字だけみた事あって読みを知らなかった。

87 :デフォルトの名無しさん:2009/10/09(金) 17:45:25
閾値の読み方
閾値の本来の読み方は「いきち」で、「しきいち」は慣用読み。「閾」の字は日本人になじみが薄く、第二次大戦後、当用漢字外とされたため、字義である「敷居(しきい)」の語を当てたものと思われる。「閾」の訓読みは「しきみ」。


しきい値 - Wikipedia

88 :デフォルトの名無しさん:2009/10/20(火) 10:36:29
日本語の判定テストレポート

対象ソフト。
universalchardet-1.0.3 http://code.google.com/p/juniversalchardet/
icu4c-4_2_1 http://site.icu-project.org/
nkf-2.0.9 http://sourceforge.jp/projects/nkf/releases/
libguess-0.2.0-d7 http://www.honeyplanet.jp/download.html

対象サンプル。
一部文字化けを含むネット上ニュースまたは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 :デフォルトの名無しさん:2009/10/20(火) 10:43:02

正解率の括弧は、間違えた個数です。

90 :デフォルトの名無しさん:2009/10/24(土) 18:54:24
>>83
おい、はやく報告しろ。


91 :デフォルトの名無しさん:2009/11/02(月) 19:16:16
アイデアのみで実装してないけど、自然言語処理にウェーブレット
使ったらどうだろう?

92 :デフォルトの名無しさん:2009/11/05(木) 09:17:25
>>90
クラスタリングは諦めた。
それほど関連のある文書は多くない。
正しい分類が出来たところでほとんどは関連がない。
対象はたとえば世界中の文書。
ある一つの文書を指定したとき、関連する文書をサーチするのでいいや。
これは少ししたら上げる

93 :デフォルトの名無しさん:2009/11/10(火) 09:32:42
やっと悪金解除された・・・

>>92
それはデータが少ないからじゃないのか?
どの位のデータなんだ?


94 :デフォルトの名無しさん:2009/11/11(水) 05:16:35
100万件を10個程度ずつ10万個に分類したところで意味があるか。
人間にとって価値がないと思う。
いかに速く分類できたという数値測定は意味あるだろうが・

95 :デフォルトの名無しさん:2009/11/11(水) 05:22:36
100万件の分類には相当時間かかるから、人間がデータを与えたら
それと似た文書を高速で検索できれば十分という考えになった。
100万などやったら、数時間〜一日とかかかるだろ。ずれなく分類使用した場合。

96 :デフォルトの名無しさん:2009/11/16(月) 16:17:41
>>90
重要そうな文書を指定個数だけ勝手に判断して、
それと類似する文書を抜き出すのは出来た。
クラスタリングは全てを分類しなければならず大変だが
これなら短時間で可能。

97 :デフォルトの名無しさん:2009/11/17(火) 07:48:06
ふう、悪金解除されたと思ったらまたされて、ようやく解除された・・・

お、ちゃんと進めてるみたいじゃん。
それってk-NN検索だね。
でもそれを効率良く(高速に)行なおうとすると索引が必要になって、
索引作りって半ばクラスタリングしてるようなもんになってない?

ところで100万文書というとかなりのもんだけど、やっぱウェブ?


98 :デフォルトの名無しさん:2009/11/17(火) 08:38:35
昨日まちがえて Tully's cafe でキャラメルマキアート頼んでしまったが
店員さんは適当にキャラメルトッピングのホットコーヒーを作ってくれた

99 :デフォルトの名無しさん:2009/11/23(月) 09:51:13
特徴ベクトルを抜き出す部分までは言語処理だけど
クラスタリングは別分野になるな。
画像でも、ベクトルさえ抽出できていたら
分類するのは言語でも共通するから。

100 :デフォルトの名無しさん:2009/11/23(月) 11:04:56
ファイル群の特徴ベクトル抽出に一時間掛かったとしても
ほぼ無視出来るほどの時間だろう。
これに比べて分類は数倍-数十倍掛かるだろうから。
あと、クラスタリングより類似画像抽出のほうが困難と思った。
大きな分類だけではなく、ひとつひとつの対応まで必要だから。
これを高速で行えれば言語でも使える。

101 :デフォルトの名無しさん:2009/11/23(月) 11:10:51
基底となるベクトルを3つ、4つなど数個を設定して
それとの類似度を計算して3次元、4次元座標に移し替えれば
クラスタリングしやすいと思った。
これを計算量は3n、 4nで分類に比べた無視出来る程度。
これで距離が近い物は元々似ている可能性があり
離れていれば、元々似ていないことが決定する。

102 :デフォルトの名無しさん:2009/11/27(金) 00:39:26
わかち書きってどのようなアルゴリズムでやるんですか。
辞書は与えられたとして最長一致にしたいのですが。

103 :102:2009/11/27(金) 05:21:43
簡単かと思っていたら、LZH ZIPなど圧縮法と関係あるみたいですね。
圧縮は辞書から最長一列を求めることなので。

104 :デフォルトの名無しさん:2009/11/27(金) 05:42:45
ChaSenのソース読めばわかるよ。
色んなやり方があるけど、
基本的には当然、辞書の中の単語で文を切っていく
切っていくときに、単語の出現頻度を加味しながら、評価関数をmax(min)する組み合わせを探すだけ。
ChaSenなんかは、単語の頻度だけじゃなくて、品詞も見てて、
ある品詞が来たときに次の品詞は何になるかって情報を使ってるのね。(条件付き確率ってやつ)
(もしかすると、品詞情報を使って解くと言うより、品詞を当てるために使ってるのかもしれんが・・・)

で、ここまで書いてて俺がわかんなくなったんだけどw
あれってHMMをモデルに使ってるらしいけど、一体何を隠れ状態にしてるの?
品詞?単語?
あと、HMMつっても、解くときってどうやってるの?
確かMeCabがViterbiを使って高速に解くように改良したってどっかで書いてたけど
逆に、ChaSenの時は、HMMを何で解いてたの?まさか全探索してないよね?w



105 :デフォルトの名無しさん:2009/11/27(金) 05:48:33
それは最もあり得る探索では
最長一致を高速に求めたいのですが

106 :デフォルトの名無しさん:2009/11/27(金) 05:54:37
最長一致を高速に求めるなら、全文検索のお話じゃだめなの?
多分、SuffixTree(or Array)なりを作るような感じになると思うけど・・・
多分そっちだと、どうやって高速に作って、枝刈りしてリソース押さえるかって問題になるけど・・
でも、ちょい研究としては古いかな・・・。

107 :デフォルトの名無しさん:2009/11/27(金) 06:01:01
ここいくとそれほど古い話でもないようだけど。
研究は知らないけど、コピーと同等の速度で分かち書きを出力できればいいけど。

DO++: LZ法再び
DO++: 最長一致文字列の話

http://hillbig.cocolog-nifty.com/do/2008/10/lz-5ed2.html
http://hillbig.cocolog-nifty.com/do/2008/07/post_2e1d.html

108 :デフォルトの名無しさん:2009/11/27(金) 06:09:19
ほほー、これは知らなかった。
BWT法とかよりいけそうなのか・・・。
うちはSuffixArrayで色々やってきたんだけど、
Treeに比べればメモリ的には優しいけど、それでも大変なんだよな・・・
なんせ一切端折らずに全ての位置情報を付加すれば、
文字数分のintなりlongの位置情報が必要になっちまうから・・・

109 :デフォルトの名無しさん:2009/11/27(金) 06:10:01
全文検索に使いたいんですけど、結局の所、
分かち書きしなくても、辞書に登録と検索は可能なんですよね。
N-gramでやれば。 
分割して無駄省けば、辞書サイズと検索精度は上がりますが。
検索目的で考えれば、品詞分解にやってる人は無駄だと思います。
それ以外で、MeCabやChaSen使うのはかなり少数な気がします

110 :デフォルトの名無しさん:2009/11/27(金) 06:24:07
SuffixArrayやBWT法は一時期きょうみ持ったけど、
大きな欠点として新規データの追加が行えないので離れた。
構築時間も掛かるし。zipなど定番と同程度、同圧縮になれば
全文検索出来る分のメリットはあるけど。
これ実現したら、世界標準の圧縮になり得るけど。

111 :デフォルトの名無しさん:2009/11/27(金) 06:34:58
Suffix Array、BWTは、O(n)で実現できるようですけど、
10nでも100nでも、O(n)ですからね。
圧縮と書き込み完了までの合計がコピーの5倍以内だったらいいけど。

112 :デフォルトの名無しさん:2009/11/28(土) 18:04:51
    ┏┓┏┓          ┏━━━━━━┓  ┏┓  ┏━━━━┓┏━━┓
    ┃┃┃┃          ┗━━━━━┓┃  ┃┃  ┗━━┓┏┛┃┏┓┃
┏━┛┗┛┗━━━┓  ┏━━━━━┛┗┓┃┃  ┏━━┛┗┓┃┗┛┃
┃┏┓┏┓┏━━┓┃  ┗━━━━━━┓┃┃┃  ┗━━┓┏┛┗━━┛
┃┃┃┃┃┃    ┃┃  ┏━━━┓    ┃┃┃┃  ┏━━┛┗┓
┃┃┃┃┃┃┏━┛┗┓┃┏━┓┃    ┃┃┃┃  ┃┏━┓┏┛
┃┃┃┃┃┃┃┏┓┏┛┃┃  ┃┃    ┃┃┃┃  ┃┃  ┃┃
┃┗┛┗┛┃┃┗┛┃  ┃┗━┛┗━━┛┃┃┗┓┃┗━┛┃
┗━━━━┛┗━━┛  ┗━━━━━━━┛┗━┛┗━━━┛

113 :デフォルトの名無しさん:2009/11/29(日) 11:47:52
>>2 にある 依存構造解析 というのは、 構文解析 (下記) とは意味が異なるの?

ttp://ja.wikipedia.org/wiki/%E6%A7%8B%E6%96%87%E8%A7%A3%E6%9E%90

114 :デフォルトの名無しさん:2009/11/29(日) 11:58:52
形態素解析も依存構造解析も構文解析の一種

115 :デフォルトの名無しさん:2009/11/29(日) 12:00:19
ここって随分低レベルになったり、
逆に、自然言語処理の研究者(M、Dr含む)が書き込んでるっぽいなぁってレスがあったりで
波がすごいなw

116 :デフォルトの名無しさん:2009/11/29(日) 12:30:15
>>114
ありがとう。同じグループとして繋がりました。

>>115
すみません。まったくの素人です。
たまたま検索エンジンでこちらががヒットして、気になったことを質問しました。

大量にある文書から個人情報の箇所を自動的に隠蔽したく (例: 鈴木様 <<人名>>様)、
そういう技術を探していました。 市販の商品もあるようですが、手元のマシンで動かして確かめ
たり、理解を進めたいと思っています。

もし形態素解析で「人名」が特定できるなら、その部分を除去して元に戻すことで望む動作に
ならないかと期待しています。 
実データを用いてどこまでできるか、何はできないか知りたいと思っています。

117 :デフォルトの名無しさん:2009/12/02(水) 02:30:42
>>101
よくあるのは特異値分解していくつかの特異ベクトルを基底に選んで低次元に投射するってのだね。
そういうオーソドックスな事はやってみた?


118 :デフォルトの名無しさん:2009/12/15(火) 18:35:53
(つд⊂)エーン

119 :デフォルトの名無しさん:2009/12/15(火) 20:39:43
dosita

120 :デフォルトの名無しさん:2009/12/15(火) 21:54:04
俺も今泣きたい。

121 :デフォルトの名無しさん:2009/12/19(土) 08:21:24
nasite?


122 :デフォルトの名無しさん:2010/01/03(日) 17:02:06
なにが

123 :デフォルトの名無しさん:2010/01/15(金) 09:43:12
部外者です。
つまらない質問なんですけど、例えば「住んでいて」という言葉を「住んでて」と略したりしますよね?
これは文法的には間違っているけど、通じますよね?
こういった言葉の翻訳の場合、どのような処理をするもんなんでしょうか?
普通に考えると、辞書的な処理とか、略す規則を求めるとかなんでしょうけど、
もっと別の方法ってあるんですかね?

124 :デフォルトの名無しさん:2010/01/15(金) 13:22:00
い抜き言葉とか、ら抜き言葉とか
一応決まった規則があるから、それで処理するだけかと

もっと本気で分析するなら、音素関係を見て
どういう音素の繋がりがあった時に、どの音を抜くかとか
そういうのもあるとは思うけど

125 :デフォルトの名無しさん:2010/01/15(金) 13:57:41
>>123
間違ってないよ。
君の知らない文法があるってだけ。


126 :デフォルトの名無しさん:2010/01/15(金) 23:55:33
>>123
音素コーパスから統計処理。

127 :デフォルトの名無しさん:2010/01/23(土) 13:22:01
>>117
特異値分解が、クラスタリングで重要なことがわかったけど
これを実行することが難しい。

128 :デフォルトの名無しさん:2010/01/23(土) 14:23:24
でかい疎行列の特異値を計算するライブラリないですか?

129 :デフォルトの名無しさん:2010/01/23(土) 14:33:59
特異値分解が、全ての相関度を計算するコストより
かかったら意味ないな。
経験的に、多くのベクトルと関連があって直行に近い数個のベクトル
を選んでおく方が良いか。

130 :デフォルトの名無しさん:2010/01/23(土) 14:38:18
特異値分解できれば、相関度に影響の少ない次元を
数値的に削れるけど、時間がかかりすぎる気がしてきたから
これはやめるか。

131 :デフォルトの名無しさん:2010/01/23(土) 15:12:54
っていうか、どうやってお前ら特徴ベクトル作ってんの?
片方の軸は単語として、もう片方は各文?
中身は頻度かtf・idfだと思うけど・・・

132 :129:2010/01/23(土) 15:53:03
直交基底を始めに適当に作って
その基底でいくつかのサンプルをプロットしたときに
良く分布するものを選ぶことにした。
これなら次元を落とす作業の準備はほぼ一瞬ですむ。

133 :デフォルトの名無しさん:2010/01/24(日) 09:15:25
卒論か何かかなぁ。
学部生が一人でやってるなら仕方ないけど、サーベイしなさ過ぎだぞ。
大規模疎行列の特異値分解についてはsvdpackcを探せ。
この中のlanczos法プログラム(las2.c)を使え。
具体的な使い方については茨大の新納先生の↓が参考になる。
http://nlp.dse.ibaraki.ac.jp/~shinnou/papers.html

他にも色々言いたいことはあるが面倒だからやめとくw


134 :デフォルトの名無しさん:2010/01/24(日) 09:16:52
おっとすまん、そこの「SVDPACKCとその語義判別問題への利用」という論文だ。


135 :デフォルトの名無しさん:2010/01/24(日) 09:48:06
サンクス

136 :デフォルトの名無しさん:2010/01/24(日) 16:47:18
SVDPACKCの使い方みたのですが大規模疎行列は無理みたいでした。
1-3万 * 2000くらいが限度だと厳しいです。
シュミットの直交化を使って、正規直交基底を沢山作っておき、そこへサンプルをプロットして
分散(標準偏差)の良い上位k個を選んで、k次元に落とすことにしました。

137 :デフォルトの名無しさん:2010/01/24(日) 17:18:02
研究屋が言う「大規模」と、実務屋が必要とする「大規模」は
字面は同じでも意味が全然違うというわな

138 :デフォルトの名無しさん:2010/01/24(日) 17:49:44
まったく、ほんとに出来の悪い学生だな。
ちったぁ自分で工夫しろ。
仮にsvdpackcをそのまま使うにしても、25000x2000でダメだったのは512Mのメモリの場合と書いてあるだろ。
今時数十GB位のメモリ使えるだろ。


>>137
計算機の世界では数字さえ出てくれば意味は同じですよ。
賢い実務屋さんなら人をクサすような事ばかりじゃなくて、こういう時にはみんなどうしているのか教えてやってよ。


139 :デフォルトの名無しさん:2010/01/24(日) 18:02:20
とりあえず64bit環境用意しないと、話が進まないけどな

>>138
単一のハードウェアに数十GB単位のメモリが仮に載せられたとして
それをそのまま利用できると思ってるのは所詮解説論文しか書けない実装出来無い奴の頭だ
どこかの頭の悪い文系SEと同じ

ちなみに、大規模計算機の数十GBは、分散型だから、単一ではせいぜい数GB程度のメモリ
これを分散型にする場合、SVDをそういうアルゴリズムに落とさないといけないと言う問題が待っててだなry



140 :デフォルトの名無しさん:2010/01/24(日) 18:34:18
おっとそれは俺が4年前に通った道だ

141 :136:2010/01/24(日) 18:40:46
個人のPCで他アプリを同時に動かす環境で使いたいのですが。メモリは多くて200Mが限度と思います。

142 :デフォルトの名無しさん:2010/01/24(日) 18:57:21
>>141
誰かが答えを呉れるのを待ってるのかもしれないけど、自分で調べた事柄と
自分の考えたをそれぞれ説明して、疑問点を明確にしないと
もう誰も答えないと思うよ。

143 :デフォルトの名無しさん:2010/01/24(日) 19:13:06
メモリが200しかないんだろ?
200しかない所に300はつっこめないだろ?

じゃあどうするの?
魔法使いじゃないんだから、メモリにツッコむには
・データを何らかの前処理で圧縮する
・メモリ以外を活用する
・サンプリング
の3つしか無いと思うんだが

144 :デフォルトの名無しさん:2010/01/25(月) 04:20:38
メモリを買ってくる

145 :デフォルトの名無しさん:2010/01/25(月) 09:16:05
仮想記憶?

146 :129:2010/01/25(月) 19:35:04
疎な10万次元ベクトルを、100次元以下に縮めたら、
0ベクトルになる率が多くて使えなかった。
何の変換もしない元のデータのままて゜頻度の少ない単語を無視して
次元圧縮するのが確実に有効っぽい。

147 :デフォルトの名無しさん:2010/01/25(月) 23:01:01
目的が何か知らないけど(潜在的な意味繋がりを使いたいとかならともかく)
次元圧縮そのものが目的なら、頻度で切って
そこから更に次元圧縮するのって、何か無駄に見えるが・・・
頻度で切るなら圧縮意味なくね?

148 :129:2010/01/26(火) 10:33:44
100万 - 1000万件ほどの文書のクラスタリングをしたいのですが。
計算量を減らすために次元を減らしたいのですが。

149 :デフォルトの名無しさん:2010/01/28(木) 07:50:51
この分野を勉強してみたいと思うのですが、入門書とかおすすめのサイトを教えていただけませんか?

150 :デフォルトの名無しさん:2010/01/28(木) 09:17:25
とりあえず、ずばり「自然言語処理」がタイトルに入ってる本が何冊かある。

151 :デフォルトの名無しさん:2010/01/28(木) 17:28:04
自然言語処理って、ぶっちゃけ何でも屋だからなぁ・・・
漠然と自然言語処理を勉強するっていったって・・・

ちなみに、今世間で騒がれてる
検索エンジン、日本語入力、機械翻訳、なんて言うメジャーな自然言語処理の応用例と言われてるツールは
どっちかと言うと、この分野じゃ本流じゃないからな。

152 :デフォルトの名無しさん:2010/01/28(木) 17:31:39
> 日本語入力、機械翻訳

これが専門の人から教わったので、俺にとっては自然言語処理というとこれなんだがw

153 :デフォルトの名無しさん:2010/01/28(木) 17:39:59
最近はGoogleや集合知ブームのせいか知らないけど
統計的な言語処理が流行ってるなぁ・・・

統語的な話しとか、生成文法とかの話はどこへやら・・

154 :デフォルトの名無しさん:2010/01/28(木) 17:56:47
「計量」言語学なんて用語もあるように、統計的な手法も歴史はあるんだけどね。

155 :デフォルトの名無しさん:2010/01/29(金) 18:41:06
K-meams法の最適解(最適な中心)は固有値(ベクトル)計算で決まるみたいだね。
ここに書いてあった。普通のK-meamsで試行錯誤するより固有値計算した方が
かかる時間は半分になるそうだ。


スペクトラルクラスタリング
http://d.hatena.ne.jp/mrcarrot/20100117/1263735597

スペクトラルクラスタリングは次元圧縮しながらKmeansする手法
http://d.hatena.ne.jp/mamoruk/20090128/p1

156 :デフォルトの名無しさん:2010/01/29(金) 18:46:06
こんな線形代数の初歩しかやってない事が2001-2003年頃まで知られて無かったらしい。当たり前すぎて誰も論文かかなかっただけかも。

157 :デフォルトの名無しさん:2010/01/29(金) 19:02:22
日本語で書いてあるより詳しい資料見つけてきた。
固有ベクトル求めてK-meamsやるソフトウェアは無いと思うんで作りたんだけど実力がない。
だれか。


スペクトラルクラスタリング
http://nlp.dse.ibaraki.ac.jp/~shinnou/zemi2008/Rclustering/r-motegi-0624.pdf
部分時系列クラスタリングの 理論的基礎
http://www.research.ibm.com/trl/people/ide/2006_JSAI_Ide.ppt
縮約類似度行列を用いたスペクトラル手法による クラスタリング結果の改善
http://nlp.dse.ibaraki.ac.jp/~shinnou/paper/sig-kbs-07-79.pdf

158 :デフォルトの名無しさん:2010/01/29(金) 21:39:33
逆に言うとK-meansが正確に高速にとけると
固有値、ベクトル計算できるってことだな。特殊なやつだけだけど。
いまかんがえたやつだけど、1万個なら100クラスタ*100個に分けて
クラスタの中心とそのノルムを計算して、
ノルムはクラスタの散らばり度を表すから
その小さい物を、ほかのクラスタの散らばり度を無くす様に配置転換していけばいとおもうな。
ここで、良い場所がなければ101個目のクラスタを作って良いとする。
1つのクラスタが一番散らばりが少なくなるからどこかで止めないといけないが。

159 :デフォルトの名無しさん:2010/01/31(日) 09:38:09
みなさん、どれくらいの機械使ってるもんなのかな。

スペック足りないからもっとゴツいの買ってほしいんだが、
「お前のコードがヘボいからだ!」と言われそうだ。
ヘボいのは(たぶん)事実だから、あんまり強気に出られない。

運用の方のスペックは割と情報があるけど、開発の方のスペックがどうなっているのか
見たことがない。

160 :デフォルトの名無しさん:2010/01/31(日) 13:12:35
>>159
用途やデータの規模によるところが大きいかと。

161 :デフォルトの名無しさん:2010/01/31(日) 15:02:14
いやそりゃ重々わかってるんだけどさ…


162 :149:2010/02/01(月) 14:36:40
趣味である言語の自分用の機械翻訳ツールを作ってみようと思ってるんですが、
どこから勉強すべきか分からないんです。
自然言語処理の基礎から勉強するのは遠回り過ぎますか?


163 :デフォルトの名無しさん:2010/02/01(月) 22:02:29
>>162
楽しむだけなら、
http://www.amazon.co.jp/dp/4766501101/
なんか読むだけでいいんじゃないか。

164 :デフォルトの名無しさん:2010/02/04(木) 11:46:45
>>153
日本語限定のことはあまり価値無い
全世界や未知語や宇宙語でも共通するのが良い

165 :デフォルトの名無しさん:2010/02/04(木) 14:32:23
671番さん
57行目でclassまたはinterfaceがありません。
です。
すみませんがよろしくおねがいします。

166 :デフォルトの名無しさん:2010/02/04(木) 18:15:03
対話コーパスの隣接対について、自動的にタグ付けするアルゴリズムってどこかで研究されてる?

167 :デフォルトの名無しさん:2010/02/05(金) 00:29:16
>>139
今時数十GBがそんな特別なもんかよおい・・・
ていうか、それをそのまま使えない環境なんて捨てちまえよ、おい・・・
いずれにせよサーベイしなさすぎだな、みんな。


168 :162:2010/02/05(金) 00:42:53
>>163
レスが遅れましたがありがとうございます。
読んでみます

169 :デフォルトの名無しさん:2010/02/05(金) 04:43:32
ググることをしないIR専門家(自称)

170 :デフォルトの名無しさん:2010/02/05(金) 05:22:17
むしろググるな
論文探すって言う意味なら良いけど、
それなら、もっと良い方法あるだろ。
IR専門家なら、参考にするのは、査読付き論文のみにするだろjk

171 :デフォルトの名無しさん:2010/02/05(金) 05:24:33
>>167
サーベイでどうにかなるもんだいじゃないだろ
元論文だって、結果の裏で細かい実装上の苦労があんだよ
そのノウハウ蓄積無しに、サーベイサーベイ言ってもなぁ・・・

172 :デフォルトの名無しさん:2010/02/05(金) 07:02:47
サーベイばっかしてて研究進まない香具師

173 :デフォルトの名無しさん:2010/02/05(金) 08:40:15
サーベイと言ったらとりあえずはIEEE-CS DLとACM DLは常識だと思った俺が悪かった。すまん。


174 :デフォルトの名無しさん:2010/02/05(金) 20:43:08
>>173
そいつら、やたら使い難いじゃん。ググルスカラのほうが遥かにマシ。

175 :デフォルトの名無しさん:2010/02/12(金) 11:52:51
>>159
Core i7にメモリ8GB。
マシンパワーで片付くものなら片付けちゃった方がいい。
開発用ならなおさら、ちょこっと試したい事をイージーに試せる方がいい。
もっともっとメモリ欲しいとおねだり中。


176 :デフォルトの名無しさん:2010/02/12(金) 12:49:29
もうみんな64bit化はデフォなんだ。
ところで、複数マシンで処理する場合、みんな何使ってる?
やっぱMPI?

177 :デフォルトの名無しさん:2010/02/19(金) 11:19:49
>>148
亀レスで悪いけど、もともとかなりの疎行列だと思うんだけど、どうして次元削減する必要あるの?


178 :デフォルトの名無しさん:2010/02/19(金) 18:12:21
>>177
???あまりにも疎だから次元減らしたいんじゃね?

179 :デフォルトの名無しさん:2010/02/21(日) 23:07:06
>>178
疎ならコンパクトに表現できんじゃん。
次元減らして何がしたいんだろ。


180 :デフォルトの名無しさん:2010/02/22(月) 19:01:31
表現がコンパクトなだけで空間としては全然コンパクトじゃない罠

181 :デフォルトの名無しさん:2010/03/08(月) 00:36:43
知識なし、形態素分解なしでキーフレーズ抽出できるもの?
まず候補の分解までいければ、統計的手法で重要語を選べそうだけど。
知識なしで、単語分解と連結する語の特定するにはどうすればいい?

182 :デフォルトの名無しさん:2010/03/08(月) 00:41:05
文書から学習したら連結する単語のいくつかは判明するけど
すべて網羅は無理。漢字・カタカナのみで最長部分を選べばよさげだけど。
ひらがな・数字をどうするか。漢数字でない数字を含むキーワードやひらがなを含むものもある。
1月18日などはスルーしたいところ。

183 :デフォルトの名無しさん:2010/03/08(月) 01:14:57
辞書もコーパスもなしなら文字種の変わり目で区切るしかないんじゃないの
まあ「できる。」とか「のだった。」が最頻出になるのがオチだとおもうけど

184 :デフォルトの名無しさん:2010/03/09(火) 18:24:15
>>181
ぱっと思いついた方法。
まず、n-gramをN=1からN=10ぐらいまで取る。
次に、低位の出現率のchainと高位の出現率を比べてみて
大きな差があったらそいつは単語っぽいと思っていいのでは。

185 :デフォルトの名無しさん:2010/03/10(水) 01:17:31
ちゃんと論文読めw
ノンパラメトリックの形態素解析はもう研究され尽くしてる
今更そんなレベル低い事やっても意味がない

186 :デフォルトの名無しさん:2010/03/10(水) 07:44:56
>>185
自分は言語処理やってる人間じゃないんだが、とある事情で形態素解析をやる必要が出てきた。
もちろん辞書の類は無しで。
もしよかったら参考になる文献か論文を教えてほしい。
そのまま実装に持っていけるくらいのアルゴリズムまで示されているとさらにありがたい。

187 :デフォルトの名無しさん:2010/03/10(水) 17:44:44
>>185
機械学習だろ。
文書が1つ〜10つくらいの少しでも出来るのか。

188 :デフォルトの名無しさん:2010/03/11(木) 01:28:52
出来るか出来ないかはともかく
既に先行研究がたくさんあるのに、今更1から原始的な方法を取る意味はない

189 :デフォルトの名無しさん:2010/03/11(木) 02:32:06
少ない文書で知識なしで分解するソース上げてから言ってもらおう

190 :デフォルトの名無しさん:2010/03/11(木) 03:40:16
ベイズなんとかを有意に計算できるくらいにはコーパスが必要なんじゃないの

191 :デフォルトの名無しさん:2010/03/11(木) 08:58:43
何でもいいから一冊くらい本を通読してから質問しろよ。

とある企業のサーバシステムをまかされました。良い本を教えてください。
とか言われて、まともな回答ができると思うのか。


192 :デフォルトの名無しさん:2010/03/11(木) 09:56:46
技術屋によくいるタイプなんだけど、ちょっと質問すると「うーん」とうなって「それだけじゃなんとも…あれは?これは?それは?」と逆に質問されまくる。
そういう時は「あんたコミュ能力不足だね」と言ってやる。

193 :デフォルトの名無しさん:2010/03/11(木) 10:28:44
>>192
お客様扱いされたいなら、コンサルに金を払え、池沼。

194 :デフォルトの名無しさん:2010/03/11(木) 12:27:09
>>192 コミュ能力不足は、一発で回答を期待してるのに、十分な情報を与えてないおまえだ。

195 :デフォルトの名無しさん:2010/03/11(木) 14:48:22
つーか、「とある事情で形態素解析をやる必要が出てきた」だけなら
「めかぶでも使っとけお前の仕事なんてねーよ」で終わるレベル

196 :デフォルトの名無しさん:2010/03/11(木) 16:09:05
>>195
> もちろん辞書の類は無しで。

コミュ力不足w


197 :デフォルトの名無しさん:2010/03/11(木) 17:30:47
辞書不可とか「辞書作るのとかめんどくせーし」ってだけだろ。おまえのコミュ力が心配だわ

198 :デフォルトの名無しさん:2010/03/11(木) 20:35:09
>>197
そういう決め付けはコミュ不足の典型例だな

199 :デフォルトの名無しさん:2010/03/11(木) 20:36:16
>>185
といいながら、具体的なアルゴリズム名や文献を例示できるほどには詳しくないのですねw

200 :デフォルトの名無しさん:2010/03/11(木) 20:42:03
決めつけも何も事実だし

201 :デフォルトの名無しさん:2010/03/12(金) 04:56:18
事実と推測の区別がつかない人がコミュ力とかwww

202 :デフォルトの名無しさん:2010/03/13(土) 05:27:16
久々に見たらなんか盛り上がってて嬉しいぞ

203 :デフォルトの名無しさん:2010/03/24(水) 15:51:15
論理的には同じことを言っている文章を検出する方法はないのでしょうか
日本語を論理式に変換するようなものがあるといいのですが

204 :デフォルトの名無しさん:2010/03/24(水) 16:06:24
あるといえばあるしないといえなくもない

205 :デフォルトの名無しさん:2010/03/24(水) 18:10:10
>>204
検索キーワードだけでも教えていただけませんでしょうか

206 :デフォルトの名無しさん:2010/03/24(水) 18:51:43
専門業者に頼んだほうがいいんじゃないの

自分で同義語辞書作ってたら何年かかることやら

207 :デフォルトの名無しさん:2010/03/25(木) 13:37:15
>>203
英語ならあるのかな?

208 :デフォルトの名無しさん:2010/03/25(木) 14:19:35
I'll be back.

See you later.
は論理的には同じ?

209 :デフォルトの名無しさん:2010/03/25(木) 20:32:53
最後は人出で探すから大まかに検出できるだけでいいんだ

210 :デフォルトの名無しさん:2010/04/16(金) 15:53:54
mecabを日本語のhtmlにかけると、htmlのタグまで処理してしまうんだけど
日本語文字列だけ判別して処理する方法はないの?
kakasiはあったみたいだけど

211 :デフォルトの名無しさん:2010/04/16(金) 16:39:58
http://d.hatena.ne.jp/niitsuma/20100416/1271403446
P2P web検索エンジン yacy http://www.yacy.net/ を日本語でも使えるようにしてみた

212 :デフォルトの名無しさん:2010/04/16(金) 22:53:02
 京都大霊長類研究所(愛知県犬山市)人類進化モデル研究センターで昨年
3月〜今月までに、飼育中のニホンザル15頭が急死していたことが28日、
かった。

 死因は不明で、感染症の疑いもあるという。

 同センターによると、死んだニホンザルは昨年6頭、今年9頭。いずれも血液中の
血小板や赤血球、白血球の数が減少する「再生不良性貧血」を発症していた。ただ、
病気と急死の因果関係がはっきりせず、死因は特定できていないという。

 また、一つの飼育室で複数のサルが発症していることなどから、感染症の疑いも
あるという。2001〜02年にも再生不良性貧血の症状があった6頭が急死したが、
死因は分かっていない。

 同センターでは約1000頭を飼育しているが、ニホンザル以外での発症例はなく、
平井啓久センター長は「今夏以降、死因を本格的に調べている。分かり次第、
公表したい」と話している。

読売新聞 2009年12月28日19時56分
http://www.yomiuri.co.jp/science/news/20091228-OYT1T01061.htm

213 :デフォルトの名無しさん:2010/05/19(水) 18:31:38
いまこのスレ見つけて、wktkしながらみてみたのだが、、
質問してるやつらが、痛すぎるなあ。

214 :デフォルトの名無しさん:2010/05/19(水) 19:15:31
2chはそんな場所。そこが面白いところでもある

215 :デフォルトの名無しさん:2010/05/31(月) 12:11:20
未知言語に対して、ほぼ必ず区切りになる部分の見つけ方わかりますか?
例えば、英語だと空白やDOT、日本語だと、。が区切りなりますが。

たとえば 「。」 → 「丸」 と置き換えた場合でも、言語の構成・仕組みから
「丸」は特別で区切りと判明できる方法です。

216 :デフォルトの名無しさん:2010/05/31(月) 12:12:03
あげます。

217 :デフォルトの名無しさん:2010/05/31(月) 12:26:04
ABCと語が出現したとき。

Aの総数と、ABの総数
Bの総数と、ABの総数
Bの総数と、BCの総数
Cの総数と、BCの総数

などを比較して、
ABとBCはどちらも繋がりにくい事を判定すればいいか。
= AB、BCは単語を構成しない(らしい)としてBが区切りと判定する。




218 :デフォルトの名無しさん:2010/05/31(月) 16:09:41
上のほうで辞書なしとかノンパラメトリックとかいってるのがそれだ。あとはぐぐれ。

219 :デフォルトの名無しさん:2010/05/31(月) 17:46:08
サンクス

220 :デフォルトの名無しさん:2010/06/03(木) 22:15:13
周辺確率でぐぐれ

221 :人工痴脳:2010/06/26(土) 22:01:07
遅レスですまん。

>>123
> つまらない質問なんですけど、例えば「住んでいて」という言葉を
> 「住んでて」と略したりしますよね?
> これは文法的には間違っているけど、通じますよね?
補助動詞「行く」「置く」「居る」の三つは省略がある。
ex.「ずっと住んでく」「とりあえず住んどく」「いま住んでる」

222 :人工痴脳:2010/06/26(土) 22:09:35
>>181
> 知識なし、形態素分解なしでキーフレーズ抽出できるもの?
可能ではあるが精度が上がらんから、辞書作ったほうが早い。
頭っから見てって、ひらがなから非ひらがなに変わるところで切り、
ひとつ前を見て「お」「ご」だったら接頭語かどうかチェックする、
という手で相当いける。
まあ、そこまでやらんでも、すでにフリーの辞書があるから
それ使え。
ゲーム製作技術板の『人工知能or人工無脳作ろうぜ』スレ参照。

223 :人工痴脳:2010/06/26(土) 22:36:34
>>203
> 論理的には同じことを言っている文章を検出する方法はないのでしょうか
> 日本語を論理式に変換するようなものがあるといいのですが
様相論理が役に立つかもしれん。
坂井秀寿『日本語の文法と論理』勁草書房とか。

224 :デフォルトの名無しさん:2010/07/03(土) 11:20:19
UTF16LE UTF16BEを検出出来るソフトはないようだ。
判定方法判ったので、ソフトで間違えた場合の応急処置として使ってみてくれ。
このyの値が1/2より下回ればUTF16LE、上回ればUTF16BE。


int n; int cnt[2]; cnt[0]=cnt[1]=0;
for(n=0; n<s.size(); n++) cnt[n%2]+=s[n]<32?1:0;
double y=(double)cnt[0]/cnt[1];
cout<<y<<endl;

225 :224:2010/07/03(土) 11:22:29
訂正。

このyの値が1/2より



このyの値が1より


上位ビット、下位ビットが不均衡になる所に注目する。

226 :デフォルトの名無しさん:2010/07/03(土) 11:55:48
UTF16LEとUTF16BEが間違えるな。
文字化けがあれば大小関係がかわるし。


227 :デフォルトの名無しさん:2010/07/03(土) 12:57:55
ボム無しUTF16LEとUTF16BEの判定方法判りますか

228 :デフォルトの名無しさん:2010/07/03(土) 13:29:00
UTF16の判定は0の個数だけ判定したらうまくいった。ただし英数字が十分にあること。


int utf16chk( const char *p , unsigned int size ) {
unsigned int n, cnt[2]; cnt[0]=cnt[1]=0;
for(n=0; n<size; n+=2) { cnt[0]+=(p[n]==0); cnt[1]+=(p[n+1]==0); }
if( cnt[0] < 0.7*cnt[1] ) return 1; // UTF-16LE
if( cnt[0] > 0.7*cnt[1] ) return 2; // UTF-16BE
return 0; }

229 :デフォルトの名無しさん:2010/07/03(土) 13:39:20
ヒューリスティックだねぇ

230 :デフォルトの名無しさん:2010/07/03(土) 14:32:02
修正

int utf16chk( const char *p , unsigned int size ) {
unsigned int n, cnt[2]; cnt[0]=cnt[1]=0;
for(n=0; n<size; n+=2) { cnt[0]+=(p[n]==0); cnt[1]+=(p[n+1]==0); }
if(cnt[0]==0 || cnt[1]==0 ) return 0;
if( cnt[0] < 0.7*cnt[1] ) return 1; // UTF-16LE
if( cnt[1] < 0.7*cnt[0] ) return 2; // UTF-16BE
return 0; }

231 :デフォルトの名無しさん:2010/07/03(土) 14:32:33
連続した文字が「同じ文字区分に属している確率」を見ればいいんじゃない?

232 :デフォルトの名無しさん:2010/07/06(火) 04:51:26
>>227
察するにCかなんか使ってるようだが、
Javaかなんかに乗り換えたほうが
たぶん長期的に見れば楽だと思うぞ。
Cの文字列はヌル・ターミネートだから、
文字列の中にヌル文字が入ってると結構ややこしいことになるし、
文字列のような可変長データの動的割当を気にしていると
開発効率があまりよろしくない。

Javaが厄介な点も一つだけあって、
char が signedで あって unsigned じゃない。
高速ですべての部分文字列の辞書引き(直積検索という)を
行なうとき、Google でも使われてる
「ダプル配列法」(本当は、もっと素朴なトリプル配列法のほうが
面倒臭くないし効率もいいのでおれはそっちを使ってる)を
使おうとすると、配列の参照点→配列の参照点+バイアスという
相対移動が出てくるときにマイナスの移動が生じ、
範囲外参照で落ちるということがある。
まあ、そこに配慮してコードを書けばいいだけの話なんだが、
文字コードのせいでプログラムとアルゴリズムの対応が直感的に
取りづらいというのはあまり気分がよろしくない。

233 :デフォルトの名無しさん:2010/07/06(火) 21:29:23
Javaのcharは符号無しですが何か?

234 :デフォルトの名無しさん:2010/07/07(水) 09:09:42
>>233
ごめん byte だ。
char はでかすぎてダブル配列法を使うと場所食ってたまらん。

235 :デフォルトの名無しさん:2010/07/07(水) 17:43:13
文書の類似度計るのに多く出る単語は価値を低くして
滅多に出ない単語も価値を低くしたいのですが。
後者は、前者と対立して価値を高くすべきと思われますが、ここを無視すれば計算時間が短縮出来ます。
価値が一定値以下の単語はカットしたいのですが、上側と下側をカットするにはどうしたらいいですか。

236 :デフォルトの名無しさん:2010/07/07(水) 19:06:27
w_i = 0
これでバッチリ。

237 :デフォルトの名無しさん:2010/07/07(水) 19:13:07
普通にヒストグラム取って25パーセンタイルと75パーセンタイルでカットするとかじゃ駄目なのか?

238 :デフォルトの名無しさん:2010/07/07(水) 21:06:19
サンクスです。
上と下も同一パラメータでカットしたかったのですが。
総量と分散でに分けてカットすることにします。
どの文書にも10個ずつ現れるなら分散0でカットして
合計数が少なすぎ多すぎでカットします。

239 :デフォルトの名無しさん:2010/07/07(水) 21:10:21
>>237
二十年以上昔から
駄目っぽいことが判ってるらしい。
上側は用言や副詞や動名詞
下側は固有名詞と
だいたい傾向が分かっていて、
類似度を計るときは、通称「百科語」と呼ばれる
単語を使うことになっているのだが、
ここんとこに漢語の合成語が入ってくるのが難物なのだ。
漢語の合成語を自動検出するシステムを作って
ふるいに掛けてみたら、
二十万語を越しても一向に頭打ちになる様子がないので
怖くなってやめたと、たしか高橋秀俊先生が
書いていらっしゃった。

最近ではシソーラスを作るのが基本だが、
手間が半端じゃねぇというので
あまり好かれない。

>>235 もたぶんそういった流れなんだろうと思う。

240 :デフォルトの名無しさん:2010/07/07(水) 21:14:30
自分の場合は、単語は普通の単語でなくN-gramなんですが。
HTMLをテキストとして読み込むと、文書を特徴付けないタグ関連が上位にきて
ここら辺が精度のためにカットして、下位は精度より計算量削減のため削ります。


241 :デフォルトの名無しさん:2010/07/07(水) 21:20:29
普通の単語では、長いものは短い物より現れにくく
経験としての単語同士の価値の補正が必要になり不便です。
いまは、UTF16 (上のレスは自分です) で2語または3語で回数数えてやってます。

242 :デフォルトの名無しさん:2010/07/07(水) 21:25:18
>>239
今時の計算機ならいけるかもしれんな。
IPADICから合成語を除いた上で、2語で1語になるものを、ウェブ上で端から集めるとか
そんな方法ででけるかな。

243 :デフォルトの名無しさん:2010/07/07(水) 22:29:13
>>242
辞書がこなれてくるまでに
多少人手で編修する必要はあると思うが、
基本いけそうに思う。
「割愛する」が「割+愛する」と
解析されてしまうとかいった類の
不測の事態っつーのがけっこうあったりするので。

244 :デフォルトの名無しさん:2010/07/07(水) 22:39:45
割礼

245 :デフォルトの名無しさん:2010/07/08(木) 20:23:38
>>244
むしろ熱愛

65 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)