❇️ در درس سوم میخواهیم در مورد عبارتهای منظم و پردازش روی متن های آزاد صحبت کنیم. هنگامی که شما در حال پردازش متن آزاد هستید، عبارتها و الگوهای منظم نقش مهمی را ایفا خواهند کرد. بنابراین بگذارید یک مثال بزنیم.


❇️ متن زیر یکی از توییتهای سخنگوی سازمان ملل می باشد:


»> text12 = '"Ethics are built right into the ideals and objectives of the United Nations" #UNSG @ NY Society for Ethical Culture bit.ly/2guVelr @UN and @UN_Women'


❇️ در این متن یک اصطلاح مشاهده می شود که با # مشخص شدند و یک سری کلمات که با @ مشخص شدند و همچنین یک لینکی رو مشاهده میکنید. اگر بخواهیم این موارد رو استخراج کنیم، گام اول اینه که ما بیاییم با متد split کلمات رو از هم جدا کنیم


»> text13 = text12.split(' ')


»> text13


['"Ethics', 'are', 'built', 'right', 'into', 'the', 'ideals', 'and', 'objectives', 'of', 'the', 'United', 'Nations"', '#UNSG', '@', 'NY', 'Society', 'for', 'Ethical', 'Culture', 'bit.ly/2guVelr', '@UN', 'and', '@UN_Women']


❇️ حالا چگونه میتونیم هشتک ها  و ات ساین ها رو پیدا کنیم، خوب بریم تو بخش بعدی و این کلمات خاص رو پیدا کنیم



❇️ پیدا کردن عبارتهای خاص

🔸هشتک ها

با استفاده از حلقه for و متد startswith  میتوانیم کلماتی که با هشتگ شروع میگردند را استخراج کنیم.

»> [w for w in text13 if w.startswith('#')]
['#UNSG']

🔸 ات ساین

( کلماتی که با @ شروع میگردند) : همان دستور بالا رو مینویسیم فقط بجای شارپ از ات ساین استفاده میکنیم:

»> [w for w in text13 if w.startswith('@')]
['@', '@UN', '@UN_Women']

اتفاقی که در بالا افتاد کلمه بعد از @ نیومده و دلیلش فاصله ای است که بین @ و کلمه بعدش بود. حالا برای این مشکل باید چیکار کنیم. عبارت های خاص در این بخش لزوما باید یک کلمه ای باشد که با @ چسبیده باشد. و اگر @ به تنهایی وارد شد را نباید بعنوان یک عبارت خاص در نظر گرفت. در بخش بعدی راه حلی را ارائه خواهیم داد.