پروژه هوش مصنوعی

چند دسته کلی پروژه هوش مصنوعی:

🟢 سطح مقدماتی در پروژه هوش مصنوعی

  • تشخیص چهره ساده با OpenCV

  • چت‌بات ساده با Python (مثلاً پرسش و پاسخ پایه‌ای)

  • تشخیص دست‌خط اعداد (MNIST Dataset)

  • سیستم توصیه‌گر فیلم یا آهنگ ساده

🟡 سطح متوسط در پروژه هوش مصنوعی

  • تحلیل احساسات متون پروژه هوش مصنوعی(مثلاً روی توییت‌ها یا کامنت‌ها)

  • مدل تشخیص گیاه یا میوه با TensorFlow/Keras

  • پیش‌بینی قیمت (مثلاً طلا یا ارز) با الگوریتم‌های ML

  • سیستم تشخیص صدا (Voice Command Recognition)

🔴 سطح پیشرفته پروژه هوش مصنوعی

پروژه هوش مصنوعی

  • تشخیص اشیاء در تصاویر و ویدئو با YOLO در پروژه هوش مصنوعی

  • ساخت ربات گفت‌وگو (Chatbot پیشرفته با NLP) در پروژه هوش مصنوعی

  • تشخیص تقلب در تراکنش‌های بانکی در پروژه هوش مصنوعی

  • ترجمه خودکار متن با مدل‌های Seq2Seq یا Transformer در پروژه هوش مصنوعی

🎯 پروژه هوش مصنوعی چیه؟

هوش مصنوعی و پروژه هوش مصنوعی شاخه‌ای از علوم کامپیوتره که تلاش می‌کنه رفتارهای هوشمند انسان رو شبیه‌سازی کنه. مثلاً:

  • دیدن و تشخیص تصویر (Computer Vision)

  • شنیدن و درک صدا (Speech Recognition)

  • تحلیل و درک متن (Natural Language Processing – NLP)

  • یادگیری از داده‌ها و پیش‌بینی آینده (Machine Learning)


🧩 دسته‌بندی پروژه‌های هوش مصنوعی

پروژه‌های AI معمولاً به سه بخش اصلی تقسیم میشن:

1. Computer Vision (بینایی ماشین)

هوش مصنوعی سعی می‌کنه “ببینه”.
🔹 ایده‌های پروژه:

  • تشخیص چهره یا لبخند

  • شناسایی اشیا در تصاویر

  • شمارش افراد در یک عکس یا ویدیو

  • شناسایی بیماری در برگ گیاه یا عکس پزشکی

📌 ابزار: Python + OpenCV + TensorFlow/Keras


2. Natural Language Processing (پردازش زبان طبیعی) و پروژه هوش مصنوعی

هوش مصنوعی سعی می‌کنه “بفهمه و حرف بزنه”.
🔹 ایده‌های پروژه:

  • چت‌بات ساده مثل دستیار مجازی

  • تحلیل احساسات توی متن (مثبت/منفی بودن یک کامنت)

  • خلاصه‌سازی متن‌ها

  • ترجمه خودکار متن

📌 ابزار: Python + NLTK + Transformers (HuggingFace)


3. Machine Learning (یادگیری ماشین و پیش‌بینی)

هوش مصنوعی از داده‌های گذشته یاد می‌گیره و آینده رو پیش‌بینی می‌کنه.
🔹 ایده‌های پروژه:

  • پیش‌بینی قیمت (مثل طلا، دلار، سهام)

  • سیستم پیشنهاددهنده (مثل پیشنهاد فیلم در Netflix یا آهنگ در Spotify)

  • تشخیص تقلب در تراکنش‌های بانکی

  • پیش‌بینی نمره یا وضعیت قبولی دانشجو

📌 ابزار: Python + Scikit-learn + Pandas


🔥 سطح سختی پروژه‌ها در پروژه هوش مصنوعی

  • پروژه هوش مصنوعی مقدماتی: مناسب برای شروع و نمره گرفتن در دانشگاه

  • پروژه هوش مصنوعی متوسط: ترکیب الگوریتم‌ها + کار با دیتاست آماده

  • پروژه هوش مصنوعی پیشرفته: استفاده از مدل‌های عمیق مثل CNN، RNN، Transformer


