هل هناك خوارزمية تحكي التشابه الدلالي بين عبارتين

StackOverflow https://stackoverflow.com/questions/62328

  •  09-06-2019
  •  | 
  •  

سؤال

مدخل:العبارة 1، العبارة 2

انتاج:قيمة التشابه الدلالي (بين 0 و 1)، أو احتمال أن تتحدث هاتان العبارتان عن نفس الشيء

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

المحلول


قد ترغب في الاطلاع على هذه الورقة:

تشابه الجملة على أساس الشبكات الدلالية وإحصائيات المجموعة (PDF)

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

أنت لا تقدم الكثير من السياق لذا لا يمكنني بالضرورة أن أوصي بهذا ولكن قراءة الورقة قد تكون مفيدة لك في فهم كيفية معالجة المشكلة.

يعتبر،

غير لامع.

نصائح أخرى

هناك إجابة قصيرة وطويلة على هذا.

الجواب القصير:

استخدم ال WordNet :: حزمة بيرل التشابه.إذا لم تكن لغة Perl هي اللغة التي تختارها، فتحقق من صفحة مشروع WordNet في برينستون، أو جوجل لمكتبة المجمع.

الجواب الطويل:

يعد تحديد تشابه الكلمات مسألة معقدة، ولا يزال البحث ساخنًا جدًا في هذا المجال.لحساب التشابه، تحتاج إلى تمثيل مناسب لل معنى من كلمة.ولكن ما هو تمثيل معنى "كرسي" على سبيل المثال؟في الحقيقة ماذا يكون المعنى الدقيق لكلمة "كرسي"؟إذا فكرت طويلاً وبعمق في هذا الأمر، فسوف يحرف عقلك، وسوف تصاب بالجنون قليلاً، وأخيراً ستبدأ في مهنة البحث في الفلسفة أو اللغويات الحاسوبية للعثور على الحقيقة™.لقد حاول كل من الفلاسفة واللغويين التوصل إلى إجابة لآلاف السنين، وليس هناك نهاية في الأفق.

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

قد ترغب في التحقق من وردنت مشروع في جامعة برينستون.أحد الأساليب المحتملة لذلك هو تشغيل كل عبارة أولاً من خلال قائمة الكلمات المتوقفة (لإزالة الكلمات "الشائعة" مثل "a" و"to" و"the" وما إلى ذلك) ثم لكل كلمة من الكلمات المتبقية في في كل عبارة، يمكنك حساب "التشابه" الدلالي بين كل كلمة في العبارة الأخرى باستخدام مقياس المسافة المعتمد على WordNet.يمكن أن يكون قياس المسافة شيئًا مثل:عدد الأقواس التي يجب عليك المرور بها في WordNet للانتقال من كلمة 1 إلى كلمة 2.

آسف هذا هو مستوى عال جدا.من الواضح أنني لم أحاول هذا أبدًا.مجرد فكرة سريعة.

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

لأي شخص يأتي للتو إلى هذا، أود أن أقترح إلقاء نظرة على SEMILAR - http://www.semanticsimilarity.org/ .إنهم يطبقون الكثير من طرق البحث الحديثة لحساب تشابه الكلمات والجمل.هو مكتوب في جافا.

تأتي SEMILAR API مع طرق تشابه متنوعة تعتمد على Wordnet، والتحليل الدلالي الكامن (LSA)، وتخصيص Dirichlet الكامن (LDA)، وBLEU، وMeteor، والمعلومات المتبادلة النقطية (PMI)، والأساليب القائمة على التبعية، والأساليب المحسنة القائمة على التعيين التربيعي، وما إلى ذلك.وتعمل طرق التشابه بتفاصيل مختلفة - كلمة لكلمة، أو جملة لجملة، أو نصوص أكبر.

آسف للبحث عن سؤال عمره 6 سنوات، ولكن بما أنني صادفت هذا المنشور اليوم، فسوف أقدم إجابة في حالة بحث أي شخص آخر عن شيء مماثل.

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

أحد الحلول البسيطة هو استخدام المنتج النقطي لمتجهات الأحرف n-gram.يعد هذا أمرًا قويًا في طلب التغييرات (وهو ما لا يتم تعديله في العديد من مقاييس المسافة) ويلتقط العديد من المشكلات المتعلقة بالقطع.كما أنه يمنع مشكلة الذكاء الاصطناعي الكاملة المتمثلة في الفهم الدلالي الكامل.

لحساب متجه n-gram، ما عليك سوى اختيار قيمة n (على سبيل المثال، 3)، وتجزئة كل تسلسل مكون من 3 كلمات في العبارة إلى متجه.قم بتطبيع المتجه إلى وحدة الطول، ثم خذ المنتج النقطي للمتجهات المختلفة لاكتشاف التشابه.

وقد تم وصف هذا النهج فيج.ميتشل و م.لاباتا، “التركيب في النماذج التوزيعية للدلالات،” العلوم المعرفية، المجلد.34، لا.8، ص.1388–1429، نوفمبر.2010.، DOI 10.1111/j.1551-6709.2010.01106.x

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

1) تمنحك خوارزمية smith-waterman قياس التشابه بين سلسلتين.2) لقد قمنا بمراجعة خوارزمية سميث ووترمان ووجدناها جيدة بما يكفي لمشروعنا.

حقيقة أن الجملتين تشتركان في الكلمات "smith-waterman" والكلمات "algorithms" (وهي ليست شائعة مثل "and" أو "or" وما إلى ذلك)، ستسمح لك بالقول إن الجملتين قد تكونان بالفعل أن نتحدث عن نفس الموضوع.

وخلاصة القول، أود أن أقترح عليك إلقاء نظرة على:1) تدابير تشابه السلسلة؛2) الأساليب الإحصائية.

أتمنى أن يساعدك هذا.

يحاول سيمسيرفيس, ، والذي يوفر خدمة لحساب الكلمات المتشابهة وتشابه العبارة.

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

نلقي نظرة على http://mkusner.github.io/publications/WMD.pdf تصف هذه الورقة خوارزمية تسمى مسافة محرك الكلمات والتي تحاول الكشف عن التشابه الدلالي.وهو يعتمد على درجات التشابه التي تمليها word2vec.يؤدي دمج هذا مع GoogleNews-vectors-negative300 إلى نتائج مرغوبة.

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