NLP Academy · レッスン

spaCy でエンティティを抽出する

エンティティとラベルを一覧表示する

レッスン 2/413 ステップ

「spaCy でエンティティを抽出する」はCoddyKit上の無料NLP Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはNLP Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 NLP Academyコースには全4レッスンが含まれています。

spaCyに処理してもらう

spaCyには、エンティティを見つける学習済みのNERコンポーネントが組み込まれています。テキストを渡すと、ラベル付きのSpanを受け取れます。🐍

モデルを読み込む

まず、NERを含むパイプラインを読み込みます。小さな英語モデルen_core_web_smは、手軽に始められる使いやすいモデルです。

import spacy
nlp = spacy.load("en_core_web_sm")

テキストを処理する

文字列をパイプラインに渡すと、Docオブジェクトを取得できます。Docには、トークン、文、spaCyが見つけたエンティティが格納されています。

doc = nlp("Sundar Pichai leads Google in California.")

entsプロパティ

すべてのDocには、検出されたエンティティのタプルであるdoc.entsが用意されています。これをループして、それぞれを個別に確認できます。

for ent in doc.ents:
    print(ent)

テキストを読む

各エンティティには、一致した正確な単語を保持する.text属性があります。これは文から取り出された元のSpanです。

print(ent.text)  # e.g. Sundar Pichai

ラベルを読む

.label_(末尾にアンダースコアが付く形式)を使うと、PERSON、ORG、GPEなどの読みやすいラベル文字列を取得できます。

print(ent.label_)  # e.g. PERSON

組み合わせて使う

小さなループ1つで、すべてのエンティティのテキストとラベルを出力し、文を整理された構造化データに変換できます。

for ent in doc.ents:
    print(ent.text, ent.label_)

文字位置

エンティティには、元の文字列内のオフセットであるstart_char and end_charも用意されています。後で一致箇所を強調表示するのに便利です。

print(ent.start_char, ent.end_char)

ラベルを説明する

GPEの意味を忘れましたか。spacy.explainを呼び出すと、任意のエンティティラベルについて平易な英語の説明が得られます。

spacy.explain("GPE")  # 'Countries, cities, states'

エンティティはSpan

各エンティティは、Docの一部分を表すSpanです。そのため、トークンごとにさらに詳しく調べられる小さなドキュメントのように扱えます。

リストに集める

簡単な内包表記で、すべてのエンティティをタプルのリストにまとめられます。保存、集計、レポートへの利用などにすぐ使えます。

results = [(e.text, e.label_) for e in doc.ents]

クイックチェック

読みやすいエンティティラベルを返す属性はどれでしょうか。

まとめ

モデルを読み込み、テキストに対してnlp()を実行し、doc.entsをループして.textと.label_を読み取りました。これがspaCyにおけるNERの基本です。✅

無料で開始

AI チューターと学ぶ Python — 無料

ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。

コース
30
レッスン
120

よくある質問

「spaCy でエンティティを抽出する」レッスンは無料ですか?

はい。「spaCy でエンティティを抽出する」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、NLP Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 NLP Academyコースには全4レッスンが含まれています。

「spaCy でエンティティを抽出する」で何を学びますか?

エンティティとラベルを一覧表示する ブラウザで直接実行するハンズオンコードでNLP Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

NLP Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのNLP Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。

「spaCy でエンティティを抽出する」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このNLP Academyレッスンでコードを書いて実行できますか?

はい。すべてのNLP Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. エンティティとみなされるもの
  2. spaCy でエンティティを抽出する
  3. displaCy でエンティティを可視化する
  4. カスタムエンティティルールを追加する
← NLP Academyに戻る