Natural-language-toolkit-introduction
自然言語ツールキット-はじめに
自然言語処理(NLP)とは何ですか?
人間が話す、読む、書くことができる助けを借りてコミュニケーションする方法は言語です。 つまり、人間は自然言語で考え、計画を立て、意思決定を行うことができます。 ここでの大きな問題は、人工知能、機械学習、ディープラーニングの時代に、人間は自然言語でコンピュータ/機械と通信できるかということです。 コンピュータは構造化データを必要とするため、NLPアプリケーションの開発は私たちにとって大きな課題ですが、一方で、人間の発話は構造化されておらず、多くの場合あいまいです。
自然言語とは、コンピューターサイエンス、より具体的にはAIのサブフィールドであり、コンピューター/マシンが人間の言語を理解、処理、および操作できるようにします。 簡単に言うと、NLPは、ヒンディー語、英語、フランス語、オランダ語などの人間の自然言語から意味を分析、理解、および導出するためのマシンの方法です。
それはどのように機能しますか?
NLPの動作について詳しく説明する前に、人間が言語をどのように使用しているかを理解する必要があります。 私たち人間は毎日数百または数千の単語を使用し、他の人間はそれらを解釈してそれに応じて答えます。 人間にとってはシンプルなコミュニケーションですね。 しかし、私たちは言葉がそれよりもはるかに深く実行されていることを知っています。 そのため、音声の変調に焦点を当てるのではなく、NLPはコンテキストパターンを利用します。
例でそれを理解しましょう-
Man is to woman as king is to what?
We can interpret it easily and answer as follows:
Man relates to king, so woman can relate to queen.
Hence the answer is Queen.
人間はどのような単語が何を意味するかをどのように知るのでしょうか? この質問への答えは、私たちの経験を通して学ぶことです。 しかし、機械/コンピュータはどのように同じことを学ぶのでしょうか?
次の簡単な手順でそれを理解しましょう-
- まず、マシンに十分なデータを提供して、マシンが経験から学習できるようにする必要があります。
- 次に、機械は、深層学習アルゴリズムを使用して、以前にフィードしたデータとその周囲のデータから単語ベクトルを作成します。
- 次に、これらの単語ベクトルに対して単純な代数演算を実行することにより、機械は人間としての答えを提供できます。
NLPのコンポーネント
次の図は、自然言語処理(NLP)のコンポーネントを表しています-
形態学的処理
形態学的処理は、NLPの最初のコンポーネントです。 言語入力のチャンクを、段落、文、単語に対応するトークンのセットに分割することも含まれます。 たとえば、“ everyday” *のような単語は、“ every-day” *のように2つのサブワードトークンに分割できます。
構文解析
2番目のコンポーネントである構文解析は、NLPの最も重要なコンポーネントの1つです。 このコンポーネントの目的は次のとおりです-
- 文章が正しいかどうかをチェックする。
- 異なる単語間の構文上の関係を示す構造に分解すること。 E.g. 「学校は生徒のところに行きます」*のような文は構文アナライザーによって拒否されます。
意味解析
セマンティック分析はNLPの3番目のコンポーネントであり、テキストの意味をチェックするために使用されます。 正確な意味を描くことも含まれますが、テキストから辞書の意味を言うこともできます。 E.g. 「これはホットアイスクリームです」のような文です。セマンティックアナライザによって破棄されます。
実用的な分析
実用的な分析は、NLPの4番目のコンポーネントです。 これには、各コンテキストに存在する実際のオブジェクトまたはイベントを、前のコンポーネントによって取得されたオブジェクト参照に合わせることが含まれます。 セマンティック分析。 E.g. *「果物をテーブルの上のバスケットに入れてください」*のような文は2つの意味解釈を持つ可能性があるため、実用的な分析者はこれら2つの可能性の中から選択します。
NLPアプリケーションの例
最近のテクノロジーであるNLPは、私たちが最近目にするさまざまな形のAIを派生させています。 今日および明日の認知がますます高まるアプリケーションでは、人間と機械の間のシームレスでインタラクティブなインターフェースの作成におけるNLPの使用が引き続き最優先事項となります。 以下は、NLPの非常に便利なアプリケーションの一部です。
機械翻訳
機械翻訳(MT)は、自然言語処理の最も重要なアプリケーションの1つです。 MTは基本的に、1つのソース言語またはテキストを別の言語に翻訳するプロセスです。 機械翻訳システムは、バイリンガルまたはマルチリンガルのいずれかです。
ファイティングスパム
迷惑メールの大幅な増加により、スパムフィルターはこの問題に対する防御の最前線であるため、重要になっています。 偽陽性と偽陰性の問題を主要な問題と見なすことにより、NLPの機能を使用してスパムフィルタリングシステムを開発できます。
N-gramモデリング、ワードステミング、ベイジアン分類は、スパムフィルタリングに使用できる既存のNLPモデルの一部です。
情報検索とウェブ検索
Google、Yahoo、Bing、WolframAlphaなどのほとんどの検索エンジンは、機械翻訳(MT)テクノロジーをNLPディープラーニングモデルに基づいています。 このような深層学習モデルにより、アルゴリズムはWebページ上のテキストを読み取り、その意味を解釈して別の言語に翻訳することができます。
自動テキスト要約
自動テキスト要約は、長いテキストドキュメントの短く正確な要約を作成する手法です。 したがって、関連情報を短時間で取得するのに役立ちます。 このデジタル時代では、インターネット上で止まらない情報の洪水が発生しているため、自動テキスト要約の深刻なニーズがあります。 NLPとその機能は、自動テキスト要約の開発に重要な役割を果たします。
文法修正
スペル修正と文法修正は、Microsoft Wordのようなワードプロセッサソフトウェアの非常に便利な機能です。 自然言語処理(NLP)は、この目的で広く使用されています。
質問応答
自然言語処理(NLP)のもう1つの主要なアプリケーションである質問応答は、ユーザーが投稿した質問に自然言語で自動的に回答するシステムの構築に焦点を当てています。
感情分析
感情分析は、自然言語処理(NLP)の重要なアプリケーションの1つです。 その名前が示すように、感情分析は次の目的で使用されます-
- 複数の投稿間で感情を特定し、
- 感情が明確に表現されていない感情を特定します。
Amazon、ebayなどのオンラインEコマース企業は、感情分析を使用して、オンラインで顧客の意見や感情を識別しています。 それは彼らが顧客が彼らの製品やサービスについてどう思うかを理解するのに役立ちます。
音声エンジン
Siri、Google Voice、Alexaなどの音声エンジンはNLPに基づいて構築されているため、自然言語で通信できます。
NLPの実装
上記のアプリケーションを構築するには、言語と言語を効率的に処理するためのツールを十分に理解している特定のスキルが必要です。 これを実現するために、さまざまなオープンソースツールを用意しています。 それらの一部はオープンソースであり、その他は独自のNLPアプリケーションを構築するために組織によって開発されています。 以下は、いくつかのNLPツールのリストです-
- 自然言語ツールキット(NLTK)
- マレット
- GATE
- NLPを開く
- UIMA
- 天才
- スタンフォードツールキット
これらのツールのほとんどはJavaで書かれています。
自然言語ツールキット(NLTK)
上記のNLPツールの中で、使いやすさとコンセプトの説明に関しては、NLTKのスコアは非常に高くなっています。 Pythonの学習曲線は非常に速く、NLTKはPythonで記述されているため、NLTKにも非常に優れた学習キットがあります。 NLTKには、トークン化、ステミング、レンマ化、句読点、文字カウント、単語カウントなどのほとんどのタスクが組み込まれています。 とてもエレガントで扱いやすいです。