✨ نکته مهم در پروژه هوش مصنوعی

برای هر پروژه معمولاً این مراحل رو داریم:

  1. جمع‌آوری داده‌ها (Dataset)

  2. پیش‌پردازش داده‌ها (پاکسازی، نرمال‌سازی و …)

  3. انتخاب الگوریتم (مثلاً CNN برای تصویر، RNN برای متن)

  4. آموزش مدل (Training)

  5. ارزیابی و تست (Accuracy, Precision, Recall)

  6. پیاده‌سازی نهایی (مثل ساخت اپ یا وب‌اپلیکیشن)

🧠 چرخه اجرای یک پروژه هوش مصنوعی

وقتی می‌خوای یک پروژه AI انجام بدی، معمولا این مسیر رو طی می‌کنی:

1. تعریف مسئله

اول باید بدونی دقیقا چی می‌خوای. مثلا:

  • آیا می‌خوای چهره‌ها رو در عکس‌ها تشخیص بدی؟

  • یا می‌خوای یک چت‌بات برای پاسخ به سوالات بسازی؟

  • یا می‌خوای قیمت دلار یا طلا رو پیش‌بینی کنی؟


2. جمع‌آوری داده‌ها (Dataset)

داده قلب هوش مصنوعیه. بدون داده پروژه‌ای وجود نداره.

  • برای تصویر → دیتاست‌هایی مثل MNIST، CIFAR-10، COCO

  • برای متن → دیتاست‌هایی مثل IMDB Reviews، Twitter Sentiment

  • برای پیش‌بینی → دیتاست‌های مالی یا آموزشی


3. پیش‌پردازش داده‌ها

داده‌ها خام هستن، باید آماده بشن.

  • پاک کردن نویزها

  • نرمال‌سازی اعداد

  • تبدیل متن به عدد (Tokenization, Embedding)

  • تغییر سایز تصاویر


4. انتخاب الگوریتم

الگوریتم بسته به نوع پروژه فرق می‌کنه:

  • برای تصویر → CNN (شبکه عصبی کانولوشنی)

  • برای متن → RNN, LSTM یا Transformer

  • برای داده‌های جدولی → الگوریتم‌های ML مثل Random Forest, XGBoost


5. آموزش مدل (Training)

مدل روی داده‌های آموزشی یاد می‌گیره.
اینجا بحث Epoch, Batch Size, Optimizer مطرح میشه.


6. تست و ارزیابی

مدل رو روی داده جدید تست می‌کنی تا ببینی دقتش چقدره.

  • معیارها: Accuracy, Precision, Recall, F1-score


7. پیاده‌سازی و استفاده واقعی

وقتی مدل درست شد، می‌تونی توی یک اپ موبایل یا وب‌سایت استفاده کنی.
مثلا:

  • چت‌بات → توی یک وب‌اپ

  • تشخیص چهره → توی اپلیکیشن دوربین

  • پیش‌بینی قیمت → توی داشبورد مالی


📌 مثال ساده برای درک بهتر

فرض کن پروژه‌ات تشخیص دست‌خط اعداد (0 تا 9) باشه:

  1. دیتاست: MNIST (شامل 70 هزار تصویر از اعداد)

  2. الگوریتم: CNN

  3. آموزش: تصاویر دست‌خط → برچسب عدد

  4. تست: تصویر جدید میدی → مدل عدد رو حدس می‌زنه

📖 تعریف پروژه هوش مصنوعی

پروژه هوش مصنوعی (Artificial Intelligence Project) به مجموعه‌ای از فعالیت‌ها اطلاق می‌شود که با هدف طراحی، توسعه و پیاده‌سازی سیستم‌های هوشمند انجام می‌گیرد. این سیستم‌ها قادرند وظایفی را که به طور معمول نیازمند هوش انسانی است (مانند یادگیری، درک زبان، بینایی، تصمیم‌گیری و پیش‌بینی) انجام دهند.


🧩 مراحل اجرای یک پروژه هوش مصنوعی

یک پروژه استاندارد هوش مصنوعی عموماً شامل مراحل زیر است:

1. تعریف مسئله

در این مرحله هدف پروژه مشخص می‌شود. برای مثال:

  • تشخیص اشیاء در تصاویر

  • تحلیل احساسات متون کاربران

  • پیش‌بینی روند بازار

