NLTK の POS タグ付けおよび見出し語化関数に渡して、他の言語を処理させるオプションはありません。
1 つの解決策は、各言語のトレーニング コーパスを取得し、独自の POS タガーを NLTK でトレーニングしてから、言語ごとに、おそらく辞書ベースの見出し語化ソリューションを見つけることです。
ただし、イタリア語、フランス語、スペイン語、ドイツ語 (および他の多くの言語) の両方のタスクに対する単一のソリューションが既に存在するため、これはやり過ぎかもしれません: TreeTagger . 英語の POS タガーやレンマタイザーほど最新ではありませんが、それでも十分に機能します。
必要なのは、システムに TreeTagger をインストールして、Python から呼び出すことができるようにすることです。これは、まさにそれを可能にする miottoによる GitHub リポジトリーです。
次のスニペットは、すべてが正しく設定されていることをテストする方法を示しています。ご覧のとおり、1 回の関数呼び出しで POS タグ付けと見出し語化を行うことができ、英語でもフランス語でも同じように簡単に行うことができます。
>>> import os
>>> os.environ['TREETAGGER'] = "/opt/treetagger/cmd" # Or wherever you installed TreeTagger
>>> from treetagger import TreeTagger
>>> tt_en = TreeTagger(encoding='utf-8', language='english')
>>> tt_en.tag('Does this thing even work?')
[[u'Does', u'VBZ', u'do'], [u'this', u'DT', u'this'], [u'thing', u'NN', u'thing'], [u'even', u'RB', u'even'], [u'work', u'VB', u'work'], [u'?', u'SENT', u'?']]
>>> tt_fr = TreeTagger(encoding='utf-8', language='french')
>>> tt_fr.tag(u'Mon Dieu, faites que ça marche!')
[[u'Mon', u'DET:POS', u'mon'], [u'Dieu', u'NOM', u'Dieu'], [u',', u'PUN', u','], [u'faites', u'VER:pres', u'faire'], [u'que', u'KON', u'que'], [u'\xe7a', u'PRO:DEM', u'cela'], [u'marche', u'NOM', u'marche'], [u'!', u'SENT', u'!']]
この質問はよく聞かれるので (そして、インストール プロセスは非常に簡単ではないため、IMO から)、この問題に関するブログ投稿を書き、完了したらすぐにこの回答へのリンクを付けて更新します。
編集:
これは上記のブログ投稿です。