概要
- この連載では「日本語自然言語処理」についての簡単な解説を行います
- これから自然言語処理について深く学ぼうとしている人たちにとって、基盤となるような基礎的な知識を提供することを目指しています。
自然言語処理とは
- 自然言語処理は、英語でNLP(Natural Language Processing)と記されます。
- WikiPediaには、次のように書かれています。簡潔に表現された的確な定義になっています。
人間が日常的に使っている自然言語をコンピュータに処理させる一連の技術であり、人工知能と言語学の一分野である。
「自然言語処理」Wikipedia より
- また、日本語文書の自然言語処理を行う場合には、一般的な自然言語処理の技術のみならず、日本語に特有の技術やノウハウも存在します。
- もちろん、現在では様々なツールやライブラリが存在しています。「自然言語」や「日本語」に特有の処理は、それらに任せてしまえば処理できるのも事実です。
- ただし、その一方で、これらの特有の処理についてある程度の理解をしておくことによって、そうでない場合に比べてより良い性能を引き出すことができる場合があるかもしれません。
(例えば、未登録の単語があった場合に、ほとんどの場合はただ単に登録すればいいのですが、ほんの少し考慮することで性能に影響を与える場合があります)
「自然言語」を扱う難しさ
- 言葉は、文字→単語→文→文書、というように、あたかも低レベルの要素が次第に大きな塊になって構成されているかのように見えます。
- しかし、言葉は人間の長い歴史の中で、その都度、人間の都合の良いように変化・拡張してきたものです。
- もちろん、それらをまとめた「文法」は存在します。しかし、現代日本語文法においてさえ複数のものが存在します。
- また、ご存じのとおり、日々新しい表現が生まれ、消えていき、そのうちの一部が日常の中に取り込まれています。そして、人間はそれ(新しい表現)すらも理解し、受け入れることができているのです。
- このように「自然言語処理」は常に変化しつつあるものを対象としています。ゆえに単純に処理するだけでなく、そういった変化にも追随していくような手段も考慮しておかなければなりません。
今後の予定
次のような項目について掲載していく予定です
- 形態素解析
- 構文解析/係り受け解析
- ベクトル空間法による検索手法
- Webスクレイピング
- 簡単な検索システム
M.H