2. گردآوری داده‌ها (Data Collection)

داده‌ها اساس یادگیری ماشین هستند. کیفیت و کمیت داده‌ها تأثیر مستقیم بر عملکرد مدل دارد.

3. پیش‌پردازش داده‌ها (Data Preprocessing)

داده‌های خام معمولاً دارای نویز، مقادیر ناقص یا ابعاد نامناسب هستند. عملیات متداول در این مرحله شامل:

  • پاک‌سازی داده‌ها

  • نرمال‌سازی و استانداردسازی

  • استخراج ویژگی‌ها (Feature Extraction)

4. انتخاب مدل و الگوریتم (Model Selection)

بسته به نوع مسئله، الگوریتم مناسب انتخاب می‌شود:

  • شبکه‌های عصبی کانولوشنی (CNN) برای پردازش تصویر

  • مدل‌های بازگشتی (RNN, LSTM) برای پردازش متن و داده‌های ترتیبی

  • مدل‌های درخت تصمیم یا جنگل تصادفی برای مسائل پیش‌بینی جدولی

5. آموزش مدل (Model Training)

مدل با استفاده از داده‌های آموزشی (Training Data) یاد می‌گیرد. در این مرحله پارامترهای مدل بهینه می‌شوند.

6. ارزیابی و اعتبارسنجی (Evaluation)

مدل با داده‌های تست ارزیابی شده و معیارهایی مانند دقت (Accuracy)، بازخوانی (Recall) و امتیاز F1 محاسبه می‌گردد.

7. پیاده‌سازی (Deployment)

در این مرحله مدل نهایی در قالب یک نرم‌افزار، وب‌سایت یا اپلیکیشن مورد استفاده قرار می‌گیرد.


📂 نمونه‌های کاربردی پروژه‌های هوش مصنوعی

  • بینایی ماشین (Computer Vision): تشخیص چهره، تشخیص پلاک خودرو، شناسایی بیماری‌های پزشکی در تصاویر.

  • پردازش زبان طبیعی (NLP): چت‌بات‌ها، ترجمه ماشینی، تحلیل احساسات متون.

  • یادگیری ماشین (Machine Learning): سیستم‌های پیشنهاددهنده، پیش‌بینی روند بازار، تشخیص تقلب.


✨ نتیجه‌گیری

پروژه‌های هوش مصنوعی بستری برای ترکیب علم داده، الگوریتم‌های یادگیری و مهندسی نرم‌افزار فراهم می‌کنند. با توجه به نوع داده و مسئله، می‌توان پروژه‌ها را در حوزه‌های مختلف مانند تصویر، متن و پیش‌بینی داده‌ها توسعه داد.

📊 معماری کلی پروژه هوش مصنوعی

یک پروژه استاندارد معمولاً از اجزای زیر تشکیل می‌شود:

  1. منبع داده (Data Source):
    می‌تواند شامل پایگاه داده‌ها، تصاویر، فایل‌های متنی، یا داده‌های سنسور باشد.

  2. پردازش داده (Data Processing):
    شامل پاک‌سازی، تغییر فرمت و آماده‌سازی داده برای ورود به مدل.

  3. مدل هوش مصنوعی (AI Model):

    • شبکه‌های عصبی مصنوعی (ANN)

    • الگوریتم‌های یادگیری ماشین (ML)

    • مدل‌های یادگیری عمیق (Deep Learning)

  4. ارزیابی و بهینه‌سازی (Evaluation & Optimization):
    مقایسه عملکرد مدل‌ها و بهبود نتایج.

  5. استقرار (Deployment):
    پیاده‌سازی مدل در یک محیط واقعی مانند اپلیکیشن وب، موبایل یا سیستم سازمانی.


📌 مثال کاربردی: تشخیص احساسات در متن

برای روشن‌تر شدن، مراحل یک پروژه واقعی را بررسی می‌کنیم:

1. تعریف مسئله:

تحلیل احساسات (Sentiment Analysis) نظرات کاربران درباره یک محصول.

2. داده‌ها:

مجموعه‌ای از هزاران نظر (مثبت، منفی یا خنثی) از وب‌سایت‌ها.

