FrontPage

TreeTagger Wrapper for Python (2022-03)

  • Python で TreeTagger を使うには以下のようにする:
  • TreeTagger のインストールは通常通りだが、以下の wrapper が treetagger のディレクトリを探すので、"TreeTagger" というディレクトリを作ってそこに格納するか、treetaggerwrapper.py ファイルが置かれるのと同じディレクトリにあると間違いない。
  • pip でwrapper をインストール
pip install treetaggerwrapper
  • Jupytor Notebook などで以下のコードでテスト
# TreeTagger Wrapper Test

import treetaggerwrapper as ttw

tagger = ttw.TreeTagger(TAGLANG='en')
tags = tagger.tag_text('I have a pen.')
print(tags)
  • Output は以下のように1単語が表層形-品詞-レンマの要素をもつPython のデータ型では、「リスト」になる:
['I\tPNP\ti', 'have\tVHB\thave', 'a\tAT0\ta', 'pen\tNN1\tpen', '.\tSENT\t.']
  • ファイルをタグづけはこちら:
tags = tagger.tag_file('newfile.txt')
  • ファイルの入出力はこれで:
tagger.tag_file_to('newfile.txt', 'outfile.txt')
  • 詳しいドキュメントはこちら

TreeTagger の連続実行

Mac OS X

デフォルトではTreeTagger は1ファイルのみしか処理できないので、シェルスクリプトで連続実行できるようにする

for fn in *.txt; do ./cmd/tree-tagger-english ${fn} > ${fn}.pos; done

これは Mac OS X 上でのシェルスクリプトの例。ディレクトリ構造および TreeTagger のコマンドが Windows とは異なるかもしれない。

同一ディレクトリ内のすべての *.txt ファイルを、TreeTagger にかけて、*.pos という拡張子のファイルに変換するコマンド。

Windows

以下のバッチ・ファイルをディレクトリ名だけ変更して bin の下に置いて実行

rem TreeTagger (Windows version) を複数ファイルに連続実行させるバッチ・ファイル

@echo off

for %%f in (C:\Users\tono\Tools\TreeTagger\bin\*.txt) do tag-english %%f > %%f.pos.txt

現在,自分が使っているバッチファイルは以下の通り:

@echo off
for %%A in (%1) do tag-english %%A > %%A.tag
md tagged
move %%A.tag tagged > nul
  • %1 は引数なので,ここにファイル名を *.txt のように指定する。
  • tag-englishがどこでも動くように,環境変数でPATHを切っておくこと
  • 同一ディレクトリに tagged というフォルダを作り,そこに移動するというのが3行名以下のコマンド

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2022-03-29 (火) 07:50:39 (981d)