spaCyで学ぶNatural Language Processing
Azadeh Mobasher
Principal Data Scientist
import spacynlp = spacy.load("en_core_web_sm")doc = nlp("Here's my spaCy pipeline.")
spaCy をインポートspacy.load() で Language クラスの nlp を取得Language オブジェクトはテキスト処理パイプラインnlp() を適用して Doc コンテナを得る
spaCy は Language クラスで以下の処理を行います:
spaCy にはテキストを表す複数のデータ構造があります:
| Name | Description |
|---|---|
Doc |
テキストの言語注釈にアクセスするためのコンテナ |
Span |
Doc の一部スライス |
Token |
個々のトークン(単語、句読点、空白など) |
spaCy の言語処理パイプラインは、読み込むモデルとその機能に依存します。
| Component | Name | Description |
|---|---|---|
| Tokenizer | Tokenizer | テキストをトークンに分割し Doc を作成 |
| Tagger | Tagger | 品詞タグを付与 |
| Lemmatizer | Lemmatizer | 単語を基本形に正規化 |
| EntityRecognizer | NER | 固有表現を検出してラベル付け |
各コンポーネントは固有の機能でテキストを処理
import spacy nlp = spacy.load("en_core_web_sm") doc = nlp("Tokenization splits a sentence into its tokens.")print([token.text for token in doc])
['Tokenization', 'splits', 'a', 'sentence', 'into', 'its', 'tokens', '.']
DependencyParser コンポーネントの一部import spacy nlp = spacy.load("en_core_web_sm") text = "We are learning NLP. This course introduces spaCy." doc = nlp(text)for sent in doc.sents: print(sent.text)
We are learning NLP.
This course introduces spaCy.
import spacy nlp = spacy.load("en_core_web_sm") doc = nlp("We are seeing her after one year.")print([(token.text, token.lemma_) for token in doc])
[('We', 'we'), ('are', 'be'), ('seeing', 'see'), ('her', 'she'),
('after', 'after'), ('one', 'one'), ('year', 'year'), ('.', '.')]
spaCyで学ぶNatural Language Processing