私は現在、NLTKを使用して汎用(または実用的な範囲で)POSタガーを構築しようとしています。トレーニングのためにブラウンとツリーバンクのコーパスに手を出しましたが、おそらくツリーバンクのコーパスに落ち着くでしょう。
学習しながら、分類子POSタガーが最も正確であることがわかりました。Maximum Entity分類器は最も正確であることが意図されていますが、非常に多くのメモリ(および処理時間)を使用するため、トレーニングデータセットを大幅に削減する必要があるため、デフォルトの単純ベイズ分類器を使用するよりも最終結果の精度が低くなります。
MEGAMを使用することをお勧めします。NLTKはMEGAMをある程度サポートしていますが、私が見つけたすべての例は、より具体的なPOSタガーではなく、一般的な分類子(たとえば、単語の特徴のベクトルを使用するテキスト分類子)を対象としています。独自のPOS特徴抽出器とコンパイラーを再作成する必要はありません(つまり、すでにNLTKにあるものを使用することを好みます)。MEGAMMaxEnt分類器をどのように使用できますか?つまり。次の行に沿っている既存のMaxEntコードにドロップするにはどうすればよいですか?
maxent_tagger = ClassifierBasedPOSTagger(train=training_sentences,
classifier_builder=MaxentClassifier.train )