TextMining
一个比较全面的文本挖掘过程。包含了利用机器学习和文本挖掘技术完成情感分析模型搭建;利用情感极性判断与程度计算来判断情感倾向;利用词频和TF-IDF挖掘出正负文本中的关键点情况;利用文本挖掘相关算法找到平台中用户讨论的集中点。
Install / Use
/learn @MatoYing/TextMiningREADME
电商评论文本挖掘
前言
该项目是我在大三选修课(大数据分析与应用)的实验报告,我觉得文本挖掘的项目网上相对来说不是很多,我也是参考了许多Github上的项目,以及自己的一些所学,而完成的一个比较全面的文本挖掘项目。我觉的整体批注写的还比较详细的,便于业余选手,或者只是想了解了解文本挖掘、机器学习、调调包的同学们学习。欢迎大家交流。
目录结构
好评:好评数据(只上传了一些)。
工具:所有代码中国另外需要读取的东西(我改变了原有的目录结构,如果下载下来要跑的话记得更改读取文件的目录)。
差评:差评数据(只上传了一些)。
README.md
plus_motion.ipnb:源代码。
README目录
- 1.实验目的
- 2.数据介绍
- 3.数据清洗
- 4.利用机器学习和文本挖掘技术完成情感分析模型搭建
- 5.利用情感极性判断与程度计算来判断情感倾向
- 6.利用词频和TF-IDF挖掘出正负文本中的关键点情况
- 7.利用文本挖掘相关算法找到平台中用户讨论的集中点
1.实验目的
利用所学,对如下数据进行文本挖掘,主要实现一下四个方面内容:
- 利用机器学习和文本挖掘技术完成情感分析模型搭建。
- 利用情感极性判断与程度计算来判断情感倾向。
- 利用词频和TF-IDF挖掘出正负文本中的关键点情况。
- 利用文本挖掘相关算法找到平台中用户讨论的集中点。
2.数据介绍
主要由商品id,评论时间、评论内容、点赞数、评论打分构成。

3.数据清洗
- 使用unique观察商品id、点赞数、评论打分的情况。

- 查看评论打分的具体分布,发现4非常少,所以将4归为5分。并且为了方便,将5变为1,将1变为0。


- 观察每个商品好评与差评的数量分布,可以发现一个商品好评、差评最多1000条,一个商品好评>=差评。

- 观察每年的商品数量,可以发现主要集中在2021年附近。

- 观察评论长度分布。

- 观察评论长度大小分布情况。

- 根据以上观察,去掉一些长度过短、过长的评论。

- 删除重复值。

- 删除标点符号或英文字母过多的评论。

- 处理HTML符号。

- 处理*(可能是违禁语、价格、品牌),好评:差评=1:2,应该保留。但每个的数量还不一样,为了避免jieba分出来多个,将每个出现的都变为1个*。

- 将“京东”、“奶粉”字样去除,所有商品都是奶粉,都来自于京东。

- jieba分词。


- 根据停用词,处理分词后的结果。

- 利用jieba.posseg进行分词后的词性识别。


- 数据清洗后的结果。

4.利用机器学习和文本挖掘技术完成情感分析模型搭建
- 根据不同函数情感挖掘的情况,对逻辑回归LogisticRegression、多项式贝叶斯MultionamialNB、随机森林RandomForestClassifier进行进一步探索。
- 首先对文字使用TF-IDF进行处理变为数字。


- 对数据进行PCA降维,从累计贡献率可以看出,使用PCA降维的效果欠佳,几乎每个特征都不能消除,特征之间都几乎不具备共线性,所以不使用PCA降维。


- 使用RandomForestClassifier模型的feature_importance_属性来找出前N个最重要的特征。

- 根据RandomForestClassifier的重要性特征排序,分别每隔100,进行ROC比较,找到合适的特征个数,前900个已经不错。




- 同理使用卡方检验选出前N重要的特征,前800个特征已经相当不错。

- 将RandomForestClassifier的前900特征,与SelectKBest前800特征,合并,形成新的特征。

- 合并后计算ROC-AUC曲线,效果还不错。

