{"id":31696576,"url":"https://github.com/code-alchemist01/lstm-sentiment-analysis","last_synced_at":"2026-04-15T16:03:19.407Z","repository":{"id":317454725,"uuid":"1067489033","full_name":"code-alchemist01/Lstm-sentiment-analysis","owner":"code-alchemist01","description":"LSTM-based sentiment analysis with Streamlit web interface. Real-time text sentiment prediction using PyTorch deep learning model trained on IMDB dataset. Achieves 86.14% accuracy with modern UI and batch processing capabilities.","archived":false,"fork":false,"pushed_at":"2025-09-30T23:57:27.000Z","size":159,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-01T01:20:40.793Z","etag":null,"topics":["deep-learning","lstm","machine-learning","nlp","pytorch","sentiment-analysis","streamlit","text-classification"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/code-alchemist01.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-30T23:51:12.000Z","updated_at":"2025-10-01T00:00:53.000Z","dependencies_parsed_at":"2025-10-01T01:20:42.555Z","dependency_job_id":"ba981660-4bb7-4736-bb8b-af90b5f50a0a","html_url":"https://github.com/code-alchemist01/Lstm-sentiment-analysis","commit_stats":null,"previous_names":["code-alchemist01/lstm-sentiment-analysis"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/code-alchemist01/Lstm-sentiment-analysis","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/code-alchemist01%2FLstm-sentiment-analysis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/code-alchemist01%2FLstm-sentiment-analysis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/code-alchemist01%2FLstm-sentiment-analysis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/code-alchemist01%2FLstm-sentiment-analysis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/code-alchemist01","download_url":"https://codeload.github.com/code-alchemist01/Lstm-sentiment-analysis/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/code-alchemist01%2FLstm-sentiment-analysis/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278981518,"owners_count":26079640,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-08T02:00:06.501Z","response_time":56,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["deep-learning","lstm","machine-learning","nlp","pytorch","sentiment-analysis","streamlit","text-classification"],"created_at":"2025-10-08T17:09:06.036Z","updated_at":"2025-10-08T17:09:08.534Z","avatar_url":"https://github.com/code-alchemist01.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🎭 LSTM Sentiment Analysis\n\nBu proje, LSTM (Long Short-Term Memory) sinir ağları kullanarak duygu analizi yapan kapsamlı bir makine öğrenmesi uygulamasıdır. Proje, hem model eğitimi hem de kullanıcı dostu bir Streamlit web arayüzü içermektedir.\n\n## 📋 İçindekiler\n\n- [Özellikler](#özellikler)\n- [Kurulum](#kurulum)\n- [Kullanım](#kullanım)\n- [Model Mimarisi](#model-mimarisi)\n- [Veri Seti](#veri-seti)\n- [Performans](#performans)\n- [Dosya Yapısı](#dosya-yapısı)\n- [Geliştirici](#geliştirici)\n\n## ✨ Özellikler\n\n### 🤖 Model Özellikleri\n- **LSTM Tabanlı Mimari**: Derin öğrenme ile güçlü duygu analizi\n- **Offline Çalışma**: İnternet bağlantısı gerektirmez\n- **GPU Desteği**: CUDA uyumlu GPU'larda hızlandırılmış eğitim\n- **Özelleştirilebilir Hiperparametreler**: Esnek model konfigürasyonu\n\n### 🖥️ Web Arayüzü\n- **Streamlit Tabanlı**: Modern ve kullanıcı dostu arayüz\n- **Gerçek Zamanlı Analiz**: Anlık duygu tahmini\n- **Batch İşleme**: Çoklu metin analizi\n- **Görselleştirme**: Eğitim grafikleri ve sonuç analizi\n- **Responsive Tasarım**: Mobil ve masaüstü uyumlu\n\n### 📊 Analiz Özellikleri\n- **İkili Sınıflandırma**: Pozitif/Negatif duygu analizi\n- **Güven Skoru**: Tahmin güvenilirlik oranı\n- **Detaylı Raporlama**: Kapsamlı analiz sonuçları\n\u003cimg width=\"1779\" height=\"791\" alt=\"Ekran görüntüsü 2025-10-01 023733\" src=\"https://github.com/user-attachments/assets/f75d5d18-7a4f-4673-a0c0-63a080471a58\" /\u003e\n\u003cimg width=\"1792\" height=\"823\" alt=\"Ekran görüntüsü 2025-10-01 023718\" src=\"https://github.com/user-attachments/assets/cef07c64-6cc5-4646-b033-0ed0ac8a2037\" /\u003e\n\u003cimg width=\"1864\" height=\"791\" alt=\"Ekran görüntüsü 2025-10-01 023659\" src=\"https://github.com/user-attachments/assets/3c9bfd65-e2fd-423a-9bc3-e40e3f7c36f1\" /\u003e\n\n## 🚀 Kurulum\n\n### Gereksinimler\n- Python 3.8+\n- CUDA uyumlu GPU (opsiyonel, performans için önerilir)\n- 8GB+ RAM\n\n### Adım 1: Repository'yi Klonlayın\n```bash\ngit clone https://github.com/kutayşahin/lstm-sentiment-analysis.git\ncd lstm-sentiment-analysis\n```\n\n### Adım 2: Sanal Ortam Oluşturun\n```bash\npython -m venv venv\nsource venv/bin/activate  # Linux/Mac\n# veya\nvenv\\Scripts\\activate     # Windows\n```\n\n### Adım 3: Bağımlılıkları Yükleyin\n```bash\npip install torch torchvision torchaudio\npip install streamlit pandas numpy matplotlib seaborn plotly\npip install scikit-learn tqdm\n```\n\n### Adım 4: Veri Setini İndirin\n```bash\npython download_data.py\n```\n\n## 📖 Kullanım\n\n### Model Eğitimi\n\n#### Basit LSTM Modeli (Önerilen)\n```bash\npython train_simple.py\n```\n\n#### Gelişmiş BERT Tabanlı Model\n```bash\npython train.py\n```\n\n### Web Uygulamasını Başlatma\n```bash\nstreamlit run app.py\n```\n\nUygulama `http://localhost:8501` adresinde çalışacaktır.\n\n\n## 🏗️ Model Mimarisi\n\n### LSTM Sentiment Classifier\n```\nLSTMSentimentClassifier(\n  (embedding): Embedding(10000, 128)\n  (lstm): LSTM(128, 128, batch_first=True, dropout=0.3)\n  (dropout): Dropout(p=0.5)\n  (fc): Linear(128, 2)\n)\n```\n\n### Hiperparametreler\n- **Vocabulary Size**: 10,000 kelime\n- **Embedding Dimension**: 128\n- **Hidden Dimension**: 128\n- **Dropout Rate**: 0.3 (LSTM), 0.5 (FC)\n- **Learning Rate**: 0.001\n- **Batch Size**: 64\n- **Max Sequence Length**: 256\n\n## 📊 Veri Seti\n\n### IMDB Movie Reviews Dataset\n- **Toplam Örnek**: 50,000 film yorumu\n- **Eğitim**: 25,000 örnek\n- **Test**: 25,000 örnek\n- **Sınıflar**: Pozitif (1), Negatif (0)\n- **Dil**: İngilizce\n\n### Veri Ön İşleme\n1. **Tokenization**: Metinlerin kelime düzeyinde ayrıştırılması\n2. **Vocabulary Building**: En sık kullanılan 10,000 kelimenin seçimi\n3. **Padding/Truncation**: Sabit uzunlukta sekans oluşturma\n4. **Normalization**: Küçük harfe çevirme ve özel karakter temizleme\n\n## 📈 Performans\n\n### Model Performansı\n- **Test Accuracy**: %86.14\n- **Training Accuracy**: %91.13\n- **Epochs**: 5\n- **Training Time**: ~15 dakika (RTX 5060 8GB)\n\u003cimg width=\"1144\" height=\"784\" alt=\"Ekran görüntüsü 2025-10-01 022458\" src=\"https://github.com/user-attachments/assets/28e8936a-ed57-4b96-b961-63909bc28b3b\" /\u003e\n\n\n### Performans Metrikleri\n- **Precision**: ~0.86\n- **Recall**: ~0.86\n- **F1-Score**: ~0.86\n- **Model Size**: ~5.6MB\n\n## 📁 Dosya Yapısı\n\n```\n02_NLP_Sentiment_Analysis/\n├── app.py                              # Streamlit web uygulaması\n├── train_simple.py                     # LSTM model eğitimi\n├── train.py                           # BERT model eğitimi (alternatif)\n├── download_data.py                   # Veri indirme scripti\n├── best_lstm_sentiment_model.pth      # Eğitilmiş model\n├── vocabulary.pkl                     # Kelime dağarcığı\n├── lstm_sentiment_training_curves.png # Eğitim grafikleri\n├── README.md                          # Bu dosya\n└── data/                              # Veri klasörü\n    ├── IMDB Dataset.csv              # IMDB veri seti\n    └── ...                           # Diğer veri dosyaları\n```\n\n## 🛠️ Geliştirme\n\n### Yeni Özellik Ekleme\n1. Fork yapın\n2. Feature branch oluşturun (`git checkout -b feature/yeni-ozellik`)\n3. Değişikliklerinizi commit edin (`git commit -am 'Yeni özellik eklendi'`)\n4. Branch'inizi push edin (`git push origin feature/yeni-ozellik`)\n5. Pull Request oluşturun\n\n### Test Etme\n```bash\npython -m pytest tests/\n```\n\n## 🔧 Sorun Giderme\n\n### Yaygın Sorunlar\n\n#### CUDA Hatası\n```\nRuntimeError: CUDA out of memory\n```\n**Çözüm**: Batch size'ı azaltın veya CPU modunda çalıştırın.\n\n#### Vocabulary Hatası\n```\nFileNotFoundError: vocabulary.pkl not found\n```\n**Çözüm**: Önce `train_simple.py` çalıştırarak modeli eğitin.\n\n#### Port Hatası\n```\nPort 8501 is already in use\n```\n**Çözüm**: Farklı port kullanın: `streamlit run app.py --server.port 8502`\n\n## 📝 Lisans\n\nBu proje MIT lisansı altında lisanslanmıştır. Detaylar için [LICENSE](LICENSE) dosyasına bakın.\n\n## 👨‍💻 Geliştirici\n\n**Kutay Şahin**\n- GitHub: [@kutaysahin](https://github.com/kutaysahin)\n- LinkedIn: [Kutay Şahin](https://linkedin.com/in/kutaysahin)\n- Email: kutay@example.com\n\n## 🙏 Teşekkürler\n\n- IMDB veri seti için Stanford AI Lab\n- PyTorch ve Streamlit topluluklarına\n- Açık kaynak katkıda bulunan herkese\n\n## 📚 Referanslar\n\n1. Hochreiter, S., \u0026 Schmidhuber, J. (1997). Long short-term memory. Neural computation, 9(8), 1735-1780.\n2. Maas, A. L., et al. (2011). Learning word vectors for sentiment analysis. ACL.\n3. PyTorch Documentation: https://pytorch.org/docs/\n4. Streamlit Documentation: https://docs.streamlit.io/\n\n---\n\n⭐ Bu projeyi beğendiyseniz yıldız vermeyi unutmayın!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcode-alchemist01%2Flstm-sentiment-analysis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcode-alchemist01%2Flstm-sentiment-analysis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcode-alchemist01%2Flstm-sentiment-analysis/lists"}