3. پیش‌پردازش در پروژه هوش مصنوعی:

  • حذف علائم نگارشی

  • حذف کلمات توقف (مانند “از”، “به”)

  • تبدیل کلمات به بردار عددی (Word Embedding)

4. انتخاب مدل در پروژه هوش مصنوعی:

مدل LSTM (Long Short-Term Memory) برای تحلیل متن.

5. آموزش و تست در پروژه هوش مصنوعی:

  • 80٪ داده‌ها برای آموزش در پروژه هوش مصنوعی

  • 20٪ داده‌ها برای تست در پروژه هوش مصنوعی

6. ارزیابی در پروژه هوش مصنوعی:

محاسبه Accuracy و F1-Score برای سنجش کیفیت مدل.

7. پیاده‌سازی در پروژه هوش مصنوعی:

ساخت یک API یا وب‌اپلیکیشن که نظر کاربر را گرفته و احساس آن را تشخیص دهد.


🎯 جمع‌بندی

پروژه هوش مصنوعی

یک پروژه هوش مصنوعی نه‌تنها شامل بخش فنی (کدنویسی و مدل‌سازی) است، بلکه شامل:

  • مدیریت داده‌ها

  • انتخاب الگوریتم مناسب

  • ارزیابی علمی مدل

  • و نهایتاً استقرار در محیط واقعی می‌شود.

🔹 مراحل عملی یک پروژه هوش مصنوعی

1. انتخاب مسئله و هدف

مثال عملی: تشخیص احساسات در متن

  • ورودی: متن کوتاه (مثلاً یک کامنت یا توییت)

  • خروجی: مثبت، منفی یا خنثی

2. جمع‌آوری و آماده‌سازی داده

  • دیتاست‌های رایگان: IMDB Reviews، Twitter Sentiment

  • پیش‌پردازش داده‌ها شامل:

    • حذف نویز و علائم نگارشی

    • حذف کلمات توقف (Stopwords)

    • تبدیل متن به اعداد با Tokenization و Word Embedding

3. انتخاب مدل

  • برای متن‌های ترتیبی مناسب‌ترین مدل‌ها:

    • RNN (شبکه عصبی بازگشتی)

    • LSTM (حفظ اطلاعات بلندمدت متن)

    • BERT یا Transformer (برای پروژه‌های پیشرفته‌تر)

4. آموزش مدل

  • تقسیم داده به Training Set و Test Set (مثلاً 80% آموزش، 20% تست)

  • استفاده از Optimizer و Loss Function مناسب

  • آموزش مدل برای رسیدن به بهترین دقت

5. ارزیابی مدل

  • معیارها: Accuracy, Precision, Recall, F1-Score

  • بررسی اینکه مدل روی داده‌های جدید چگونه عمل می‌کند

6. پیاده‌سازی

  • ساخت یک API ساده با Flask یا FastAPI

  • یا یک وب‌اپلیکیشن ساده با Streamlit که کاربر متن را وارد کند و خروجی احساس آن را ببیند


🔹 نکات کلیدی برای موفقیت پروژه در پروژه هوش مصنوعی

  1. کیفیت داده‌ها مهم‌تر از کمیت است

  2. همیشه مدل را روی داده‌های جدید تست کنید

  3. مدل‌های پیچیده‌تر همیشه بهتر نیستند؛ گاهی الگوریتم ساده‌تر کار را راه می‌اندازد

  4. مستندسازی و ارائه نتایج، بخش مهم پروژه است

🔹 مرحله 1: نصب کتابخانه‌های مورد نیاز در پروژه هوش مصنوعی

ابتدا باید کتابخانه‌های Python را نصب کنیم:

pip install pandas numpy scikit-learn tensorflow keras nltk
pip install matplotlib seaborn
  • pandas و numpy برای پردازش داده

  • scikit-learn برای ارزیابی و مدل‌های ساده

  • tensorflow و keras برای مدل‌های عصبی

  • nltk برای پردازش متن


🔹 مرحله 2: بارگذاری و آماده‌سازی داده‌ها در

پروژه هوش مصنوعی

در این مثال از دیتاست IMDB Reviews استفاده می‌کنیم:

import pandas as pd
from sklearn.model_selection import train_test_split

