TOPNetwork > 飛躍的に進化する自然言語処理について知る(中)

Network

飛躍的に進化する自然言語処理について知る(中)

2019/06/19

Martin Heller InfoWorld

自然言語処理のタスク

 自然言語処理の主要なタスクとしては、機械翻訳のほかに、自動要約、共参照解析(代名詞などの指示表現がどれを指すか判断する)、固有表現抽出(人名や地名などのエンティティーを特定する)、自然言語生成(人間が読んで分かる言語に情報を変換する)、自然言語理解(テキストから意味を抽出して一階述語論理などの形式表現に変換する)、品詞タグ付け(各単語の品詞を同定する)、感情分析(対象の文章が肯定的か否定的かを判断する)、音声認識(音声をテキストに変換する)などがある。

 主要なタスクの多くは、さらに細かいサブタスクに分割される。ただし、最新のニューラルネットワークベースの自然言語システムは中間段階を通過する場合もある。例えば、Googleが「Translatotron」と呼ぶ実験的通訳ツールは、スペイン語の音声をリアルタイムで英語音声に変換する。音声スペクトルを解析する手法を採用し、従来のように音声をテキストに書き出してテキストを翻訳し、それを音声で読み上げるという段階を踏む必要がない。Translatotronの精度はまだそれほど高くないが、実証実験としては十分な結果を示している。

自然言語処理の解決策

 他の機械学習の問題と同じように、自然言語処理の問題も通常、一連の手順をパイプライン化して解決する。手順のほとんどは、モデリング用のデータ準備を目的としたものだ。データサイエンティストのDipanjan(DJ)Sarkar氏は、Pythonを使った素晴らしいNLPチュートリアルを公開している。そこでSarkar氏が示している標準的なワークフローは次のようなものだ。テキストの前処理→テキストのパースと予備的データ分析→テキストの表現と特徴量エンジニアリング→モデリングおよび/またはパターンの抽出→評価と実装。

 Sarkar氏は、Pythonライブラリ「Beautiful Soup」を使って、Webサイトからテキストを抽出し、「Natural Language Toolkit(NLTK)」と「spaCy」を使用して、抽出したテキストを前処理する。トークン化、ステミング、レンマ化を実行し、さらにストップワードの削除、短縮形の修正を行う。引き続きNLTKとspaCyで、音声部分のタグ付け、浅い構文解析、Ngramの作成(unigram、bigram、trigram)を進める。NLTKと「Stanford Parser」を用いて解析木を生成し、spaCyで依存木の生成と固有表現抽出を実行する。

翻訳:鈴木英子=ニューズフロント

↑ページ先頭へ