الانتقال إلى المحتوى الرئيسي

كيفية العثور على المسافة بين سلاسل فرعية في بيثون: طريقة سهلة

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

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

للعثور على المسافة بين السلاسل الفرعية ، يمكنك استخدام وظيفة البحث عدة مرات لكل سلسلة فرعية. ثم يمكنك حساب الفرق موقف سلاسل فرعية وجدت والحصول على المسافة المطلوبة.

على سبيل المثال ، إذا كان هناك سطر "مرحبا ، العالم!"،وتحتاج إلى العثور على المسافة بين الكلمتين "مرحبا" و "العالم" ، يمكنك تطبيق وظيفة البحث مرتين ، لكل سلسلة فرعية. ثم احسب فرق موضع السلاسل الفرعية التي تم العثور عليها: موضع السلسلة الفرعية الثانية مطروحا منها موضع السلسلة الفرعية الأولى.

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

  1. طرق البحث الفرعية في بايثون
  2. باستخدام طريقة "البحث" المضمنة
  3. حساب المسافة بين السلاسل الفرعية
  4. تطبيق خوارزمية ليفنشتين
  5. سؤال وجواب
  6. كيف يمكنني العثور على المسافة بين سلاسل فرعية في بيثون?
  7. كيف يمكنني استخدام 'البحث ()' وظيفة للعثور على المسافة بين سلاسل فرعية في بيثون?
  8. هل من الممكن استخدام وظيفة أخرى للعثور على المسافة بين سلاسل فرعية في بيثون?
  9. هل من الممكن العثور على المسافة بين سلاسل فرعية دون استخدام ' البحث ()` و `مؤشر ()` وظائف?
  10. كيف يمكنني حساب المسافة بين كل زوج من سلاسل فرعية في سلسلة في بيثون?
  11. هل من الممكن العثور على المسافة بين سلاسل فرعية, تجاهل حالة الأحرف?

طرق البحث الفرعية في بايثون

عند العمل مع البيانات النصية في بيثون ، غالبا ما يكون من الضروري العثور على المسافة بين السلاسل الفرعية. للقيام بذلك ، توفر لغة برمجة بايثون العديد من الطرق التي يمكن استخدامها اعتمادا على المهمة.

طرق البحث الفرعية:

  1. - إرجاع مؤشر حدوث أول سلسلة فرعية في سلسلة. إذا لم يتم العثور على السلسلة الفرعية ، يتم إرجاع -1.
  2. - إرجاع فهرس آخر ظهور لسلسلة فرعية في سلسلة. إذا لم يتم العثور على السلسلة الفرعية ، يتم إرجاع -1.
  3. ، ولكن يلقي استثناء إذا لم يتم العثور على السلسلة الفرعية.
  4. الطريقة ، ولكن يلقي استثناء إذا لم يتم العثور على سلسلة فرعية.
  5. - إرجاع عدد تكرارات سلسلة فرعية في سلسلة.

فيما يلي بعض الأمثلة على استخدام هذه الأساليب:

  • السلسلة " مرحبا ، العالم!"يعطى. ابحث عن فهرس التكرار الأول للسلسلة الفرعية "العالم":
  • الطريقةالنتيجة
    البحث ("العالم")7
    الفهرس ("العالم")7
  • السلسلة " مرحبا ، العالم!"يعطى. ابحث عن فهرس آخر ظهور للسلسلة الفرعية "س":
  • الطريقةالنتيجة
    رفند ("س")8
    ريندكس ("س")8
  • السلسلة " مرحبا ، العالم!"يعطى. أوجد عدد تكرارات السلسلة الفرعية "إل":
  • الطريقةالنتيجة
    العد ("ل")3

وبالتالي ، لدى بايثون عدة طرق للبحث عن سلاسل فرعية يمكن استخدامها اعتمادا على متطلبات المهمة.

باستخدام طريقة "البحث" المضمنة

بيثون لديه المدمج في طريقة البحث التي يمكن استخدامها للعثور على سلاسل فرعية في سلسلة وتحديد المسافة بينهما.

ترجع طريقة البحث فهرس التكرار الأول للسلسلة الفرعية المطلوبة في السلسلة. إذا لم يتم العثور على السلسلة الفرعية ، يتم إرجاع القيمة -1.

لحساب المسافة بين سلسلتين فرعيتين ، تحتاج أولا إلى العثور على فهارس التكرارات الأولى. ثم يمكنك حساب الفرق بين هذه الفهارس:

المسافة بين الأوتار (سلسلة ، سلسلة فرعية 1 ، سلسلة فرعية 2):

فهرس1 = سلسلة.البحث عن (سلسلة فرعية 1)

الفهرس2 = سلسلة.البحث عن (سلسلة فرعية 2)

إذا الفهرس1 != -1 ومؤشر 2 != -1:

المسافة = القيمة المطلقة (الفهرس2-الفهرس1)

مسافة العودة

آخر:

عودة لا شيء

سلسلة = " هذا مثال على سلسلة نريد فيها إيجاد المسافة بين سلسلتين فرعيتين."

سلسلة فرعية 1 = "سلاسل"

السلسلة الفرعية 2 = "اثنان"

المسافة = المسافة بين الأوتار(سلسلة ، سلسلة فرعية 1 ، سلسلة فرعية 2)

طباعة (المسافة) # الإخراج: 7

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

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

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

حساب المسافة بين السلاسل الفرعية

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

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

لاستخدام وظيفة العد () ، تحتاج إلى تمرير سلسلتين إليها: السلسلة التي سيتم إجراء البحث فيها ، والسلسلة التي سيتم العثور عليها. تقوم الدالة بإرجاع عدد تكرارات سلسلة في تسلسل نصي.

مثال على استخدام وظيفة العد() :

النص = " أبجد هوز دولور الجلوس أميت, المحافظة أديبيسكينج النخبة."

سلسلة فرعية = "إيبسوم"

العد = النص.العد (سلسلة فرعية)

طباعة (عدد)

في هذا المثال ، فإن وظيفة العد () البحث عن تكرارات سلسلة " إيبسوم "في النص" لوريم إيبسوم دولور الجلوس أميت ، كونسيكتيتور أديبيسكينغ إليت."وإرجاع القيمة 1 ، منذ سلسلة "إيبسوم" يحدث مرة واحدة فقط.

وبالتالي ، فإن وظيفة العد () هي أداة ملائمة لحساب المسافة بين السلاسل الفرعية في بايثون. انها تسمح لك بسرعة وسهولة الحصول على معلومات حول عدد من الحوادث من سلسلة واحدة إلى أخرى.

تطبيق خوارزمية ليفنشتين

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

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

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

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

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

ينتشر استخدام خوارزمية ليفنشتين على نطاق واسع في مجال معالجة البيانات النصية والتعلم الآلي والتطبيقات المتعلقة بتحليل كميات كبيرة من المعلومات. المرونة والدقة تجعل من أداة مفيدة لمختلف المهام معالجة النصوص ومقارنة سلسلة.

سؤال وجواب

كيف يمكنني العثور على المسافة بين سلاسل فرعية في بيثون?

للقيام بذلك ، يمكنك استخدام وظيفة` البحث () ' وحساب الفرق بين فهارس السلاسل الفرعية التي تم العثور عليها.

كيف يمكنني استخدام 'البحث ()' وظيفة للعثور على المسافة بين سلاسل فرعية في بيثون?

أولا ، تحتاج إلى استخدام وظيفة 'البحث ()' للعثور على فهارس السلاسل الفرعية الأولى والثانية. ثم احسب الفرق بينهما.

هل من الممكن استخدام وظيفة أخرى للعثور على المسافة بين سلاسل فرعية في بيثون?

نعم ، بالإضافة إلى وظيفة` البحث () ` ، يمكنك استخدام' مؤشر ()` وظيفة ' للعثور على فهارس فرعية. ثم احسب أيضا الفرق بين الفهارس الناتجة.

هل من الممكن العثور على المسافة بين سلاسل فرعية دون استخدام ' البحث ()` و `مؤشر ()` وظائف?

نعم ، هناك عدة طرق. واحد منهم هو استخدام التعبير العادي للعثور على الفهارس الخاصة بهم. ثم احسب الفرق بين الفهارس الموجودة.

كيف يمكنني حساب المسافة بين كل زوج من سلاسل فرعية في سلسلة في بيثون?

للقيام بذلك ، يمكنك استخدام الحلقات واستدعاء وظيفة أو طريقة للعثور على المسافة بين كل زوج من السلاسل الفرعية.

هل من الممكن العثور على المسافة بين سلاسل فرعية, تجاهل حالة الأحرف?

نعم ، يمكنك. للقيام بذلك ، قبل استدعاء وظيفة أو طريقة ، تحتاج إلى يلقي سلسلة وسلاسل فرعية إلى نفس السجل باستخدام طريقة `أقل ()`.