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
しね

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

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

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