- 用得到的新特征开始进行三个模型训练,并分别利用网格搜索、随机网格搜索、交叉验证来进行调参,并通过计算准确率、查全率等,绘制混淆矩阵,绘制ROC-AUC曲线进行对比,最后发现逻辑回归的整体性能表现最好。






5.利用情感极性判断与程度计算来判断情感倾向
- 主要思路:对文档分词,找出文档中的情感词、否定词以及程度副词;然后判断每个情感词之前是否有否定词及程度副词,将它之前的否定词和程度副词划分为一个组;如果有否定词将情感词的情感权值乘以-1,如果有程度副词就乘以程度副词的程度值;最后所有组的得分加起来,大于0的归于正向,小于0的归于负向,得分的绝对值大小反映了积极或消极的程度。
- 读取否定词、程度副词、情感极性词典。

- 根据情感词计算情感分数。

- 计算正确率,为0.835,效果还不错。


6.利用词频和TF-IDF挖掘出正负文本中的关键点情况
- 利用Tf-idf将文字转为有权重的特征值。

- 根据权重排名,取出权重比较大的特征。



- 绘制云词图可视化展示。


- 生成共现矩阵,利用共现矩阵查看具体一个词说了什么,大约1200-300,重要性高的词调高end。


- 可以得到以下结论,顾客对以下方面比较满意/在意:宝宝喜欢,老人喜欢(少部分奶粉是老人奶粉);味道、口感、接近母乳;营养配方,身体免疫力,清火,消化吸收;正品;包装;物流速度,快递员服务(顾客喜欢下单第二天就送达);活动力度,价格,性价比,比超市便宜;大品牌;溶解性好,结块不严重;日期新鲜;自营;满意度:飞鹤>伊利>安佳>蒙牛(>德运);满意度:脱脂>全脂;满意度:进口>国产;独立小包装;可以和麦片搭配销售。
顾客对以下方面比较不满意/在意,差评数据量不太大,很多都是上面好评原因的对立面,下面为几个主要原因:客服服务,售后;勺子;奶粉的质量、口味;买完就降价;没送赠品;保质期;结块;包装问题,快递问题;不满意:飞鹤>伊利;假货,不是原装进口。
7.利用文本挖掘相关算法找到平台中用户讨论的集中点
- 利用奇异值分解对评论主题分析。




- 好评的主要主题为:牛奶的配方有营养,味道好;牛奶便于吸收,溶解性好,清火,有营养;口感好,香味十足;接近母乳,更喜欢飞鹤;物流快,包装好。分布为主题一最多。

- 差评的主要主题为:味道不好,客服不满意,包装不好,勺子不好;客服不好,买完就降价,包装不好,赠品不好;勺子不好,客服不满意,买完就降价,快递不配送,少赠品。分布为主题一最多。

Related Skills
claude-opus-4-5-migration
110.6kMigrate prompts and code from Claude Sonnet 4.0, Sonnet 4.5, or Opus 4.1 to Opus 4.5
model-usage
351.2kUse CodexBar CLI local cost usage to summarize per-model usage for Codex or Claude, including the current (most recent) model or a full model breakdown. Trigger when asked for model-level usage/cost data from codexbar, or when you need a scriptable per-model summary from codexbar cost JSON.
TrendRadar
51.1k⭐AI-driven public opinion & trend monitor with multi-platform aggregation, RSS, and smart alerts.🎯 告别信息过载,你的 AI 舆情监控助手与热点筛选工具!聚合多平台热点 + RSS 订阅,支持关键词精准筛选。AI 智能筛选新闻 + AI 翻译 + AI 分析简报直推手机,也支持接入 MCP 架构,赋能 AI 自然语言对话分析、情感洞察与趋势预测等。支持 Docker ,数据本地/云端自持。集成微信/飞书/钉钉/Telegram/邮件/ntfy/bark/slack 等渠道智能推送。
mcp-for-beginners
15.8kThis open-source curriculum introduces the fundamentals of Model Context Protocol (MCP) through real-world, cross-language examples in .NET, Java, TypeScript, JavaScript, Rust and Python. Designed for developers, it focuses on practical techniques for building modular, scalable, and secure AI workflows from session setup to service orchestration.
