1. Lära sig
  2. /
  3. Courses
  4. /
  5. Python で学ぶ Natural Language Processing 入門

Connected

exercise

正規表現の練習: re.split() と re.findall()

ここでは、数字、文字列、英数字以外の文字にマッチする正規表現を書いてみます。まずは IPython シェルで my_string を表示して、中身を確認し、各ステップでどのようにマッチさせるのがよいか考えてください。

注意: 期待どおりに解釈されるよう、正規表現パターンには必ず接頭辞の r を付けることが重要です。そうしないと、文字列中のエスケープシーケンスに起因する問題が起こることがあります。たとえば、Python では "\n" は改行を表しますが、r プレフィックスを付ければ、生の文字列 "\n"、つまり文字 "\" と文字 "n" の並びとして解釈され、改行にはなりません。

正規表現モジュール re はすでにインポート済みです。

動画で学んだとおり、regex ライブラリの文法は パターンを先に、続けて 文字列を後に 渡すのが基本です。

Instruktioner

100 XP
  • 文の区切りごとに my_string を分割します。次を行ってください。
    • 文末記号(.?!)にマッチするパターン sentence_endings を作成します。
    • re.split() を使って、このパターンで my_string を分割し、結果を表示します。
  • my_string 中の先頭が大文字の単語をすべて見つけて表示します。パターン名は capitalized_words とし、re.findall() を使います。
    • 小文字のグループにマッチする [a-z] パターンを動画で見ましたね。大文字のグループにマッチするように適切に修正してください。
  • 1 個以上の空白("\s+")にマッチするパターン spaces を作成し、re.split() でこのパターンに基づいて my_string を分割します。句読点はすべて保持したままにします。結果を表示してください。
  • my_string 中の数字をすべて見つけます。パターン名は digits("\d+")とし、re.findall() を使います。結果を表示してください。