Sumaya Alazree نشر 29 نوفمبر 2020 أرسل تقرير نشر 29 نوفمبر 2020 السلام عليكم احتاج لحساب التشابه الدلالي semantic similarity بين نصين في لغة بايثون كيف استطيع استخراج الافعال من الجملة وقياس التشابة مع افعال الجملة الثانية وكذلك للاسماء والصفات وغيرها من اقسام الجمل على سبيل المثال تنفيذ المعادلة في كود بلغة بايثون similarity= sim verb+sim noun ارجو المساعدة اقتباس
0 zonasabri نشر 29 نوفمبر 2020 أرسل تقرير نشر 29 نوفمبر 2020 (معدل) يتم تنفيذ أغلب الأعمال القائمة علي تحليل النصوص في البرمجة بكتابة أكواد برمجية تحتوي على الخطوات المنطقية و بمساعدة تقنيات مثل RegEx او Regular expression يمكن الوصول إلي نتائج جيده جداً و ذلك يعتمد و بشكر كبير قوة شفرتك البرمجية. تم التعديل في 29 نوفمبر 2020 بواسطة zonasabri اقتباس
0 Omar Haddad2 نشر 2 ديسمبر 2020 أرسل تقرير نشر 2 ديسمبر 2020 تتو فر العديد من المكتبات في بايثون للعمليات المختلفة التي من الممكن القيام بها ضمن مجال معالجة اللغات الطبيعية ومعالجة النصوص. يوجد مكتبتين مهمتين: مجموعة أدوات اللغات الطبيعية (Natural Language Toolkit (NLTK: وهي مكتبة مجانية مفتوحة المصدر، تتضمن المهام الأساسية في معالجة اللغات الطبيعية والنصوص من الحصول على الوحدات اللغوية (Tokenization) إلى التجذيع (stemming) وصولاً التنبؤ بأقسام الكلام (Part of Speech tagging) و الاستنتاج الدلالي (semantic reasoning) وغيرها العديد من المهام اللغوية. ويمكن التثبيت بهذا الأمر: pip install --user -U nltk * ولكن تطلب المكتبة توفر المكتبة العددية لبايثون numpy، لذا في حال عدم توفرها مسبقا على الجهاز يجب تثبيتها: pip install --user -U numpy يمكن الاطلاع على الموقع الرسمي للمكتبة حيث يتوافر توثيق جيد لها. مكتبة جينسم Gensim: وهي مكتبة مجانية مفتوحة المصدر كذلك، تتضمن توابع تساعد على تحديد التشابه الدلالي فيما بين النصوص، ويمكن التثبيت بهذا الأمر : pip install -U gensim * هذه المكتبة كذلك تتطلب توافر المكتبة العددية لبايثون numpyويمكن الاطلاع على الموقع الرسمي للمكتبة و حيث يتوافر توثيق جيد لها. اقتباس
0 Ali Haidar Ahmad نشر 22 مارس 2022 أرسل تقرير نشر 22 مارس 2022 بدايةً لا أتفق مع الإجابة، حيث أن RegEx (Regular expression) لن تفيدك في هكذا أمر. بالنسبة لسؤالك الأول "حساب التشابه الدلالي semantic similarity بين نصين": فهناك العديد من الأساليب، كل منها يعتمد على تكنيكات وخوارزميات معينة، وللحصول على نتيجة تشابه أفضل، يستخدم العديد من الباحثين التعلم العميق لتحسين العملية.هنا سأستخدم مكتبة difflib للحساب، وهي طريقة بسيطة جدًا للمبتدئين. import difflib # إنشاء دالة لحساب التشابه بين جملتين def string_similar(s1, s2): return difflib.SequenceMatcher(None, s1, s2).quick_ratio() # بفرض لدينا الجملتين التاليتين s1 = 'i love this book' s2 = 'this book is my favorite' # يمكن حساب التشابه بينهما من خلال استدعاء الدالة السابقة: print (string_similar(s1, s2)) # 0.75 # أي أن نسبة التشابه هي 75 في المئة يمكنك أيضاً استخدام مكتبة genism: import gensim # الخاص بتمثيل الكلمات word2vec تحميل نموذج model = gensim.models.KeyedVectors.load_word2vec_format('yelp-2013-embedding-200d.txt', binary=False) يمكننا الحصول على التمثيل (أو التضمين embedding) لكل كلمة في الجملة من ملف word2vec (نموذج تم إطلاقه من قبل الباحث ميكلوف في سنة 2013 وهو نموذج شهير جداً لتمثيل الكلمات). وبعد ذلك نكون حصلنا على جملة من الكلمات المُمثلة ضمن أشعة تعكس معناها الدلالي (جملة من التضمينات). بفرض لدينا الجملتين التاليتين: sen_1 = "i love this book" sen_2 = 'this book is my favorite' الآن كيف نحصل على جملة من التضمينات؟ هناك عدة طرق يمكنك التفكير فيها، سأقترح أن نقوم بعمل average لكل تضمينات الكلمات في الجملة: sen_1_words = [w for w in sen_1.split() if w in model.vocab] sen_2_words = [w for w in sen_2.split() if w in model.vocab] sim = model.n_similarity(sen_1_words, sen_2_words) print(sim) # 0.839574928046 # أي متشابهتين بنسبة 83 بالمئة # وهي نتيجة أفضل من النتييجة التي حصلنا عليها من خلال المكتبة السابقة هناك العديد من الطرق الأخرى التي يتم اقتراحها في الأوراق البحثية للقيام بهذه العملية، وبالتالي إذا أردت أن يكون حساب التشابه دقيقاً، فأنصح بقراءة آخر الأبحاث والاعتماد عليها. اقتباس
السؤال
Sumaya Alazree
السلام عليكم
احتاج لحساب التشابه الدلالي semantic similarity بين نصين في لغة بايثون
كيف استطيع استخراج الافعال من الجملة وقياس التشابة مع افعال الجملة الثانية وكذلك للاسماء والصفات وغيرها من اقسام الجمل
على سبيل المثال تنفيذ المعادلة في كود بلغة بايثون
similarity= sim verb+sim noun
ارجو المساعدة
4 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.