اذهب إلى المحتوى

السؤال

نشر

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

Recommended Posts

  • 0
نشر

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

words = text.split()      

يمكنك أيضا تعيين محدد معين مثل ",” لتقسيم السلسلة النصية إلى أجزاء حسب هذه المعين كما في المثال التالي:

words = text.split(",")   

وإذا  أردت استخدام دالة أخرى فيمكن استخدام word_tokenize من مكتبة nltk حيث ستُمرر السلسلة النصية التي ترغب بتقسيمها كما في split():

>>> import nltk
>>> s = "The fox's foot grazed the sleeping dog, waking it."
>>> words = nltk.word_tokenize(s)
>>> words
['The', 'fox', "'s", 'foot', 'grazed', 'the', 'sleeping', 'dog', ',',
'waking', 'it', '.']

المصدر

  • 0
نشر

الأداة الأفضل لإنجاز ذلك هي مكتبة التعابير المنتظمة re. حيث تمنحك حرية كاملة في تحديد أسس التقسيم التي تريدها.
مثال: تقسيم سلسلة نصية على أساس الفراغات الفاصلة بين الكلمات.

import re
re.split('\s+', 'Please split this string')
# ['Please', 'split', 'this', 'string']

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...