はじめに
自然言語処理の問題集として有名な言語処理100本ノックの2020年版が公開されました。
この記事では全100問のPythonによる回答例を紹介します。間違いやより良い方法など、お気づきの点があればぜひお気軽にコメントください。
なお、回答のノートブックはすべてgithubにて公開しています。
事前準備
回答にはGoogle Colaboratoryを利用しています。
Google Colaboratoryのセットアップ方法や基本的な使い方は、こちらの記事が詳しいです。
とはいえ、特別な設定は必要なく、Googleアカウントさえあればすぐに利用することができます。
第1章: 準備運動
テキストや文字列を扱う題材に取り組みながら,プログラミング言語のやや高度なトピックを復習します.
第2章: UNIXコマンド
研究やデータ分析において便利なUNIXツールを体験します.これらの再実装を通じて,プログラミング能力を高めつつ,既存のツールのエコシステムを体感します.
第3章: 正規表現
Wikipediaのページのマークアップ記述に正規表現を適用することで,様々な情報・知識を取り出します.
第4章: 形態素解析
夏目漱石の小説『吾輩は猫である』に形態素解析器を適用し,小説中の単語の統計を求めます.
第5章: 係り受け解析
『吾輩は猫である』に係り受け解析器を適用し,係り受け木の操作と統語的な分析を体験します.
第6章: 機械学習
文書分類器を機械学習で構築します.さらに,機械学習手法の評価方法を学びます.
第7章: 単語ベクトル
単語の類似度計算や単語アナロジーなどを通して,単語ベクトルの取り扱いを修得します.さらに,クラスタリングやベクトルの可視化を体験します.
第8章: ニューラルネット
深層学習フレームワークの使い方を学び,ニューラルネットワークに基づくカテゴリ分類を実装します.
回答準備中
第9章: RNN, CNN
深層学習フレームワークを用い,再帰型ニューラルネットワーク(RNN)や畳み込みニューラルネットワーク(CNN)を実装します.
回答準備中
第10章: 機械翻訳
既存のツールを活用し,ニューラル機械翻訳モデルを構築します.
回答準備中
おわりに
言語処理100本ノックは自然言語処理そのものだけでなく、基本的なデータ処理や汎用的な機械学習についてもしっかり学ぶことができるように作られています。
オンラインコースなどで機械学習を勉強中の方も、とても良いアウトプットの練習になると思いますので、ぜひ挑戦してみてください。