البرمجة

حساب التطابقات بين سلاسل النصوص باستخدام Python و pandas

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

في البداية، يُفضل استخدام مكتبة Python المتقدمة “pandas” للتعامل مع الإطارات البيانية. يمكنك بسهولة قراءة السلاسل من الإطار البياني ومن ثم استخدام دالة مخصصة لحساب عدد التطابقات. فيما يلي رمز بسيط يستخدم الأداة المساعدة “difflib” لتحقيق ذلك:

python
import pandas as pd from difflib import SequenceMatcher # الدالة لحساب عدد التطابقات def count_matches(str1, str2, n): words1 = str1.split() words2 = str2.split() matches = 0 for i in range(len(words1) - n + 1): ngram1 = ' '.join(words1[i:i + n]) for j in range(len(words2) - n + 1): ngram2 = ' '.join(words2[j:j + n]) similarity_ratio = SequenceMatcher(None, ngram1, ngram2).ratio() if similarity_ratio >= 0.8: # يمكنك ضبط هذا الحد حسب الحاجة matches += 1 return matches # البيانات data = {'string1': ["USA Canada UK Australia Japan India"], 'string2': ["USA Canada India UK Australia China Brazil France"]} # تحويل البيانات إلى إطار بيانات df = pd.DataFrame(data) # حساب عدد التطابقات single_word_matches = count_matches(df['string1'].iloc[0], df['string2'].iloc[0], 1) two_word_matches = count_matches(df['string1'].iloc [0], df['string2'].iloc[0], 2) # عرض النتائج print(f"Single word match count = {single_word_matches}") print(f"Two word match count = {two_word_matches}") # يمكنك تكرار الخطوات السابقة للتحقق من التطابقات لعدد الكلمات الأكبر

هذا الرمز يعتمد على استخدام SequenceMatcher لحساب نسبة التشابه بين n-gram في السلسلتين. يمكنك تعديل الحد الأدنى للتشابه والتي تناسب احتياجاتك.

بهذا الشكل، يمكنك تطبيق هذه الوظيفة على إطارات البيانات الأكبر والعديد من السيناريوهات المختلفة.

المزيد من المعلومات

بالطبع، دعنا نوسع على الحلاقة المُقدمة ونقدم المزيد من المعلومات بشكل أفصل.

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

  1. استخدام مكتبة pandas: قمنا باستخدام مكتبة pandas لتحويل البيانات إلى إطار بيانات. هذا يجعل من السهل استيراد وتنظيم البيانات، خاصةً عند التعامل مع مجموعة كبيرة من السجلات.

  2. استخدام difflib.SequenceMatcher: هذه المكتبة توفر وظائف لحساب نسب التشابه بين سلاسل النصوص. في الحلاقة المُقدمة، استخدمناها لحساب نسب التشابه بين n-gram في السلاسل.

  3. تحليل السلاسل: قمنا بتحليل السلاسل إلى كلمات باستخدام الدالة split()، مما يتيح لنا الوصول إلى n-gram ومقارنتها بين السلسلتين.

  4. ضبط الحد الأدنى للتشابه: في الكود السابق، يمكنك ضبط الحد الأدنى لنسبة التشابه (0.8 في الرمز) وفقًا لاحتياجاتك. يُفضل تجربة مختلف القيم للوصول إلى الحد الأمثل لتطابقك.

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

عند استخدام هذه الطريقة، يمكنك تحليل بياناتك بشكل فعال وفعّال، وتعديل الكود بناءً على متطلبات مشروعك.

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر