職業としての自然言語処理

機械翻訳は昔から自然言語処理の一分野として研究されてきた(*)ので、研究者の方に「私は企業で機械翻訳の研究開発をしています」と言うと「ほぉそうですか」とすぐ話が通じます。

(*) 歴史的には、機械翻訳から様々な自然言語処理研究が生まれてきた、というほうが正確だと思いますが、自然言語処理がこれだけ多岐にわたり発展した現在では、機械翻訳は自然言語処理の一分野というのが妥当だと思います。

しかし、このように研究者にひとことで業務内容を伝えられるというのは、企業の開発現場からすると極めて例外的です。通常システム開発においては、自然言語処理を担当する部分の役割は、他のサブシステムが果たす役割と関係して相対的に決まってきます。そのため、その役割が「単語分割」「情報抽出」「極性分類」といった研究でよく使われる分類とピッタリ一致することはまずありません。

よくあるのは「分かち書きされていない文中でポジティブな極性をあらわす表現を類似表現ごとにクラスタリング」のように複数の技術分野をまたぐ問題です。大抵の場合、これらはよく研究されている要素技術で解けるタスクに分解するところから始めますが、実際に精度をあげようとすると、どうしてもタスクの境界を越境して最適化する必要が出てきます。さらに最終的には各タスクの精度を上げることが目標ではないので、最終的な精度に関係ないエラーについては気にしないといった判断、さらにはタスク設定そのものを変えてしまう決断も時に必要とされます。こういったことは要素技術に精通しているだけではなかなかできません。

さらに実際の問題では「任意の自然文について○○できるようにせよ」といったことはなく、ツイートであったり商品レビューであったり、特定のスタイルやドメインから取られた文章が入力となります。さらに処理した結果についても、スマホの画面上で可視化するのに使う、集計して統計値の推移を見る、などの用途が決まっていることがほとんどです。このような場合、データの「癖」(偏り)を利用して精度をあげたり、最終的な用途に影響しない範囲で処理を簡略化(サボる)したりすることも重要になります。こういったことは決まった評価データを使った研究では出てこない話です。

こういった個別的な話はどうしても学問の対象になりにくいものです。また必要となる知識や経験も体系的なものというよりノウハウの集積といったものになり、大学や大学院での教育で身につけるのも難しいと思います。しかし、様々な研究分野に興味を持つ、同じタスクでも異なったデータを使って実際に悪戦苦闘する、簡単なもので構わないので何かシステムを作ってみる・いじってみる、こういった経験をしながら探求の対象として一つの分野を掘り下げてみると、「職業としての」自然言語処理に必要なものへの感覚が自然と育ってくる気がします。

 

 

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

w

%s と連携中