PythonのNLTKライブラリは堅牢な文トークン化器と品詞タグ付け器を特徴としています。 Python にはネイティブのトークナイザーである .split()
関数があり、セパレーターを渡すと、そのセパレーター上で関数が呼び出された文字列を分割します。 NLTK のトークナイザーは、より堅牢です。 これは、文章を単語と句読点にトークン化します。 次のコードがあるとします:
それは文 Can you please buy me an Arizona Ice Tea? It's .99."
を次のようにトークナイズします。
トークナイザーは's
, '$'
, 0.99
, .
を個別のトークンとして扱うことに注意してください。 これは、短縮形には独自の意味と品詞があるため、重要なことです。そこで、NLTKライブラリの次の部分である品詞タグ付け器を紹介します。 NLTKライブラリの品詞タグ付け器は、特定の単語に対して特定のタグを出力する。 品詞タグの一覧は以下のとおりで、それぞれの品詞が何を表しているのか、例示しています。
- CC coordinated conjunction
- CD cardinal digit
- DT determiner
- EX existential there(like: “there is” … 存在する」のように考える)
- FW 外来語
- IN 前置詞・従属接続詞
- JJ 形容詞「大きい」
- JR 形容詞、比較級「大きい」
- JS 形容詞, 最上級の「最大」
- LS リストマーカー1)
- MD modal could, will
- NN 名詞、単数形「机」
- NNS 名詞複数形「机」
- NNP 固有名詞. 単数形 ‘Harrison’
- NNPS 固有名詞、複数形 ‘Americans’
- PDT 前提詞 ‘all the kids’
- POS 所有語尾 parent’s
- PRP person pronoun I, he, she
- PRP$ possessive pronoun my, his, hers
- RB adverb very, silently,
- RBR adverb, comparative better
- RBS adverb, superlative best
- RP particle give up
- TO, to go ‘to’ store.To, to ‘to’は、店へ行く。
- UH interjection, errrrrrm
- VB verb, base form take
- VBD verb, past tense took
- VBG verb, gerund/present participle taking
- VBN verb, past participle taken
- VBP verb, sing.present, non-3d take
- VBZ verb, third person sing.taken
- VBG verb, gerund/present participle taking
- VBG verb, gerund/present participle taking
- VBG ver. present takes
- WDT wh-determiner which
- WP wh-pronoun who, what
- WP$ possessive wh-pronoun whose
- WRB wh-abverb where, when
上のコードの5行目でわかるように、.NETは、.NETと.NETを統合することで、.NETを使用することができます。pos_tag()
関数は、タグ付けのためにトークン化された文章を渡される必要があります。 タグ付けは、NLTK ライブラリで学習されたモデルによって行われます。 付属の品詞タグ付けツールは完璧ではありませんが、かなり正確な結果が得られます。 上記と同じ文を使用した場合の出力は次のとおりです。
品詞タグ付けは、構文解析および意味解析において重要です。 つまり、上記の文のように、単語 can
にはいくつかの意味的な意味があります。 1 つは質問形成のための修飾語、もう 1 つは食べ物や液体を入れる容器、さらにもう 1 つは何かをする能力を示す動詞です。 このような単語に特定の意味を与えることで、プログラムは意味解析と構文解析の両方で正しい方法でその単語を扱うことができるようになる
。