سؤال

أحاول كتابة برنامج لإيجاد التشابه بين مستندين، وبما أنني أستخدم اللغة الإنجليزية فقط، فقد قررت استخدام Wordnet، لكن لا يمكنني العثور على طريقة لربط Wordnet مع php، ولا يمكنني العثور على أي Wordnet API من php.

رأيت في المنتدى أحد الأشخاص يقول (Spudley) أنه قام باستدعاء wordnet من php (باستخدام وظيفة shell_exec())،فئة المرادفات أو API لـ PHP [عدل]

أرغب حقًا في معرفة الطريقة المستخدمة أو بعض الأمثلة على التعليمات البرمجية، أو برنامج تعليمي ربما لبدء استخدام Wordnet مع php.

تشكرات

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

المحلول

ملحق PHP المرتبط بموقع WordNet قديم جدًا وقديم - فهو يدعي أنه يعمل مع PHP4، لذلك لا أعتقد أنه تم النظر فيه منذ سنوات.

لا توجد أي واجهات برمجة تطبيقات أخرى متاحة لـ WordNet->PHP، لذلك طرحت الحل الخاص بي.

يمكن تشغيل WordNet من سطر الأوامر، لذا فإن PHP shell_exec() وظيفة يمكن قراءة الإخراج.

إذا قمت بتشغيل WordNet من سطر الأوامر (قرص مضغوط إلى دليل Wordnet، فما عليك سوى wn) بدون أي معلمات، سيعرض لك قائمة بالوظائف المحتملة التي يدعمها Wordnet.

لا تزال في سطر الأوامر، إذا قمت بعد ذلك بتجربة إحدى/بعض هذه الوظائف، فسترى كيف يقوم Wordnet بإخراج نتائجه.على سبيل المثال، إذا كنت تريد مرادفات لكلمة "نجمة"، يمكنك تجربة -synsn وظيفة:

wn star -synsn

سيؤدي هذا إلى إنتاج مخرجات تبدو قليلاً مثل هذا:

المرادفات/Hypernyms (مرتبة حسب التكرار المقدر) للاسم نجمة

8 حواس النجم

إحساس 1 نجمة => جسد سماوي ، جسد سماوي

Sense 2 Ace ، Adept ، Champion ، Sensation ، Maven ، Mavin ، Virtuoso ، Genius ، Hotshot ، Star ، Superstar ، Whiz ، Whiz ، Wizard ، Wiz => expert

Sense 3 Star => جسد سماوي ، جسد سماوي

Sense 4 Star => Plane Figure ، الشكل ثنائي الأبعاد

Sense 5 Star ، Principal ، Lead => Actor ، Histrion ، Player ، Thespian ، Player Player

Sense 6 headliner ، star => performer ، فنان أداء

SENSE 7 ATERESTISK ، Star => Character ، Grapheme ، رمز الرسوم

Sense 8 Star Topology ، Star => Topology ، Topology Network

في PHP، يمكنك قراءة نفس الإخراج باستخدام ملف shell_exec() وظيفة.

$result = shell_exec('/path/to/wn '.$word.' -synsn');

الآن $result يجب أن تحتوي على كتلة النص المقتبسة أعلاه.

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

هذا هو المكان الذي تصبح فيه الأمور صعبة.نظرًا لأن البيانات يتم تقديمها بتنسيق مصمم ليتم قراءتها بواسطة الإنسان وليس بواسطة برنامج، فمن الصعب تحليلها بدقة.

من المهم ملاحظة أن خيارات البحث المختلفة تقدم مخرجاتها بشكل مختلف قليلاً.وبعض النتائج التي يتم إرجاعها يمكن أن تكون مقصورة على فئة معينة إلى حد ما.انتهى بي الأمر بكتابة نظام ترجيح لتسجيل النتائج، ولكنه كان محددًا إلى حد ما لاحتياجاتي، لذا ستحتاج إلى تجربته للتوصل إلى نظامك الخاص.

آمل أن يكون هذا ما يكفي من المساعدة بالنسبة لك.:)

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