ユーニックス総合研究所

  • home
  • archives
  • spacy-pos-list

spaCyの品詞ラベル(POS)一覧(日本語訳)【自然言語処理, Python】

spaCyの品詞一覧(日本語訳)

私たちが使う言語は「自然言語」と言いますが、これを計算機的に処理することを「自然言語処理」と言います。
Pythonで自然言語処理を行うにはライブラリを使います。

spaCyはこのライブラリの1つです。

spaCyを使えば日本語の文章を簡単に自然言語処理することができます。
今回はこのspaCyを使った解析で使われる品詞についてまとめました。
具体的には↓のような内容です。

  • spaCyとは?
  • 品詞とは?
  • spaCyの品詞のリスト
  • spaCyのシンボルの使い方
  • spaCyの品詞の解析方法

spaCyとは?

spaCyとはオープンソースなPythonのライブラリです。
PythonとCythonで作られていて、MITライセンスで利用することができます。
さまざまな言語の学習済みモデルを利用して自然言語を解析することができます。

spaCyで日本語の文章を解析するにはGiNZAの学習済みモデルを使います。
GiNZAはリクルートと国立国語研究所の共同研究で生まれた自然言語処理ライブラリです。

品詞とは?

「品詞」とは単語の種類のことです。
その単語が持つ機能や形態によって名前が付けられます。
英語では「Part Of Speech」略して「POS」と訳されることが多いです。

たとえばモノの名前であれば「名詞」という品詞がその単語のラベルとして付けられます。
それから動作を表す単語であれば「動詞」という品詞が単語にラベル付けされます。

つまり品詞とは複数の単語のグループ名のことです。
「名詞」と言うグループには「猫」「犬」「テーブル」などの単語が集まります。
「動詞」には「触る」「撫でる」「笑う」などの単語が集まります。

各単語は情報として品詞を持っています。
この品詞を参照することでその単語が持つ役割を把握し、活用することができます。

spaCyの品詞のリスト

2021/01/25段階でのspaCyの品詞の一覧をまとめました。
ラベルがpos, pos_で参照できる情報です。
例文では英語と日本語をピックアップしています。

ラベル 説明 例(英語) 例(日本語)
ADJ 形容詞(adjective) big, old, green, incomprehensible, first 大きい、小さい、新しい、古い、暑い、冷たい
ADP 設置詞(adposition) in, to, during ~の後に、~に、~の前に、~で
ADV 副詞(adverb) very, tomorrow, down, where, there しばらく、ゆっくりと、だいぶ、とても、少し
AUX 助動詞(auxiliary) is, has (done), will (do), should (do) ~ない、~れる、~られる、~せる、~よう、~たい、~たがる
CONJ 接続詞(conjunction) and, or, but そして、しかし、または、つまり、すなわち、要するに、例えば、いわば
CCONJ 等位接続詞(coordinating conjunction) and, or, but そして、または、しかし
DET 限定詞(determiner) a, an, the この、あの、太郎の、私の、少し、いくらかの、多くの、たくさんの
INTJ 間投詞、感嘆詞(interjection) psst, ouch, bravo, hello ああ、やあ、おい、はい、いいえ、もしもし
NOUN 名詞(noun) girl, cat, tree, air, beauty 男、犬、鶏、木、空気、雷
NUM 数詞(numeral) 1, 2017, one, seventy-seven, IV, MMXIV 1, 2017, 壱, 十九, IV, MMXIV
PART 助詞(particle) ’s, not, が、を、に、と、へ、から、より、で、や
PRON 代名詞(pronoun) I, you, he, she, myself, themselves, somebody あなた、これ、そっち、私、僕、あなた、君、どなた、どれ
PROPN 固有名詞(proper noun) Mary, John, London, NATO, HBO 日本、ロンドン、太郎、枕草子、アナと雪の女王、エッフェル塔
PUNCT 句読点(punctuation) ., (, ), ? , , ,
SCONJ 従属接続詞(subordinating conjunction) if, while, that ~こと、~かどうか、~する時、~の時に、~している間に、~以来
SYM シンボル(symbol) $, %, §, ©, +, −, ×, ÷, =, :), ????
VERB 動詞(verb) run, runs, running, eat, ate, eating 空ける、当てる、謝る、歩む、浮かべる、受ける、選ぶ、老いる、起きる
X 他(other) sfpksdpsxmsa
SPACE 空白(space)

spaCyのシンボルの使い方

spaCyで品詞のシンボルを参照するにはspacy.symbolsから品詞オブジェクトをインポートします。

たとえば↓のようにです。

from spacy.symbols import PRON, VERB  

これらのオブジェクトは整数です。
たとえばVERBprint()で出力すると↓のように出力されます。

100  

これらの品詞オブジェクトはトークンの持つ属性posと比較することができます。

token.pos == VERB  

また、品詞オブジェクトを使わずに文字列で比較したい場合はトークンのpos_属性を参照します。

token.pos_ == 'VERB'  

spaCyの品詞の解析方法

spaCyで品詞を解析するには、トークンの持つpospos_属性を参照します。
例えば動詞の単語を抽出したい場合は↓のようなコードになります。

import spacy  
from spacy.symbols import VERB  

nlp = spacy.load('ja_ginza')  
doc = nlp('猫が歩く。')  

for tok in doc:  
    if tok.pos == VERB:  
        print(tok.text)  

↑のコードでは「猫が歩く」と言う文章をspaCyで解析して、その文章内の動詞を出力しています。
↑のコードを実行すると↓のような結果になります

歩く