おそらくnltk に関する GoogleCode の本をすでに見たことがあるでしょう。私は自分で非常にゆっくりと作業を進めてきました.POSタグ付けにはまだ取り組んでいませんが、ツールを使用するのに十分熟達したときに最終的にやりたいことの1つです. いずれにしても、第 5 章のセクション 2 では、タグ付きトークンの独自のセットを作成するための次のテキストと例を取得します (すべての人に申し訳ありませんが、テキストから直接コピーしました)。
>>> tagged_token = nltk.tag.str2tuple('fly/NN')
>>> tagged_token
('fly', 'NN')
>>> tagged_token[0]
'fly'
>>> tagged_token[1]
'NN'
5.2 からの続き:
タグ付きトークンのリストを文字列から直接作成できます。最初のステップは、文字列をトークン化して個々の単語/タグ文字列にアクセスし、次にこれらのそれぞれを (str2tuple() を使用して) タプルに変換することです。
>>> sent = '''
... The/AT grand/JJ jury/NN commented/VBD on/IN a/AT number/NN of/IN
... other/AP topics/NNS ,/, AMONG/IN them/PPO the/AT Atlanta/NP and/CC
... Fulton/NP-tl County/NN-tl purchasing/VBG departments/NNS which/WDT it/PPS
... said/VBD ``/`` ARE/BER well/QL operated/VBN and/CC follow/VB generally/RB
... accepted/VBN practices/NNS which/WDT inure/VB to/IN the/AT best/JJT
... interest/NN of/IN both/ABX governments/NNS ''/'' ./.
... '''
>>> [nltk.tag.str2tuple(t) for t in sent.split()]
[('The', 'AT'), ('grand', 'JJ'), ('jury', 'NN'), ('commented', 'VBD'), ('on', 'IN'), ('a', 'AT'), ('number', 'NN'), ... ('.', '.')]
上記の「送信された」変数は、実際には生のタグ付きテキストのように見えます。これは、自分のコンピューターの nltk_data ディレクトリに移動し、corpora/brown/ 内の何かを調べることで確認できるため、このフォーマットを使用して独自のタグ付きテキストを作成し、次に、それを使用して独自のタグ付きトークンのセットを構築します。
独自のタグ付きトークンをセットアップしたら、タグ付きトークンに基づいて独自のユニグラム タガーをセットアップできるはずです (5.5 以降)。
>>>unigram_tagger = nltk.UnigramTagger(YOUR_OWN_TAGGED_TOKENS)
最後に、タグ付けされたテキストは非常に小さなサンプル (したがって不正確) である可能性が高いため、フォールバック タガーをリストして、失敗したときにフォールバックが助けになるようにすることができます。
>>> t0 = nltk.UnigramTagger(a_bigger_set_of_tagged_tokens)
>>> t1 = nltk.UnigramTagger(your_own_tagged_tokens, backoff=t0)
最後に、前述の第 5 章で説明した、n グラムの違い、バイグラム、ユニグラムなどを調べる必要があります。
いずれにせよ、第 5 章まで読み進めると、テキストにタグを付けるいくつかの異なる方法が表示されます (私のお気に入りである正規表現タガーも含まれます!)。これを行うには多くの方法があり、複雑すぎてこのような短い投稿で十分にカバーできません。
emptor の警告: 私はこのコードのすべてを試したわけではないので、解決しようとしている解決策として提供します。私が間違いを犯した場合は、それらを修正するのを手伝ってください.