17

NLTK(Natural Language Toolkit)をGoogleAppEngineで動作させるようにしています。私が従った手順は次のとおりです。

  1. インストーラーをダウンロードして実行します(Macを使用しているので.dmgファイル)。
  2. python site-packagesディレクトリからnltkフォルダをコピーし、プロジェクトフォルダのサブフォルダとして配置します。
  3. nltkサブフォルダーを含むフォルダーにPythonモジュールを作成し、次の行を追加します。from nltk.tokenize import *

残念ながら、起動後にこのエラーが発生します(このエラーはNLTKの奥深くで発生し、GAEプロジェクトのサブフォルダーにあるものとは対照的にPythonのシステムインストールで表示されることに注意してください):

 <type 'exceptions.ImportError'>: No module named nltk
Traceback (most recent call last):
  File "/base/data/home/apps/xxxx/1.335654715894946084/main.py", line 13, in <module>
    from lingua import reducer
  File "/base/data/home/apps/xxxx/1.335654715894946084/lingua/reducer.py", line 11, in <module>
    from nltk.tokenizer import *
  File "/base/data/home/apps/xxxx/1.335654715894946084/lingua/nltk/__init__.py", line 73, in <module>
    from internals import config_java
  File "/base/data/home/apps/xxxx/1.335654715894946084/lingua/nltk/internals.py", line 19, in <module>
    from nltk import __file__

注:これは、GAEにアップロードしたときにログでエラーがどのように表示されるかを示しています。ローカルで実行すると、同じエラーが発生します(ただし、NLTKのサイトパッケージインスタンス内で発生しているようです...違いはありません)。また、「xxxx」はプロジェクト名を示します。

要約すると:

  • 私がやろうとしていることは可能ですか?NLTKはAppEngineでも実行できますか?
  • 見逃したことはありますか?つまり、「nltk」をGAEプロジェクトにコピーするだけでは不十分ですか?

編集:タイプミスを修正し、不要な手順を削除しました

4

4 に答える 4

8

oakmadは、いくつかのNLTKモジュールを GAE にデプロイすることに成功しました。お役に立てれば。しかし、しかし、正直なところ、投稿を読んでもまだ真実ではないと思います。

于 2009-08-17T10:08:31.203 に答える
4

githubでNLTK2.0.3をフォークして、アプリエンジンで実行しました。MaxEntTreebankタガーと連携するトークン化と単純なPOSタグ付け。

于 2012-10-28T16:04:08.773 に答える
4

ここでの問題は、再帰的なインポートnltkを行おうとしていることです。はそれ自体がインポートされている途中であるため、(あまり役に立たない) エラーで失敗します。彼らがしていることはとにかくかなり奇妙です - それは休憩のようなものです。nltk/__init__.pynltk/internals.pynltknltkfrom nltk import __file__

これは nltk 自体の問題のようです。Python コンソールから直接インポートすると機能しますか? もしそうなら、彼らはインストールされたバージョンで何らかのトリックをしているに違いありません。nltk グループに、彼らが何をしているのか、そしてそれを回避する方法を尋ねることをお勧めします。

于 2009-08-17T12:15:05.010 に答える
3

NLTK は、必要な C コードのアクセラレータ拡張機能を使用できない場合のフォールバック (グレースフル デグラデーション) として、純粋な Python になるよう最善を尽くしていると思います。ただし、そのようなリッチ パッケージを大胆に挿入するには、常に細心の注意を払って移動する必要があります (すべての .py ファイルを再帰的に圧縮し、zipimport を使用すると、それほど不安定ではない可能性があります)。

私がインストールした NLTK は 0.95 だと思いますが、ntlk.tokenizer はありません。nltk.tokenize があり、末尾に R はありませんが、コンピュータに正確に何を伝えようとしている場合、そのようなほんのわずかなタイプミスでさえ 100% 耐えられないことは明らかです。あなたが望むので、これはあなたの側のタイプミスではなく、NLTK の完全に異なる互換性のないリリースの使用であると思います

1文字のタイプミスに対するゼロ・トレランス・ポリシーに耐えるのが難しいと思うなら、コンピュータとそのプログラミングはあなたにとって許容できるものではないでしょう...;-)

于 2009-08-17T05:49:33.893 に答える