1. 学ぶ
  2. /
  3. コース
  4. /
  5. Python で学ぶ Natural Language Processing 入門

Connected

演習

グラフ作成の練習

新しく身につけたスキルを使って、台本の各行あたりの単語数を matplotlib で算出して可視化してみましょう。The Holy Grail の台本は読み込まれており、各行の単語を見つけるには正規表現を使う必要があります。

ここではリスト内包表記を使うと計算が高速になります。たとえば、my_lines = [tokenize(l) for l in lines] は、リスト lines の各行に対して関数 tokenize を呼び出します。変換後の新しいリストは変数 my_lines に保存されます。

台本全体は変数 holy_grail で参照できます。さあ、やってみましょう。

指示

100 XP
  • 台本 holy_grail を改行('\n')で分割して行に分けます。
  • リスト内包表記の中で re.sub() を使い、ARTHUR: や SOLDIER #1 のような発話者の表示を置換して取り除きます。パターンは用意されています。
  • regexp_tokenize() を使ったリスト内包表記で lines をトークン化し、単語のみ を保持します。単語のパターンは "\w+" です。
  • 各行の単語数のリスト line_num_words をリスト内包表記で作成します。
    • 反復変数として t_line を使い、tokenized_lines を走査して、行の長さは len() 関数で計算します。
  • plt.hist() を使って line_num_words のヒストグラムを描きます。プロットを表示するために plt.show() も忘れずに呼び出してください。