spaCyの品詞ラベル(POS)一覧(日本語訳)【自然言語処理, Python】
- 作成日: 2021-03-03
- 更新日: 2023-12-24
- カテゴリ: 自然言語処理
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
これらのオブジェクトは整数です。
たとえばVERB
をprint()
で出力すると↓のように出力されます。
100
これらの品詞オブジェクトはトークンの持つ属性pos
と比較することができます。
token.pos == VERB
また、品詞オブジェクトを使わずに文字列で比較したい場合はトークンのpos_
属性を参照します。
token.pos_ == 'VERB'
spaCyの品詞の解析方法
spaCyで品詞を解析するには、トークンの持つpos
かpos_
属性を参照します。
例えば動詞の単語を抽出したい場合は↓のようなコードになります。
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で解析して、その文章内の動詞を出力しています。
↑のコードを実行すると↓のような結果になります
歩く