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

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

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

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

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

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

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

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

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

✅ معرفی توابع پایتون برای کلمات


🔹 در این بخش یک تعریف کلی از این توابع خواهیم داشت و در بخش های بعدی مثال های رو بیان خواهیم کرد.


1️⃣ کلماتی که با یک حرف خاص شروع خواهند شد.


s.startswith()


2️⃣ کلماتی که با یک حرف خاص به اتمام می رسند.(در بخش قبل مثال زدیم)


s.endswith()


3️⃣ بررسی وجود یک کلمه در داخل رشته با دستور in


T in s


4️⃣ تشخیص حروف بزرگ و کوچک در کلمات و همچنین یافتن کلماتی که با حرف بزرگ شروع خواهند شد.


s.isupper()  ;  s.islower()  ;  s.istitle()


5️⃣تشخیص حروف الفبا یا عدد.


s.isalpha()  ;  s.isdigit()  ;  s.isalnum()


▪️تابع اول برای تشخیص حروف الفبا در رشته می باشد که شامل عدد و کارکترهای خاص نباشد.

▪️تابع دوم تشخیص عدد در رشته می باشد.

▪️و تایع سوم میتونه شامل الفبا و عدد باشد اما کارکترهای خاص مثل فاصله و ... را شامل نخواهد شد.


🔸 خروجی سه تا تابع فوق True یا False می باشد.


🔹 در بخش های بعدی برای هر یک از موارد بالا مثال های خواهیم زد.


✅ پیدا کردن کلماتی که یکبار در جمله تکرار شدند یا حذف کلمات تکراری در جملات


▪️ پایتون تابعی به نام set داره که میاد کلماتی که در جمله تکرار شدند رو حذف میکنه. ما در اینجا یک مثال جدید خواهیم زد:


>>> text3 = "To be or not to be"

>>> text3 = text3.split(' ')

>>> len(text3)

6



▪️همانطور که در کد بالا مشاهده میکنیم جمله ما در ابتدا 6 کلمه بود و دو از این کلمات تکراری هست یکی to و دیگری be. حالا اگر بخواهیم با استفاده از set این کلمات تکراری رو حذف کنیم ببنیم چه اتفاقی خواهد افتاد:


>>> len(set(text3))

5

>>> set(text3)

{'not', 'be', 'to', 'To', 'or'}


▪️همانطور که در بالا مشاهده میکنید کد فوق be رو حذف کرد اما to رو نه. قبلا تو پایتون مقدماتی تاکید کردیم که پایتون برای حروف بزرگ و کوچک تفاوت قائل هستش و این دلیل حذف نشدن کلمه to و To هست.خوب راه حل چیه؟


▪️ راه حل اینه که ابتدا بیاییم کل جمله رو تبدیل به حروف کوچک کنیم سپس کلمات تکراری رو حذف کنیم. بوسیله کد زیر:


>>> len(set(w.lower() for w in text3))

4

>>> set(w.lower() for w in text3)

{'to', 'not', 'be', 'or'}


▪️ ابتدا توسط تابع lower تمام حروف رو در یک حلقه for کوچک کردیم بعد از تابع set برای حذف تکراریها استفاده میکنه و در نهایت هم طولش رو نمایش میده و در خط بعد کارکترهای یکتا رو چاپ میکنه.


برای نمایش تصویر در سایز بزرگتر بر روی تصویر کلیک کنید.



✅ پیدا کردن کلمات با ویژگی های خاص


1️⃣ اگر بخواهیم کلماتی که بیش از سه حرف داشته باشند رو، کلمات طولانی بنامیم. با استفاده از حلقه for و تابع len میتوانیم این کلمات رو از جمله فوق استخراج کنیم.


>>> [w for w in text2 if len(w)>3]

['Ethics', 'built', 'right', 'into', 'ideals', 'objectives', 'United', 'Nations.']


▪️ همانطور که در نتیجه مشاهده میکنید تمام کلمات بیش از سه حرف هستند


2️⃣ معمولا در زبان انگلیسی حرف اول اسامی و یا اولین کلمه موجود در جمله با حروف بزرگ نوشته می شود. حالا اگر بخواهیم این کلمات را از جمله استخراج کنیم؛ تابع ()istitle در پایتون اینکار رو برامون انجام میده.


>>> [w for w in text2 if w.istitle()]

['Ethics', 'United', 'Nations.']


▪️ تمام کلماتی که با کارکتر بزرگ شروع میگردند را نمایش داد.


3️⃣ در پایتون اگر بخواهیم کلماتی که به یک کارکتر خاص ختم می شوند رو نمایش بدهیم کافیه از تابع ()endswith استفاده کنیم. داخل پرانتز کارکتری که میخواهیم بهش ختم بشه رو وارد میکنیم. مثال زیر رو ببینید.


>>> [w for w in text2 if w.endswith('s')]

['Ethics', 'ideals', 'objectives']


▪️ نمایش تمام کلماتی که به s ختم می شوند


❇️ در درس اول، در مورد اینکه چرا متن ابزاری مفیدی بر ما هست، و کجاها استفاده شد و چه حجمی از متن رو ما داریم و از این دیتاهای متنی چه استفاده ای میکنیم خدمتتون عرض کردیم.

❇️ در درس دوم در مورد ساختار اولیه متن بررسی های انجام میدهیم و با استفاده از زبان پایتون، عملیات و توابعی که بر روی متن قابل استفاده هستند رو بیان خواهیم کرد.


✅ ساختار اولیه متن

1️⃣ جملات یا رشته های ورودی ( در واقع جملات از یکسری کلمات تشکیل شده است)
2️⃣ کلمات یا نشانه ها ( کلمات از کارکترها تشکیل شده و منظور از نشانه ها علائم نگارشی مثل نقطه، فاصله و ... هست)
3️⃣کارکترها (که کوچکترین جز یک متن رو تشکیل خواهد داد)
4️⃣ سندهای متنی یا فایل های بزرگتر (شما اگر یک سند word در نظر بگیرید از یکسری جملات تشکیل شده که ممکنه تعداد این جملات بسیار زیاد باشه که فایل های بزرگی بوجود خواهد آورد)

◀️ در این درس بر روی این ساختارهای اولیه متن و ویژگی هاش میپردازیم

✅ مثال : در ابتدا یک متن ایجاد میکنیم و داخل متغیر text1 ذخیره میکنیم.

>>> text1 = "Ethics are built right into the ideals and objectives of the United Nations."

▪️برای اینکه طول متن را بدست آوردیم از تابع len برای اینکار استفاده خواهیم کرد.

>>> len(text1)
76

▪️و اگر بخواهیم کلمات داخل متن رو جدا کنیم،میتوانیم از تابع ()split برای اینکار استفاده کنیم، دقت کنید که مقدار داخل پرانتز، کارکتری خواهد بود که سبب جدا شدن کلمات میگردند،که در اینجا باید از اسپس (فاصله) استفاده کنیم

>>> text2 = text1.split(' ')
>>> len(text2)
13

همانطور که مشاهده میکنید بعد از اجرای دستور فوق عدد 13 به معنی تعداد کلمات این جمله در خروجی چاپ خواهد شد.که در پایین مشاهده میکنید.

>>> text2
['Ethics', 'are', 'built', 'right', 'into', 'the', 'ideals', 'and', 'objectives', 'of', 'the', 'United', 'Nations.']

ادامه دارد...

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