数十年前から断続的に注目されてきたAI(人工知能)の分野において人間の言葉をコンピュータにある程度理解させる試みが、言語学分野でもある自然言語処理。
英語では、Natural Language Processing/NLPですが、NLPには、似て非なるNeuro Linguistic Programing(神経言語プログラミング)という分野もあるようです。
前者が、人工知能と言語学の一分野であるのに対し、後者は、人間心理とコミュニケーションに関する心理学と言語学の観点から体系化された一分野のようです。
ここで触れるのは、前者の話です。
自然言語処理は、AIの入力としてなど含め、検索エンジン、各国語間の翻訳、文字変換予測、チャットボット、スマートスピーカー、感情分析や文章の要約など必要な情報を得るべく分析・抽出するテキストマイニングという概念等々に利用されています。
問い合わせや営業などのWeb経由のテキストや電話などの通話をテキスト化して解析するのにも自然言語処理が利用されることも増えているようです。
自然言語とは、人間の話し言葉のことであり、当然、世界各国の言葉や方言も含まれますが、ここでは日本語に絞ります。
より詳細は、自然言語処理(NLP)とは | 仕組み・活用例・今後の課題等を参照ください。
現時点では、自然言語処理の工程は、一般に形態素解析/構文解析(係り受け解析)/意味解析/文脈解析の順に行われているようです。
形態素解析は、フレーズを最小単位に分け、構文解析は、単語同士の関連性を見出し、主に分節間の係り受けの構造化、意味解析は、曖昧さを取り除き、辞書に基づいた意味を利用して正しい文か否かを判定、文脈解析は、文同士の関係性に着目し、主語が省略されている場合なども含め、更に曖昧な部分を特定、整理することのようです。
ただ、目的によっては、形態素解析だけで十分な場合もあるでしょう。
自然言語処理のライブラリには、spaCyなどがあるようです。
形態素解析のライブラリには、MeCabやChaSen、JUMAN、JUMAN++、KAKASI、Janome、Kuromoji、Sudachiなどがあるようです。
構文解析のライブラリには、boostjp、KNP、Lark、CaboChaなどがあるようです。
まだ、この分野をよく知らないのでなんですが、かなり難解なチャレンジにつき開発途上のようで意味解析や文脈解析のライブラリは、見つけられませんでした。