سؤال

لقد كنت أحاول عمل العمل NLTK (مجموعة أدوات اللغة الطبيعية) على محرك تطبيق Google. الخطوات التي اتبعتها هي:

  1. قم بتنزيل المثبت وتشغيله (ملف .dmg، كما أستخدم جهاز Mac).
  2. انسخ مجلد NLTK من دليل حزم موقع Python ووضعه كمجلد فرعي في مجلد مشروعي.
  3. قم بإنشاء وحدة بيثون في المجلد الذي يحتوي على المجلد الفرعي NLTK وإضافة السطر: from nltk.tokenize import *

لسوء الحظ، بعد تشغيله، أحصل على هذا الخطأ (لاحظ أن هذا الخطأ يتم رفعه عميقا داخل NLTK وأرى ذلك لتثبيت نظام PYTHON بدلا من ذلك في المجلد الفرعي لمشروع GAE):

 <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 على محرك التطبيق؟
  • هل هناك شيء فاتني؟ هذا هو: نسخ "NLTK" لمشروع GAE ليس كافيا؟

تحرير: مطبعي ثابت وإزالة الخطوة غير الضرورية

هل كانت مفيدة؟

المحلول

المشكلة هنا هي أن nltk يحاول القيام الواردات العودية: متى nltk/__init__.py يتم استيرادها، ويستورد nltk/internals.py, ، والتي تحاول بعد ذلك استيراد nltk تكرارا. حيث nltk في منتصف أن يتم استيراد نفسه، فهو فشل مع خطأ (غير مفيد). كل ما يفعلونه هو غريب جدا على أي حال - إنه غير صحيح from nltk import __file__ فرامل.

يبدو أن هذا مثل مشكلة مع NLTK نفسه - هل يعمل عند استيراده مباشرة من وحدة التحكم Python؟ إذا كان الأمر كذلك، فيجب أن يفعلوا نوعا من الخداع في الإصدار المثبت. أود أن أقترح السؤال على مجموعات NLTK ما يصلون إليه وكيفية العمل حولها.

نصائح أخرى

أوكماد تمكنت من العمل بنجاح من خلال النشر العديد من وحدات NLTK إلى GAE. أتمنى أن يساعدك هذا. ولكن، ولكن كن صادقا، ما زلت لا أعتقد أنه صحيح حتى بعد قراءة المنشور.

لقد شوكنا NLTK 2.0.3 على Github لتشغيله على محرك التطبيق; ؛ قمزة وعلامات نقاط البيع البسيطة تعمل مع Maxent Treebank Tagger.

NLTK، أعتقد أن أفضل ما تبذل قصارى جهده ليكون بيثون نقي كعطاس (تدهور رشيقة) عندما لا يمكن أن يكون لها ملحقات مسرع C-COMED التي ترغب في ذلك. ومع ذلك، يحتاج المرء دائما إلى التحرك مع الرعاية المنفذة لحقن بجرأة مثل هذه الحزمة الغنية (Z Shipping تصل إلى جميع ملفات .py واستخدام Zipimport قد تكون أقل تعايشا).

أنا مثبت NLTK، 0.95 أعتقد، لا يوجد لديه ntlk.tokenizer - أنه يحتوي على NLTK.Tokenize، لا صراخ، ولكن من الواضح أنه حتى أكثر دقيقة مثل هذا الخطأ المطبعي هو 100٪ لا يطاق عندما تحاول أن تخبر الكمبيوتر بالضبط ما تريد، لذلك أفترض أن هذا ليس خطأ مطبعي من جانبك بل استخدامك لإطلاق مختلف تماما وغير متوافق عن NLTK، لذلك، ماذا او ما الإصدار هو أنه يحتوي على Thampackage المسمى Tokenizer بدلا من التزامن؟

إذا وجدت أن سياسة التسامح صفرية لأطباط مطبعي واحد يصعب تحملها، فمن غير المرجح أن تكون أجهزة الكمبيوتر وبرمجةها مقبولة لك ... ؛-)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top