使用snownlp进行微博情感分析的学习实践
作者:马丁乐_449 | 来源:互联网 | 2024-11-27 15:01
本文介绍了如何利用snownlp库对微博内容进行情感分析,包括安装、基本使用以及如何自定义训练模型以提高分析准确性。
### 学习资源
- **项目主页**: [snownlp GitHub](https://github.com/isnowfy/snownlp)
### 基本使用示例
```python
from snownlp import SnowNLP
s = SnowNLP('这款产品真的很不错')
print(s.words) # 输出: ['这款', '产品', '真的', '很', '不错']
print(s.tags) # 输出: [('这款', 'r'), ('产品', 'n'), ('真的', 'd'), ('很', 'd'), ('不错', 'Va')]
print(s.sentiments) # 输出: 0.9769663402895832 (表示正面情感的概率)
print(s.pinyin) # 输出: ['zhe', 'ke', 'chan', 'pin', 'zhen', 'de', 'hen', 'bu', 'cuo']
```
### 处理繁体文本
```python
s = SnowNLP('「繁體字」「繁體中文」的叫法在臺灣亦很常見。')
print(s.han) # 输出: 「繁体字」「繁体中文」的叫法在台湾亦很常见。
```
### 自然语言处理概述
自然语言处理(NLP)是计算机科学和人工智能领域的一个重要分支,专注于研究和开发能够使计算机与人类通过自然语言进行有效沟通的技术和理论。这门学科融合了语言学、计算机科学和数学等多个领域的知识。NLP不仅关注自然语言本身,还致力于构建有效的计算机系统来实现这些功能,因此,它是计算机科学的一个组成部分。
### 关键词提取与文本摘要
```python
text = '''自然语言处理是计算机科学领域与人工智能领域中的一个重要方向。它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。自然语言处理是一门融语言学、计算机科学、数学于一体的科学。因此,这一领域的研究将涉及自然语言,即人们日常使用的语言,所以它与语言学的研究有着密切的联系,但又有重要的区别。自然语言处理并不是一般地研究自然语言,而在于研制能有效地实现自然语言通信的计算机系统,特别是其中的软件系统。因而它是计算机科学的一部分。'''
s = SnowNLP(text)
print(s.keywords(3)) # 输出: ['语言', '自然', '计算机']
print(s.summary(3)) # 输出: ['因而它是计算机科学的一部分。', '自然语言处理是一门融语言学、计算机科学、数学于一体的科学。', '自然语言处理是计算机科学领域与人工智能领域中的一个重要方向。']
```
### 文本相似度计算
```python
s = SnowNLP([[u'这篇', u'文章'], [u'那篇', u'论文'], [u'这个']])
print(s.tf) # 输出: {'这篇': 0.3333333333333333, '文章': 0.3333333333333333, '那篇': 0.3333333333333333, '论文': 0.3333333333333333, '这个': 0.3333333333333333}
print(s.idf) # 输出: {'这篇': 0.6931471805599453, '文章': 0.6931471805599453, '那篇': 0.6931471805599453, '论文': 0.6931471805599453, '这个': 0.6931471805599453}
print(s.sim(['文章'])) # 输出: [0.3756070762985226, 0, 0]
```
### 模型训练
snownlp提供了一系列工具用于训练分词、词性标注及情感分析等任务,并提供了原始训练数据文件。训练完成后,模型会被保存为`sentiment.marshal`文件。为了使用新训练的模型,需要修改`snownlp/sentiment/__init__.py`中的`data_path`指向新的模型文件。
#### 训练代码示例
```python
from snownlp import sentiment
sentiment.train('neg.txt', 'pos.txt')
sentiment.save('sentiment.marshal')
```
#### 负面评论样本
```text
- 用了两罐资生堂发膜后,再买发现要税。还是用蜂花吧
- 资生堂非常好,但我还是喜欢兰蔻
- 资生堂的买回来没用过两次
- 资生堂的睫毛夹太难用了,我又要重新买一个别的了
```
#### 正面评论样本
```text
- 轻薄好用,适合补妆
- 资生堂新透白美肌这一套用完后,早上起来脸滑滑的是没错了
- 我的天,爱上资生堂的六角眉笔,这也太好用了吧
- 目前为止最爱的一套,资生堂这个系列真给力
- 我爱资生堂的洗面奶!给我刷子洗得巨干净
- 无语,这个资生堂的什么鬼绿野芳香惠润柔净洗发露(名字太拗口了!),也太好闻了,真是香喷喷
- 吹爆资生堂智能,真的太适合我了哈哈哈
- 为资生堂疯狂打call
- 我是不是说过资生堂红腰子很鸡肋,我现在给它道歉。资生堂全系列都好用
- 资生堂这个遮瑕,好用不贵性价比超高!但是有点黑!
- 新水乳打一下卡,资生堂D系列,外观太好看啦
```
#### 结论
- 使用默认模型进行情感分析时,可能与实际情况存在偏差。例如,某些评论虽然被默认模型识别为正面情感,但实际上表达了负面情绪。
- 通过自定义训练模型,可以显著提高情感分析的准确性和适用性。
- 训练完成后,记得更新模型调用路径,确保使用最新的训练成果。
推荐阅读
-
本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ...
[详细]
蜡笔小新 2024-12-28 04:11:47
-
本文详细介绍了如何使用 Yii2 的 GridView 组件在列表页面实现数据的直接编辑功能。通过具体的代码示例和步骤,帮助开发者快速掌握这一实用技巧。 ...
[详细]
蜡笔小新 2024-12-27 16:27:52
-
-
本文介绍了一种适用于 Android 应用的 LED 数字字体(digital font),并详细描述了其在 UI 设计中的应用场景及其实现方法。这种字体常用于视频、广告倒计时等场景,能够增强视觉效果。 ...
[详细]
蜡笔小新 2024-12-27 10:34:22
-
本文详细介绍了日志系统ViseLog的使用方法及其核心功能,旨在帮助开发者更好地理解和利用这一工具,提高开发效率。 ...
[详细]
蜡笔小新 2024-12-16 09:12:55
-
addcslashes—以C语言风格使用反斜线转义字符串中的字符addslashes—使用反斜线引用字符串bin2hex—函数把包含数据的二进制字符串转换为十六进制值chop—rt ...
[详细]
蜡笔小新 2024-12-15 12:31:43
-
自然语言处理本节介绍如何使用Python中的库,生成词云图,涉及自然语言处理的相关问题,自然语言处理是计算机科学领域与人工智能领域中的一个 ...
[详细]
蜡笔小新 2024-12-02 18:34:55
-
本文详细介绍了Java中org.neo4j.helpers.collection.Iterators.single()方法的功能、使用场景及代码示例,帮助开发者更好地理解和应用该方法。 ...
[详细]
蜡笔小新 2024-12-28 10:51:55
-
本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ...
[详细]
蜡笔小新 2024-12-27 13:55:14
-
本文详细解析了Python中的os和sys模块,介绍了它们的功能、常用方法及其在实际编程中的应用。 ...
[详细]
蜡笔小新 2024-12-26 22:04:19
-
RecyclerView初步学习(一)ReCyclerView提供了一种插件式的编程模式,除了提供ViewHolder缓存模式,还可以自定义动画,分割符,布局样式,相比于传统的ListVi ...
[详细]
蜡笔小新 2024-12-26 20:24:01
-
本文将详细介绍如何利用Python的Paramiko库实现远程执行Linux脚本和命令,帮助读者快速掌握这一实用技能。通过具体的示例和详尽的解释,让初学者也能轻松上手。 ...
[详细]
蜡笔小新 2024-12-26 19:47:05
-
本文探讨了 Objective-C 中的一些重要语法特性,包括 goto 语句、块(block)的使用、访问修饰符以及属性管理等。通过实例代码和详细解释,帮助开发者更好地理解和应用这些特性。 ...
[详细]
蜡笔小新 2024-12-26 19:42:38
-
最近团队在部署DLP,作为一个技术人员对于黑盒看不到的地方还是充满了好奇心。多次咨询乙方人员DLP的算法原理是什么,他们都以商业秘密为由避而不谈,不得已只能自己查资料学习,于是有了下面的浅见。身为甲方,虽然不需要开发DLP产品,但是也有必要弄明白DLP基本的原理。俗话说工欲善其事必先利其器,只有在懂这个工具的原理之后才能更加灵活地使用这个工具,即使出现意外情况也能快速排错,越接近底层,越接近真相。根据DLP的实际用途,本文将DLP检测分为2部分,泄露关键字检测和近似重复文档检测。 ...
[详细]
蜡笔小新 2024-12-25 18:19:32
-
本文详细介绍如何在VSCode中配置自定义代码片段,使其具备与IDEA相似的代码生成快捷键功能。通过具体的Java和HTML代码片段示例,展示配置步骤及效果。 ...
[详细]
蜡笔小新 2024-12-25 17:10:13
-
本文将介绍网易NEC CSS框架的规范及其在实际项目中的应用。通过详细解析其分类和命名规则,探讨如何编写高效、可维护的CSS代码,并分享一些实用的学习心得。 ...
[详细]
蜡笔小新 2024-12-24 18:08:51
-