OmPatil2806/App-review-sentiment-nlp
GitHub: OmPatil2806/App-review-sentiment-nlp
端到端 NLP 管道,对 Google Play Store 应用评论进行正面、负面、中性三分类情感分析,横向对比 Logistic Regression、LSTM 与 DistilBERT 三种模型的表现。
Stars: 0 | Forks: 0
# App Review 情感 NLP
一个端到端 NLP pipeline,用于将 Google Play Store 应用评论分类为正面、负面或中性。这最初是我为了在同一个真实数据集上对比经典 ML、深度学习与 transformers 而创建的,而不是仅仅停留在阅读它们之间的差异上。
## 数据集
使用 [Google Play Store 用户评论](https://www.kaggle.com/datasets/lava18/google-play-store-apps)数据集(`googleplaystore_user_reviews.csv`)。它包含了各种应用的翻译后用户评论,以及情感标签和极性/主观性得分。
## Notebook 包含的内容
该 pipeline 分为以下几个部分:
- **EDA** – 类别分布、评论长度、缺失值、词云
- **文本清洗** – 转换为小写、标点符号/停用词移除、词形还原、语言检测(剔除非英语评论),以及过滤极短的评论
- **预处理** – 使用 SMOTE 处理类别不平衡问题
- **特征工程** – TF-IDF 和 Word2Vec embeddings
- **建模** – 训练并对比了三种方法:
- Logistic Regression (TF-IDF)
- LSTM (Word2Vec embeddings)
- DistilBERT (fine-tuned transformer)
- **评估** – 准确率、F1、混淆矩阵,以及三种模型的并排对比
## 环境设置
```
pip install -r requirements.txt
python -m spacy download en_core_web_sm
```
然后只需打开 `app_review_sentiment_pipeline.ipynb` 并从头到尾运行所有单元格。NLTK 在首次运行时会自动拉取所需的资源(punkt、stopwords、wordnet)。
请注意:DistilBERT 部分如果使用 GPU 运行速度会快得多。在 CPU 上依然可以运行,只是需要多些耐心。
## 文件
```
├── app_review_sentiment_pipeline.ipynb # main notebook
├── generate_notebook.py # script that builds the notebook programmatically
└── googleplaystore_user_reviews.csv # dataset
```
标签:Apex, DistilBERT, LSTM, TF-IDF, 情感分析, 数据科学, 文本分类, 机器学习, 资源验证, 逆向工具