2

Treetagger は、次のドイツ語の例のように、POS タグ付けとテキスト チャンキングを行うことができます。これは、動詞節と名義節を抽出することを意味します。

$ echo 'Das ist ein Test.' | cmd/tagger-chunker-german
    reading parameters ...
    tagging ...
     finished.
<NC>
Das PDS die
</NC>
<VC>
ist VAFIN   sein
</VC>
<NC>
ein ART eine
Test    NN  Test
</NC>
.   $.  .

Python で Treetaggerwrapper を使用してこれを行う方法を理解しようとしています (Treetagger を直接呼び出すよりも高速であるため) が、その方法がわかりません。ドキュメントでは、チャンクを前処理と呼んでいるので、これを使用してみました:

tags = tagger.tag_text(u"Dieser Satz ist ein Satz.",prepronly=True)

しかし、出力は情報が追加されていない単なる単語のリストです。Wrapper が Chunking と呼んでいるものは、実際の tagger が Chunking と呼んでいるものとは何か違うと思い始めていますが、何かが足りないのでしょうか? どんな助けでも大歓迎です。

4

3 に答える 3

2

元のポスターは彼の仮定で正しい. treetaggerwrapper(バージョン 2.2.4 の時点で) チャンキングを単に「テキストの前処理」として定義しており、この意味で TreeTagger の機能を完全にラップしていません。からtreetaggerwrapper.py:

  • 基本の TreeTagger インストールと同様に、外部 Perl スクリプトの代わりにテキストの前処理 (チャンキング) を管理するため、テキストの一部にタグを付ける必要があるたびに Perl を起動する必要がなくなります。

しかし、調べtagger-chunker-germanてみると、句タグの取得は一連の操作であり、実際には TreeTagger を 3 回呼び出していることがわかります。

$ echo 'Das ist ein Test.' | cmd/tree-tagger-german | perl -nae 'if ($#F==0){print} else {print "$F[0]-$F[1]\n"}' | bin/tree-tagger lib/german-chunker.par -token -sgml -eps 0.00000001 -hyphen-heuristics -quiet | cmd/filter-chunker-output-german.perl | bin/tree-tagger -quiet -token -lemma -sgml lib/german-utf8.par

一方、treetaggerwrapperのタグ付けコマンド ( に示されているtagcmdlist) は、実際には (テキストの独自の前処理の後) 次への 1 回限りの呼び出しです。

bin/tree-tagger -token -lemma -sgml -quiet -no-unknown lib/german-utf8.par


チャンク用に拡張するためのエントリ ポイントは、次の行です。

"tagparfile": "german-utf8.par",

次のようなものを定義する場所

"chunkingparfile": "german-chunker.par",

tagger-chunker-german操作チェーンに続いて、この別のパーファイルを使用して TreeTagger への追加の呼び出しを発行します。ただし、おそらく追加のロジックをコピーする必要がcmd/filter-chunker-output-german.perlあります。

于 2016-09-23T14:19:24.337 に答える