自然言語処理は農業に似てるかも

[日記]

自然言語処理と呼ばれる技術で問題を解いていて最近思うことは、
全く同じ問題に出会わないなぁ、ということです。

幸いなことに、ある程度似てる問題は頻繁に見つかります。
なんで完全に同じ解き方で解ける問題が見つかりにくいのでしょう。

それは、たぶん、人間が生み出す言語情報を扱っているため、だと思います。

自然言語処理技術では主にテキストデータを扱いますが、そのデータはどんなに自動生成的なデータでも、元々は人間が作ります。
たとえばブログサービス上では、膨大な量のブログ記事を多数の人間が各自が好きなように生成しています。

ユーザがどんな文章を書くか、どんな話題を扱い、どんなふうにカテゴリ分けするのかなどの要素は、
技術者がデータを処理する手法を選ぶ際に、必ず考慮するべきです。

ですが、これらの要素は事前にコントロールできません。
また、ある時点でダンプしたデータからも、なかなか傾向を完全に正確には見いだしにくいです。

そのため、各データについて、各時点における最も有効な手法を考案することは、毎回全然違う作業になりますし、僕の経験上では難しい(というか時間のかかる)作業です。

どうやったら、よりよく、より速く問題を解けるのでしょうか。

たぶん、沢山勉強をして、最新の情報を仕入れ続け、問題を解きまくる、しか無いと思います。

多くのタスクでは、形態素解析してtokenの頻度を合計して終わり、だけで欲しい結果を得られるケースは少ないと思います。
一方で大量のデータを眺めていると、人間は賢いので、自分の脳の中でデータが持っている傾向がつかめたりするものです。

そのため技術者・研究者が手法を考案する際には日々の鍛錬の成果と経験の量が大切になります。

なんとなく考案された手法の良さの良さは、
「手法の最適さ = α * log(経験量) + β * exp(鍛錬) 」
のようにになっている気がします。αとβには個人差があると思います。

10人の自然言語処理屋がいたら、たぶん10通りの解き方が生まれると僕は思います。
また、他人の選んだ手法が最適かどうかを考える能力も、同じように個人差があると思います。

こういう設定って、農業にすごく似ているなと僕は思っています。(細かいことは全部省きます)

個人的にはexpの跳ね上がる瞬間をまだ経験できていない気がします。
今後も、良い出力結果を得るために努力を続けていかないとな。。

投稿者:としのり  日時:23:59:59 | コメント | トラックバック() |