# بارگذاری دیتاست (فرض می‌کنیم CSV داریم)
data = pd.read_csv("IMDB_Dataset.csv")

# داده‌ها شامل ستون‌های 'review' و 'sentiment' هستند
X = data['review']
y = data['sentiment']

# تبدیل برچسب‌ها به عدد
y = y.map({'positive':1, 'negative':0})

# تقسیم داده به آموزش و تست
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)


🔹 مرحله 3: پیش‌پردازش متن

  • حذف نویز

  • تبدیل متن به توکن و بردارهای عددی

import nltk
from tensorflow.keras.preprocessing.text import Tokenizer
from tensorflow.keras.preprocessing.sequence import pad_sequences

nltk.download('stopwords')
from nltk.corpus import stopwords

stop_words = set(stopwords.words('english'))

# توکنایزر
tokenizer = Tokenizer(num_words=5000, oov_token="<OOV>")
tokenizer.fit_on_texts(X_train)

# تبدیل متن به توالی عددی
X_train_seq = tokenizer.texts_to_sequences(X_train)
X_test_seq = tokenizer.texts_to_sequences(X_test)

# هم‌طول کردن توالی‌ها
max_len = 200
X_train_pad = pad_sequences(X_train_seq, maxlen=max_len, padding='post')
X_test_pad = pad_sequences(X_test_seq, maxlen=max_len, padding='post')


🔹 مرحله 4: ساخت مدل LSTM

from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Embedding, LSTM, Dense, Dropout

model = Sequential()
model.add(Embedding(input_dim=5000, output_dim=64, input_length=max_len))
model.add(LSTM(64, return_sequences=False))
model.add(Dropout(0.5))
model.add(Dense(1, activation='sigmoid'))

model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
model.summary()


🔹 مرحله 5: آموزش مدل

history = model.fit(X_train_pad, y_train, epochs=5, batch_size=64, validation_split=0.2)

🔹 مرحله 6: ارزیابی مدل پروژه هوش مصنوعی

loss, accuracy = model.evaluate(X_test_pad, y_test)
print("Test Accuracy:", accuracy)

🔹 مرحله 7: استفاده عملی از مدل پروژه هوش مصنوعی

می‌توانیم یک تابع بسازیم تا متن جدید را تحلیل کند:

def predict_sentiment(text):
seq = tokenizer.texts_to_sequences([text])
pad = pad_sequences(seq, maxlen=max_len, padding='post')
pred = model.predict(pad)[0][0]
return "Positive 😊" if pred > 0.5 else "Negative 😢"

# مثال
print(predict_sentiment("I really loved this movie!"))

🔹 مرحله 8: نصب Streamlit

pip install streamlit

🔹 مرحله 9: ساخت وب‌اپلیکیشن ساده

یک فایل با نام app.py بساز و کد زیر را داخلش قرار بده:

import streamlit as st
from tensorflow.keras.models import load_model
from tensorflow.keras.preprocessing.sequence import pad_sequences

# فرض می‌کنیم مدل و توکنایزر آماده هستند
# مدل شما قبلاً آموزش داده شده
# tokenizer همان tokenizer مرحله قبل است

max_len = 200

def predict_sentiment(text):
seq = tokenizer.texts_to_sequences([text])
pad = pad_sequences(seq, maxlen=max_len, padding='post')
pred = model.predict(pad)[0][0]
return "Positive 😊" if pred > 0.5 else "Negative 😢"

# رابط کاربری با Streamlit
st.title("Sentiment Analysis App")
st.write("متنی وارد کنید تا احساس آن تشخیص داده شود:")

user_input = st.text_area("متن خود را اینجا وارد کنید:")

if st.button("تشخیص احساس"):
if user_input.strip() != "":
result = predict_sentiment(user_input)
st.success(f"احساس متن: {result}")
else:
st.warning("لطفاً متن خود را وارد کنید.")


🔹 مرحله 10: اجرای وب‌اپلیکیشن

در ترمینال یا CMD دستور زیر را وارد کن:

streamlit run app.py
  • یک صفحه وب باز می‌شود

  • متن خود را وارد می‌کنی

  • با زدن دکمه تشخیص احساس، نتیجه مثبت یا منفی نمایش داده می‌شود


