PythonでのRegEx
ルールベースの情報抽出は、多くのNLPタスクで役立ちます。日付や電話番号のような特定の種類のエンティティは、はっきりとした形式を持つため、モデルを学習しなくても、いくつかのルールで認識できます。この演習では、RegExのための re パッケージを使う練習をします。目的は、与えられた text から電話番号を見つけることです。
re パッケージはすでにインポートされています。\d を使うと、0〜9の任意の数字にマッチするメタ文字を表す文字パターンに一致させられます。
この演習はコースの一部です
spaCyで学ぶNatural Language Processing
演習の手順
- 形式 (111)-111-1111 の電話番号にマッチするパターンを定義します。
re.finditer()メソッドを使って、すべての一致パターンを見つけます。- 各一致について、与えられた
textの開始位置・終了位置・一致した部分を出力します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
text = "Our phone number is (425)-123-4567."
# Define a pattern to match phone numbers
pattern = r"\((____){____}\)-(____){____}-(____){____}"
# Find all the matching patterns in the text
phones = re.____(pattern, text)
# Print start and end characters and matching section of the text
for match in phones:
start_char = match.____
end_char = match.____
print("Start character: ", ____, "| End character: ", ____, "| Matching text: ", text[____:____])