「自然言語処理」とは、私たちが普段使っている言葉(自然言語)を解析する人工知能(AI)の技術だ。用途としては、「翻訳」や「チャットボット」などがよく知られている。しかし、「自然言語処理」とひとくちにいっても、技術はすべて一緒ではない。求められるアルゴリズムは用途によってさまざまであり、AIエンジンの強みも異なってくる。
株式会社FRONTEOが手がける「KIBIT」は、人間が書いた文章(テキストデータ)から、目的に応じて必要なデータを抽出する自然言語処理のAIエンジンだ。「KIBIT」という名前には、人間の微妙な心の動きを意味する「機微」(KIBI)と、情報量の最小単位を意味する「ビット」(BIT)を組み合わせ、「人間の機微を学習できる人工知能」というコンセプトが込められている。
KIBITは本来、訴訟に必要な証拠を発見し、弁護士をサポートする技術として開発された。訴訟では、弁護士は限られた時間の中で大量の資料の中から証拠となる文書を見つける必要がある。そこでKIBITは、「自然言語処理」と「機械学習」を使うことで、弁護士の経験や勘に基づく「暗黙知」を習得し、弁護士の判断基準に沿って大量のテキストデータから証拠の抽出を行う。また、KIBIT独自のアルゴリズムは、いつも豊富な資料がそろえられるとは限らない訴訟の現場のために、少量のテキストデータから求めるデータを抽出できる能力が実装されている。
文章から、証拠などの人間が求めるデータを見つけだしてくれるKIBITでは、どのような自然言語処理の技術が使われ、どのようなユースケースでの展開が進んでいるのか。株式会社FRONTEO 取締役CTO 行動情報科学研究所 所長の武田秀樹氏に話を伺った(聞き手:IoTNEWS代表 小泉耕二)。
目的によって異なる、自然言語処理のしくみ
IoTNEWS 小泉耕二(以下、小泉): 初めに、「自然言語処理」とはどのような技術でしょうか。
FRONTEO 武田秀樹氏(以下、武田): 一言で説明すると、「人間が普段使っている言語(=自然言語)をコンピュータで処理する技術」です。自由に記述された文章の言葉を、現在の人工知能(AI)の最大の特徴である「コンピューティングパワー」を使って解析します。
自然言語処理の難しさは色々ありますが、一つは「数値ではない」ことです。AIは一般的に、プログラムやアルゴリズムを使いますが、文字や文章のままでは処理できません。まず、何らかの数値データに変換する必要があります。その際に、どのような変換の方式がベストなのか、処理方法やアルゴリズム、言語の特性などから考慮しなければならない点が多くあります。

武田: また、自然言語処理には色々な分野があります。たとえば、「対話システム(チャットボット)」です。対話システムでは、話されている言葉にどんな文脈や背景があるのかを認識しなければならないという、固有の難しさがあります。たとえば、次のような会話を考えてみます。
A:「今日、ラーメンを食べに行こう。」
B:「いいね、どこにする?」
A:「品川で。」
武田: この場合、「いいね、どこにする?」「品川で。」という質問と回答のセットには、「ラーメン屋」という情報が含まれていないため、「品川」が何を指しているのかわかりません。
このように、短い言葉が繰り返される対話システムでは、正しく「文脈」をつかみにくいという難しさがあります。そのため、その一つ前にある「今日、ラーメンを食べに行こう。」といった前後のコンテクストをいかに考慮して解析するかなどが、ポイントとなります。
あるいは、「翻訳」の分野もまた異なります。翻訳の場合、関係づける言葉の意味は同じですが、使われている言語が異なります。この場合には、できるだけ多くの「翻訳例」をデータとして集め、解析することが有効となります。
これからご説明するKIBITの場合は、ある程度まとまった情報が書かれている文章が解析の対象になるため、難しさのポイントが以上の分野とは異なります。
小泉: 自然言語処理といっても、それぞれ必要な技術のポイントが異なってくるのですね。
武田: そうなんです。課題や目的によって、使える自然言語処理の技術やノウハウは違います。もちろん、共通の要素技術はあります。ただ、何か突出したアルゴリズムがあって、それを使えばすべてに対応できるということはまずありません。
無料メルマガ会員に登録しませんか?

技術・科学系ライター。修士(応用化学)。石油メーカー勤務を経て、2017年よりライターとして活動。科学雑誌などにも寄稿している。