✅ نکات مهم:

  1. وب‌اپلیکیشن کاملاً تعاملی است و نیازی به نصب محیط پیچیده ندارد

  2. می‌توان امکانات بیشتری اضافه کرد مثل:

    • تحلیل دسته‌ای نظرات

    • نمایش نمودار درصد احساسات

    • ذخیره نتایج در فایل CSV

🔹 ویژگی‌های نسخه پیشرفته

  1. تحلیل چند متن همزمان (Batch Analysis)

  2. نمایش نمودار درصد احساسات مثبت و منفی

  3. ذخیره نتایج در فایل CSV

  4. رابط کاربری جذاب با Streamlit Components


🔹 مرحله 1: نصب کتابخانه‌های اضافی

pip install matplotlib seaborn
  • matplotlib و seaborn برای رسم نمودار


پروژه هوش مصنوعی

🔹 مرحله 2: ساخت وب‌اپ پیشرفته

یک فایل app_advanced.py بساز و کد زیر را قرار بده:

import streamlit as st
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from tensorflow.keras.preprocessing.sequence import pad_sequences

max_len = 200

def predict_sentiment(text):
seq = tokenizer.texts_to_sequences([text])
pad = pad_sequences(seq, maxlen=max_len, padding='post')
pred = model.predict(pad)[0][0]
return "Positive" if pred > 0.5 else "Negative"

# رابط کاربری
st.title("Advanced Sentiment Analysis App")
st.write("متن‌های خود را وارد کنید. می‌توانید چند متن همزمان وارد کنید (هر متن در یک خط).")

user_input = st.text_area("متن‌ها:")

if st.button("تحلیل"):
if user_input.strip() != "":
texts = user_input.strip().split("\n")
results = [predict_sentiment(t) for t in texts]

# نمایش نتایج در جدول
df = pd.DataFrame({"Text": texts, "Sentiment": results})
st.dataframe(df)

# رسم نمودار درصد احساسات
sns.set_style("whitegrid")
fig, ax = plt.subplots()
df['Sentiment'].value_counts().plot(kind='bar', color=['green','red'], ax=ax)
ax.set_ylabel("Count")
ax.set_title("Sentiment Distribution")
st.pyplot(fig)

# ذخیره نتایج در CSV
df.to_csv("sentiment_results.csv", index=False)
st.success("نتایج ذخیره شد: sentiment_results.csv")
else:
st.warning("لطفاً متن‌ها را وارد کنید.")


🔹 مرحله 3: اجرای اپ پیشرفته

در ترمینال دستور زیر را وارد کن:

streamlit run app_advanced.py
  • متن‌های چند خطی وارد می‌کنی

  • دکمه تحلیل را می‌زنی

  • نتایج در جدول و نمودار درصد نمایش داده می‌شوند

  • فایل CSV با نتایج ذخیره می‌شود


✅ امکانات این نسخه:

  1. چند متن همزمان

  2. نمودار جذاب درصد احساسات

  3. خروجی قابل ذخیره و استفاده در تحلیل‌های بعدی

  4. قابلیت گسترش به داده‌های واقعی شبکه‌های اجتماعی

🔹 مرحله 4: افزودن قابلیت بارگذاری فایل

کد وب‌اپ با قابلیت فایل آپلود

یک فایل app_final.py بساز و کد زیر را قرار بده:

import streamlit as st
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from tensorflow.keras.preprocessing.sequence import pad_sequences

max_len = 200

def predict_sentiment(text):
seq = tokenizer.texts_to_sequences([text])
pad = pad_sequences(seq, maxlen=max_len, padding='post')
pred = model.predict(pad)[0][0]
return "Positive" if pred > 0.5 else "Negative"

st.title("Professional Sentiment Analysis App")
st.write("می‌توانید متن‌ها را تایپ کنید یا یک فایل CSV/TXT آپلود کنید.")

# بخش متن دستی
user_input = st.text_area("متن‌ها را وارد کنید (هر متن در یک خط):")

# بخش آپلود فایل
uploaded_file = st.file_uploader("یا فایل CSV/TXT آپلود کنید", type=["csv","txt"])

texts = []

