مجله خبری برنامه‌نویسی پایتون

مرکز آموزش و رقابت برنامه نویسی پایتون

مجله خبری برنامه‌نویسی پایتون

مرکز آموزش و رقابت برنامه نویسی پایتون

مجله خبری برنامه‌نویسی پایتون

زبان پایتون (Python) در سال ۱۹۹۱ توسط یک برنامه‌نویس هلندی به نام گیدو ون روسوم (Guido van Rossum) ابداع شد و از آن زمان تا کنون رشد قابل ملاحظه‌ای را شاهد بوده است.

اگر چه وی در آن زمان گفته بود: «من به هیچ وجه قصد ندارم زبانی بسازم که به طور گسترده مورد استفاده قرار بگیرد» ولی اکنون و با گذشت نزدیک به سه دهه از آن تاریخ، پایتون تقریباً تمام رقبای خود را کنار زده و به اندازه‌ای محبوبیت یافته که حتی افراد مبتدی نیز کدنویسی را با آن شروع می‌کنند.

در یک سال گذشته، «Python» یکی از کلماتی بود که شهروندان آمریکایی بسیار زیاد در گوگل جستجو کرده‌اند، حتی بیشتر از نام ستاره‌های تلویزیونی.

۲ مطلب با کلمه‌ی کلیدی «مثال متن کاوی» ثبت شده است

دراین درس میخواهیم نگاهی به داده های متنی و کار با کتابخانه pandas بپردازیم.

ابتدا بصورت زیر یک داده متنی معرفی خواهیم کرد .و قبل از معرفی داده، کتابخانه pandas رو ایمپورت میکنیم:


import pandas as pd

time_sentences = ["Monday: The doctor's appointment is at 2:45pm.", 
                  "Tuesday: The dentist's appointment is at 11:30 am.",
                  "Wednesday: At 7:00pm, there is a basketball game!",
                  "Thursday: Be back home by 11:15 pm at the latest.",
                  "Friday: Take the train at 08:10 am, arrive at 09:00am."]

 

برای اینکه برای ستون این داده متنی، اسمی رو قرار بدهیم از تابع DataFrame بصورت زیر استفاده میکنیم


df = pd.DataFrame(time_sentences, columns=['text'])
df

 

در حال حاضر داده ما شامل یک ستون هست که هر سطر آن یک متن می باشد و هر ورودی ما شامل یک روز در هفته و همچنین یک یا دو ساعت و دقیقه در بین متن می باشد

❇️ با استفاده از ویژگی str میتوانیم به مجموعه ای از روش های پردازش رشته دسترسی پیدا کنیم.

برای مثال متد str.len نشان دهنده طول متن یا همان تعداد کارکترهای هر رشته می باشد.

df['text'].str.len()

 

دستور بالا برای ستون text از رشته ورودی ، طول هر رشته را محاسبه میکند و در خروجی چاپ میکند. دقت کنید این ستون شامل 5 سطر می باشد و برای هر سطر بصورت جداگانه تعداد کارکترها را نمایش خواهد داد.

 

0    46
1    50
2    49
3    49
4    54

❇️ حالا اگر بخواهیم بجای تعداد کارکتر، تعداد کلمات رو مشخص کنیم. کافیه ابتدا با متد str.split کلمات یک متن رو با استفاده فاصله بین کلمات جدا کنیم سپس برای محاسبه طول اقدام کنیم:

 

df['text'].str.split().str.len()

0     7
1     8
2     8
3    10
4    10

پس برای مثال رشته اول شامل 7 کلمه و 46 کارکتر می باشد.
 

 

 

✅ مثالهای گوناگون


🔹 تابع split بصورت پیش فرض رشته ها رو از طریق space یا همون فاصله جدا میکنه و کلمات رو استخراج میکنه، اما ما میتونیم داخل پرانتز کارکتر دلخواه خودمون رو بعنوان میعار جدا کردن در نظر بگیریم. مثال زیر رو ببنید:


>>> text4 = "ouagadougou"

>>> text5 = text4.split('ou')

>>> text5

['', 'agad', 'g', '']


▪️خوب در مثال بالا رشته رو بر اساس کارکتر ou جدا کرد.دقت کنید که ما text4 رو نمیتونیم بر اساس میعار فاصله جدا کنیم چون هیچ فاصله ای در این رشته وجود نداره و اگر داخل پرانتر دستور split خالی باشه به ارور خواهیم خورد.


🔹 در دوره مقدماتی در مورد لیست صحبت کردیم و اگر بخواهیم text4 رو تبدیل به لیست کنیم کارکتر به کارکتر داخل یک لیست برامون قرار میده.


>>> list(text4)

['o', 'u', 'a', 'g', 'a', 'd', 'o', 'u', 'g', 'o', 'u']


🔹با استفاده از حلقه for هم امکان ایجاد لیست فوق وجود داره، مثال رو ببنید.


>>> [c for c in text4]

['o', 'u', 'a', 'g', 'a', 'd', 'o', 'u', 'g', 'o', 'u']


🔹 حالا اگر بخواهیم دوباره ou رو به text5 متصل کنیم از دستور join برای اینکار استفاده میکنیم.و نحوه استفاده بصورت زیر خواهد بود


>>> 'ou'.join(text5)

'ouagadougou'



🔹یک رشته جدید تو این مثال خواهیم زد که ابتدای رشته دوتا فاصله وجود داره؛ ما اول میاییم با دستور split کلمات رو جدا میکنیم و اتفاقی که میفته فاصله های ابتدایی رو بعنوان یک کلمه مجزا درنظر میگیره


>>> text6 = '  a quick brown fox jumped over the lazy dog'

>>> text6.split(' ')

['', '', 'a', 'quick', 'brown', 'fox', 'jumped', 'over', 'the', 'lazy', 'dog']



🔹حالا اگر بخواهیم این فاصله های اضافی رو برداریم و با توجه به اینکه این موضوع برای مباحث متن کاوی مهم هست که موارد اضافه رو حذف کنیم از دستور strip برای اینکار استفاده خواهیم کرد.


>>> text7 = text6.strip()

>>> text7.split(' ')

['a', 'quick', 'brown', 'fox', 'jumped', 'over', 'the', 'lazy', 'dog']



▪️همانطور که در بالا مشاهده میکنیم دیگر فاصله ها در لیست ما قرار ندارند.



مثال دستور find و replace


🔹 در متن جدید میخواهیم کارکتر o رو پیدا کنیم اگر از دستور find استفاده کنیم اولین کارکتر o در متن رو پیدا میکنه و اندیسش رو بعنوان خروجی برمیگردونه. (اندیس در پایتون از صفر شروع میشه)


>>> text8 = "a quick brown fox jumped over the lazy dog"

>>> text8.find('o')

10


🔹 اگر دستور rfind برای اینکار استفاده کنید آخرین کارکتر o در رشته رو پیدا میکنه، بعبارتی از آخر رشته جستجو رو انجام میده.


>>> text8.rfind('o')

40


🔹 و برای جایگزینی کارکتر o با مقدار صفر (0) میتونیم از دستور replace بصورت زیر استفاده کنیم


>>> text8.replace('o','0')

'a quick br0wn f0x jumped 0ver the lazy d0g'