آموزش پردازش متن با NLP در پایتون (Sentiment Analysis)

سلام! امروز میخوایم یه پروژه جذاب توی حوزه پردازش زبان طبیعی (NLP) انجام بدیم و احساسات متن رو تشخیص بدیم. یعنی ببینیم یه متن مثبته، منفیه یا خنثی! این کار میتونه توی تحلیل نظرات کاربران، بررسی کامنتها و کلی کار دیگه مفید باشه. پس بریم ببینیم چطوری میتونیم این کار رو با پایتون انجام بدیم!
قبل از اینکه بریم سراغ کد، یه نکته بگم! اگر پایتون رو بلد نیستید یا تازه شروع کردید، پیشنهاد میکنم یه سر به دوره کامل آموزش پایتون بزنید که از صفر تا صد همه چیز رو یاد میگیرید. خب بریم سر اصل مطلب!
نصب کتابخونههای مورد نیاز برای پردازش متن با پایتون
برای انجام Sentiment Analysis، از کتابخونه TextBlob استفاده میکنیم که کارمون رو خیلی راحت میکنه. برای نصبش این دستور رو اجرا کنید:
pip install textblob
بعد از نصب، باید دیتای مورد نیازش رو دانلود کنیم:
python -m textblob.download_corpora
شروع کدنویسی
خب، حالا یه فایل پایتون بسازید و این کتابخونه رو ایمپورت کنید:
from textblob import TextBlob
حالا یه تابع تعریف میکنیم که یه متن ورودی بگیره و احساسات اون رو برامون برگردونه:
def analyze_sentiment(text):
analysis = TextBlob(text)
if analysis.sentiment.polarity > 0:
return "Mosbat 😊"
elif analysis.sentiment.polarity < 0:
return "Manfi 😞"
else:
return "Khonsa😐"
توضیح کد:
- TextBlob(text).sentiment.polarity یه مقدار عددی بین -1 تا 1 برمیگردونه.
- اگر مقدار مثبت باشه، متن احساس مثبت داره.
- اگر مقدار منفی باشه، متن منفی تلقی میشه.
- اگر صفر باشه، متن خنثی است.
تست کد
حالا میتونیم این تابع رو با چند تا جمله تست کنیم:
print(analyze_sentiment("python is awesome")) # Mosbat😊
print(analyze_sentiment("i hate javascript")) # Manfi 😞
print(analyze_sentiment("i go to school")) # Khonsa 😐
چند نکته مهم:
✅ TextBlob برای تحلیل سریع و ساده خوبه ولی دقت خیلی بالایی نداره.
✅ اگه میخواین تحلیل قویتری داشته باشید، باید از مدلهای پیشرفتهتر مثل VADER یا BERT استفاده کنید.
✅ اگه متن ورودی خیلی پیچیده باشه، ممکنه تحلیل اشتباه بشه.
کد کامل:
from textblob import TextBlob
def analyze_sentiment(text):
analysis = TextBlob(text)
if analysis.sentiment.polarity > 0:
return "Mosbat"
elif analysis.sentiment.polarity < 0:
return "Manfi"
else:
return "Khonsa"
print(analyze_sentiment("Python is Awesome")) #Mosbat
print(analyze_sentiment("i hate javascript")) #Manfi
print(analyze_sentiment("i go to school")) #Khonsa
اگر به حوزه پردازش متن با پایتون علاقه دارین، میتونید توی بخش نظرات اعلام کنید تا آموزشهای دیگهای هم قرار بدم.
دیدگاهتان را بنویسید