# خواندن داده از فایل
if uploaded_file:
if uploaded_file.name.endswith(".csv"):
df_file = pd.read_csv(uploaded_file)
# فرض می‌کنیم ستون 'text' نام دارد
if 'text' in df_file.columns:
texts = df_file['text'].tolist()
else:
st.warning("ستون 'text' در فایل پیدا نشد.")
elif uploaded_file.name.endswith(".txt"):
texts = uploaded_file.read().decode("utf-8").split("\n")

# اگر متن دستی وارد شده
if user_input.strip() != "":
texts += user_input.strip().split("\n")

if st.button("تحلیل"):
if texts:
results = [predict_sentiment(t) for t in texts]
df_results = pd.DataFrame({"Text": texts, "Sentiment": results})
st.dataframe(df_results)

# نمودار درصد احساسات
sns.set_style("whitegrid")
fig, ax = plt.subplots()
df_results['Sentiment'].value_counts().plot(kind='bar', color=['green','red'], ax=ax)
ax.set_ylabel("Count")
ax.set_title("Sentiment Distribution")
st.pyplot(fig)

# ذخیره نتایج در CSV
df_results.to_csv("sentiment_results.csv", index=False)
st.success("نتایج ذخیره شد: sentiment_results.csv")
else:
st.warning("هیچ متنی برای تحلیل وجود ندارد.")


🔹 مرحله 5: اجرای نسخه حرفه‌ای

در ترمینال دستور زیر را وارد کن:

streamlit run app_final.py

ویژگی‌های این نسخه:

  1. تحلیل متن‌های تایپ شده

  2. تحلیل متن‌های بارگذاری شده از فایل CSV/TXT

  3. نمایش جدول و نمودار درصد احساسات

  4. ذخیره نتایج در CSV برای تحلیل‌های بعدی

🔹 مرحله حرفه‌ای: استفاده از مدل BERT

1. چرا BERT؟

  • مدل‌های سنتی LSTM و RNN برای متن‌های کوتاه خوب هستند، ولی برای جملات طولانی یا پیچیده محدودیت دارند.

  • BERT (Bidirectional Encoder Representations from Transformers) توانایی درک زمینه جملات دوطرفه را دارد و دقت تحلیل احساسات را به طور قابل توجهی افزایش می‌دهد.


2. نصب کتابخانه‌های مورد نیاز

pip install transformers
pip install datasets
pip install torch

3. بارگذاری مدل پیش‌آموزش دیده BERT

from transformers import BertTokenizer, TFBertForSequenceClassification
import tensorflow as tf

# بارگذاری tokenizer و مدل پیش‌آموزش دیده
tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')
model = TFBertForSequenceClassification.from_pretrained('bert-base-uncased', num_labels=2)


4. آماده‌سازی داده‌ها

def encode_texts(texts, max_len=128):
return tokenizer(texts, padding=True, truncation=True, max_length=max_len, return_tensors='tf')

X_train_enc = encode_texts(X_train.tolist())
X_test_enc = encode_texts(X_test.tolist())


5. آموزش مدل

optimizer = tf.keras.optimizers.Adam(learning_rate=2e-5)
loss = tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True)
metric = tf.keras.metrics.SparseCategoricalAccuracy('accuracy')

model.compile(optimizer=optimizer, loss=loss, metrics=[metric])

history = model.fit(
X_train_enc['input_ids'], y_train,
validation_split=0.2,
epochs=3,
batch_size=16
)


6. ارزیابی مدل

loss, accuracy = model.evaluate(X_test_enc['input_ids'], y_test)
print("Test Accuracy with BERT:", accuracy)

7. پیش‌بینی متن جدید

def predict_sentiment_bert(text):
inputs = encode_texts([text])
preds = model.predict(inputs['input_ids']).logits
pred_class = tf.argmax(preds, axis=1).numpy()[0]
return "Positive 😊" if pred_class == 1 else "Negative 😢"

# تست
print(predict_sentiment_bert("I absolutely loved this movie!"))


✅ مزایای این روش:

  1. دقت بسیار بالاتر نسبت به LSTM

  2. قابلیت درک زمینه و معنی جملات پیچیده

  3. امکان استفاده در متن‌های بلند یا داده‌های اجتماعی

  4. آماده برای پیاده‌سازی در وب‌اپ حرفه‌ای


پست های مرتبط