1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

言語処理100本ノック-54:品詞タグ付け

Posted at

言語処理100本ノック 2015「第6章: 英語テキストの処理」54本目「品詞タグ付け」記録です。
XML解析方法とレンマ、品詞について学びます。

参考リンク

リンク 備考
054.品詞タグ付け.ipynb 回答プログラムのGitHubリンク
素人の言語処理100本ノック:54 多くのソース部分のコピペ元
Stanford Core NLP公式 最初に見ておくStanford Core NLPのページ

環境

種類 バージョン 内容
OS Ubuntu18.04.01 LTS 仮想で動かしています
pyenv 1.2.16 複数Python環境を使うことがあるのでpyenv使っています
Python 3.8.1 pyenv上でpython3.8.1を使っています
パッケージはvenvを使って管理しています
Stanford CoreNLP 3.9.2 インストールしたのが1年前で詳しく覚えていないです・・・
1年たってもそれが最新だったのでそのまま使いました
openJDK 1.8.0_242 他目的でインストールしていたJDKをそのまま使いました

第6章: 英語テキストの処理

学習内容

Stanford Core NLPを用いた英語のテキスト処理を通じて,自然言語処理の様々な基盤技術を概観します.

Stanford Core NLP, ステミング, 品詞タグ付け, 固有表現抽出, 共参照解析, 係り受け解析, 句構造解析, S式

ノック内容

英語のテキスト(nlp.txt)に対して,以下の処理を実行せよ.

54. 品詞タグ付け

Stanford Core NLPの解析結果XMLを読み込み,単語,レンマ,品詞をタブ区切り形式で出力せよ.

課題補足(「レンマ」について)

Wikipedia 語彙素によると「レンマ」は以下のように解説されています。children にとっての childであったりgoes にとっての go が「レンマ」ですね。

語彙素(ごいそ:Lexeme)とは、言語学における形態論的単位であり、異なる形態であるが同じ語であると考えられるものからなる語の集合をいう。例えば英語のchild - children、go - goes - went - gone - going、あるいはbig - bigger - biggestは、それぞれ同じ語彙素としてまとめられる。
形態素はレンマ(Lemma、基本形:上の例でいえばそれぞれchild、go、big)で代表され、ある言語における語彙素の総体がレクシコン(Lexicon、語彙目録)である。レクシコンとレンマは一般的概念であるが、具体的なものとしては辞書と見出し語とに相当する。

回答

回答プログラム 054.品詞タグ付け.ipynb

import xml.etree.ElementTree as ET

for i, token in enumerate(ET.parse('./nlp.txt.xml').iter('token')):
    print('{}\t{}\t{}\t{}'.format(i, token.findtext('word'), 
                                  token.findtext('lemma'), token.findtext('POS')))
    
    # 多いので制限
    if i > 30:
        break

回答解説

XMLファイルのパス

以下のXMLファイルのパスと目的とする単語,レンマ,品詞のマッピングです。

出力 第1階層 第2階層 第3階層 第4階層 第5階層 第6階層 第7階層
単語 root document sentences sentence tokens token word
レンマ root document sentences sentence tokens token lemma
品詞 root document sentences sentence tokens token POS

XMLファイルはGitHubに置いています。

nlp.txt.xml(抜粋)
<root>
  <document>
    <docId>nlp.txt</docId>
    <sentences>
      <sentence id="1">
        <tokens>
          <token id="1">
            <word>Natural</word>
            <lemma>natural</lemma>
            <CharacterOffsetBegin>0</CharacterOffsetBegin>
            <CharacterOffsetEnd>7</CharacterOffsetEnd>
            <POS>JJ</POS>
            <NER>O</NER>
            <Speaker>PER0</Speaker>
          </token>
          <token id="2">
            <word>language</word>
            <lemma>language</lemma>
            <CharacterOffsetBegin>8</CharacterOffsetBegin>
            <CharacterOffsetEnd>16</CharacterOffsetEnd>
            <POS>NN</POS>
            <NER>O</NER>
            <Speaker>PER0</Speaker>
          </token>
          <token id="3">
            <word>processing</word>
            <lemma>processing</lemma>
            <CharacterOffsetBegin>17</CharacterOffsetBegin>
            <CharacterOffsetEnd>27</CharacterOffsetEnd>
            <POS>NN</POS>
            <NER>O</NER>
            <Speaker>PER0</Speaker>
          </token>

出力結果(実行結果)

プログラム実行すると以下の結果が出力されます。
ちなみにこの品詞は何を示しているのか初見でわかりません。記事「Stanford CoreNLP POSタグ まとめ」が素晴らしくまとめてくれていました!

出力結果
0	Natural	natural	JJ
1	language	language	NN
2	processing	processing	NN
3	From	from	IN
4	Wikipedia	Wikipedia	NNP
5	,	,	,
6	the	the	DT
7	free	free	JJ
8	encyclopedia	encyclopedia	NN
9	Natural	natural	JJ
10	language	language	NN
11	processing	processing	NN
12	-LRB-	-lrb-	-LRB-
13	NLP	nlp	NN
14	-RRB-	-rrb-	-RRB-
15	is	be	VBZ
16	a	a	DT
17	field	field	NN
18	of	of	IN
19	computer	computer	NN
20	science	science	NN
21	,	,	,
22	artificial	artificial	JJ
23	intelligence	intelligence	NN
24	,	,	,
25	and	and	CC
26	linguistics	linguistics	NNS
27	concerned	concern	VBN
28	with	with	IN
29	the	the	DT
30	interactions	interaction	NNS
31	between	between	IN
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?