始める無料で始める

spaCy の固有表現認識器を使う

この演習では、spaCy の組み込み固有表現認識器を使って、検索クエリから人名・日付・組織名を抽出します。spaCy ライブラリはすでにインポートされており、英語モデルは nlp として読み込まれています。

extract_entities() という関数を定義しましょう。この関数は引数 message を受け取り、対象の固有表現の種類をキー、抽出した固有表現を値とする辞書を返します。対象の固有表現の種類は include_entities というリストに格納されています。

この演習はコースの一部です

Python でチャットボットを作る

コースを見る

演習の手順

  • dict.fromkeys()include_entities を引数として渡し、固有表現を格納するための辞書 ents を作成します。
  • messagenlp オブジェクトに渡して、spacy のドキュメント doc を作成します。
  • ドキュメント内の固有表現(doc.ents)を反復処理します。
  • 各固有表現の .label_ が対象のものかどうかを確認します。該当する場合は、その固有表現の .text 属性を ents 辞書の対応するキーに代入します。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Define included_entities
include_entities = ['DATE', 'ORG', 'PERSON']

# Define extract_entities()
def extract_entities(message):
    # Create a dict to hold the entities
    ents = ____
    # Create a spacy document
    doc = ____
    for ent in ____:
        if ____ in ____:
            # Save interesting entities
            ents[____] = ____
    return ents

print(extract_entities('friends called Mary who have worked at Google since 2010'))
print(extract_entities('people who graduated from MIT in 1999'))
コードを編集して実行