自然言語処理とは?【Pythonによる自然言語処理超入門】

自然言語処理とは Python

こんにちは!monachan_papaです。
今回から数回に渡って、自然言語処理の超入門記事を書いていきます。

自然言語処理って、そもそも何や?!

から始まって、Pythonで実際に自然言語処理の入り口を体験していただき、自然言語処理に興味を持っていただくことをテーマとし、進めていきたいと思います。

さて、本ブログはPythonカテゴリとArtworkカテゴリで二分して運営していますが、Artworkカテゴリに登場するデジタルアートは自然言語処理を一部、利用して創作しています。
私は昔、アナログアートを嗜んでいましたが、自然言語処理との出会いでビビビっ!と来てデジタルアートに転向しました。

と、まあこんな感じで自己紹介しつつ、さっそく始めていきましょう!

自然言語とは?

そもそも自然言語処理(Natural Language Processing、略称NLP)とは何ですかねえ。ちょいと、分解してみましょうか。
「自然な、言語を、処理する」
はい、そのまんまです!とりあえあず、「処理」は後回しとして、「自然な言語」に着目してみましょう!

私たちは普段、誰かと会話したりします。SNSで何か文章を投稿したりします。
その手段として日本語だったり、英語だったりでコミュニケーションを図ろうとします。人によっては、何語か分からない雄叫びだけをしている人もいるかもしれませんがそれも含めて、そう!言語を使ってコミュニケーションをします。
その言語の起源はどうなっているのでしょうか?

人類誕生以来、祖先は石器を使い、火を使い、そのうち言葉を話すようになり、文字を使うようになりました。これらは自然に発生、発達してきました。別に命令されてとかじゃないと思います。
まあ、統制のために、

おまえ!その言葉遣いはあかんやろ!

と細かいルール決めとかは途中であったとは思いますけど、初めは本当に自然の成り行きで進行していったのだと思います。

このように、人間様の世界・社会で自然に発生・発達してきた言語のことを「自然言語」と呼びます。そして、これは人間のための言語です。

一方、人間様以外の言語もこの世には存在します。

人工言語とは?

人間様以外の言語はどんなものがあるでしょうか?
一応、動物の話す動物語は、とりあえず無しでお願いします!!
現代社会はコンピュータ社会でもあります。そのためにはプログラミング言語が必要です。
プログラミング言語は自然言語と違って、対極に位置します。人工的に作られた言語だからです。これを「人工言語」と呼びます。自然の反対語は人工だから、そのまんま「言語」だけ後ろにつけた感じですね。

さて、コンピュータに何かやらせるためには、正確にプログラミングをしないといけません。

プログラミングは思った通りに動かない。

書いた通りにしか動かない

有名な格言です!(※この格言は詠み人知らずと云われています。)

考察するに、プログラミングは難しくもあり、簡単だと感じます。
しっかり正確に書きさえすれば、コンピュータはこちらの思うとおりに動いてくれる。
楽な仕事ですね!しっかり正確に書かなければならない、という難しい条件付きですが。

曖昧性との対峙

人工言語は正確に書くことが大切なのは分かりました。
では、自然言語はどうでしょうか?
例えば、あなたにとても無能な上司がいたとします。その上司は正確に何か伝えることが苦手で、いつも適当なことばっかり言っています。言ってることに一貫性がない。曖昧なことばっかり。でも、あなたは超有能なので、上司なんて物ともせず仕事はバリバリです!めでたし、めでたし!

と、人間 vs 人間なら知能を駆使し、問題解決を図ることができます。
しかし、「自然言語処理」となるとどうでしょうか? 図式は人間 vs コンピュータになり、話は変わってきます。一例を示しましょう。

赤い靴の小さな女の子

  • 小さいのは女の子で、靴が赤い
  • 小さいのは靴で、女の子の顔が赤い

解釈が2通りできます。

人間でも解釈が難しいです。でも、人間は正しい解釈をするために前後の文脈を考慮したり、これまで人生で獲得してきた経験や前提知識で対処することができます。

自然言語処理は、こういったことをコンピュータにやらせないといけません。
問題となってくるのは、他にもたくさんあります。例えば、ギャル語、若者言葉、スラング、名古屋弁などの方言、汚く乱れた言葉。

言葉は時代によって、変遷します。

さらに、人によっては単語を省略して話すのが多い人もいます。おまけに、日本語は英語と違って文章にしたとき、単語の区切りがありません。簡単に言うと、スペースで区切られていないということです。

以上のように、すごい曖昧なことが多いですよね。
こういった問題を乗り越えながらの自然言語処理です。

数年前から流行りである人工知能。この技術は自然言語処理にも取り入れられていて、自然言語処理の発展に大きく貢献しています。

続く…

コメント

タイトルとURLをコピーしました