SnowNLP: 一个简单的中文文本处理库

SnowNLP是一个python写的类库,可以方便的处理中文文本内容,是受到了TextBlob的启发而写的,由于现在大部分的自然语言处理库基本都是针对英文的,于是写了一个方便处理中文的类库,并且和TextBlob不同的是,这里没有用NLTK,所有的算法都是自己实现的,并且自带了一些训练好的字典。注意本程序都是处理的unicode编码,所以使用时请自行decode成unicode。

from snownlp import SnowNLP

s = SnowNLP(u'这个东西真心很赞')

s.words # [u'这个', u'东西', u'真心',

# u'很', u'赞']

s.tags # [(u'这个', u'r'), (u'东西', u'n'),

# (u'真心', u'd'), (u'很', u'd'),

# (u'赞', u'Vg')]

s.sentiments # 0.9769663402895832 positive的概率

s.pinyin # [u'zhe', u'ge', u'dong', u'xi',

# u'zhen', u'xin', u'hen', u'zan']

s = SnowNLP(u'「繁體字」「繁體中文」的叫法在臺灣亦很常見。')

s.han # u'「繁体字」「繁体中文」的叫法

# 在台湾亦很常见。'

text = u'''

自然语言处理是计算机科学领域与人工智能领域中的一个重要方向。

它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。

自然语言处理是一门融语言学、计算机科学、数学于一体的科学。

因此,这一领域的研究将涉及自然语言,即人们日常使用的语言,

所以它与语言学的研究有着密切的联系,但又有重要的区别。

自然语言处理并不是一般地研究自然语言,

而在于研制能有效地实现自然语言通信的计算机系统,

特别是其中的软件系统。因而它是计算机科学的一部分。

'''

s = SnowNLP(text)

s.keywords(3) # [u'语言', u'自然', u'计算机']

s.summary(3) # [u'因而它是计算机科学的一部分',

# u'自然语言处理是一门融语言学、计算机科学、

# 数学于一体的科学',

# u'自然语言处理是计算机科学领域与人工智能

# 领域中的一个重要方向']

s.sentences

s = SnowNLP([[u'这篇', u'文章'],

[u'那篇', u'论文'],

[u'这个']])

s.tf

s.idf

s.sim([u'文章'])# [0.3756070762985226, 0, 0]

Features

词性标注(TnT 3-gram 隐马)

情感分析(现在训练数据主要是买卖东西时的评价,所以对其他的一些可能效果不是很好,待解决)

文本分类(Naive Bayes)

转换成拼音(Trie树实现的最大匹配)

繁体转简体(Trie树实现的最大匹配)

提取文本关键词(TextRank算法)

提取文本摘要(TextRank算法)

tf,idf

Tokenization(分割成句子)

文本相似(BM25)

支持python3(感谢erning)

Get It now

$ pip install snownlp

关于训练

现在提供训练的包括分词,词性标注,情感分析,而且都提供了我用来训练的原始文件 以分词为例 分词在snownlp/seg目录下

from snownlp import seg

seg.train('data.txt')

seg.save('seg.marshal')

# from snownlp import tag

# tag.train('199801.txt')

# tag.save('tag.marshal')

# from snownlp import sentiment

# sentiment.train('neg.txt', 'pos.txt')

# sentiment.save('sentiment.marshal')

这样训练好的文件就存储为seg.marshal了,之后修改snownlp/seg/__init__.py里的data_path指向刚训练好的文件即可

原创文章,转载请注明 :python使用snownlp进行中文文本处理以及分词和情感分析 - pytorch中文网

原文出处: https://ptorch.com/news/202.html

问题交流群 :168117787

python中文文本分析_python使用snownlp进行中文文本处理以及分词和情感分析 - pytorch中文网...相关推荐

  1. Python分词、情感分析工具——SnowNLP

    本文内容主要参考GitHub:https://github.com/isnowfy/snownlp what's the SnowNLP SnowNLP是一个python写的类库,可以方便的处理中文文 ...

  2. snownlp文本分词、情感分析、文本相似度与摘要生成

    使用的库是snownlp库,github项目地址:https://github.com/isnowfy/snownlp 文章目录 安装 使用方法 安装 pip安装:pip install -i htt ...

  3. python文本编辑器_python最好的ide和文本编辑器

    python文本编辑器 I cannot stress enough how important the right IDE (Integrated Development Environment) ...

  4. python编码转换在线_Python 编码转换与中文处理

    Python 编码转换与中文处理 python 中的 unicode是让人很困惑.比较难以理解的问题. utf-8是unicode的一种实现方式,unicode.gbk.gb2312是编码字符集. d ...

  5. 自然语言处理:wordcloud+snownlp《西虹市首富》影评情感分析

    前言 最近看了沈腾主演的电影<西虹市首富>,心想怎么没有十个亿砸我头上,我保证比王多鱼还败家,但是细细一想,要是真的砸脑袋上,估计就随给王多鱼他二爷去了. 闲话少说,言归正传,电影上映一段 ...

  6. SnowNLP使用自定义语料进行模型训练(情感分析)

    SnowNLP SnowNLP是一个功能强大的中文文本处理库,它囊括了中文分词.词性标注.情感分析.文本分类.关键字/摘要提取.TF/IDF.文本相似度等诸多功能,像隐马尔科夫模型.朴素贝叶斯.Tex ...

  7. 《Python数据分析与挖掘实战》第15章 ——电商产品评论数据情感分析(LED)

    文章目录 1.挖掘背景与目标 2.2 数据探索与预处理 2.1 数据筛选 2.2 数据去重 2.3 删除前缀评分 2.4 jieba分词 3 基于LDA 模型的主题分析 4.权重 5.如何在主题空间比 ...

  8. 情感分析朴素贝叶斯_朴素贝叶斯推文的情感分析

    情感分析朴素贝叶斯 Millions of tweets are posted every second. It helps us know how the public is responding ...

  9. textblob 情感分析_使用TextBlob进行远程学习的推文中的情感分析

    textblob 情感分析 Hi everyone, 嗨,大家好, The Covid19 Pandemic brought about distance learning in the 2020 a ...

最新文章

  1. LINQ系列:LINQ to SQL Join连接
  2. 20170626_oracle_数据库设计
  3. android定时循环,Android AlarmManager实现定时循环后台任务
  4. html跨年表白代码
  5. 贝壳宣布内部调查实质性完成
  6. C++基础部分_C++文件操作_二进制文件的写操作---C++语言工作笔记078
  7. centos7下使用git提交代码
  8. MPLS virtual private network Spoken-Hub网络实验(华为设备)
  9. php增加html元素,使用php将appendChild($ element)添加到现有的html元素中
  10. 盐酸二甲双胍pH敏感性壳聚糖水凝胶微球/木质素磺酸钠海藻酸钠壳聚糖水凝胶微球的研究制备
  11. 如何优雅的停止一个线程?
  12. 与“雾霾”相关的英语表达
  13. 远程控制与Nvidia显卡驱动和CUDA版本
  14. 本地策略从网络访问此计算机没有guest,网络访问没有类型,无法访问共享、共享文件、共享打印机...
  15. 服务器与pc机的区别
  16. php mysql抽奖转盘_thinkphp 微信抽奖源码PHP前后台+转盘+数据库完整示例
  17. 目标检测之DarkNet-DarkNet源码解读<一>测试篇
  18. coalesce---一个很有用的函数
  19. 如何用java判断手机号运营商?
  20. 红牛饮料:借力蓝凌EKP 创造超乎想象的管理支撑能量

热门文章

  1. qtp:exit 函数
  2. LAMP平台架构浅析
  3. 灵活运用 SQL SERVER FOR XML PATH
  4. createtrackbar函数_【3】OpenCV图像处理模块(10)inRange函数实现阈值化,HSV图像分割...
  5. Hive的数据模型-外部表
  6. python中mako中loop_python中Mako库实例用法
  7. not support mysql_MYSQL出现quot; Client does not support authentication quot;的解决方法
  8. [转载] 1022 D进制的A+B (20分)【java题解】【80ms】
  9. Java线程start()vs run()方法及示例
  10. php 文字超出画布,input实现文字超出省略号(代码示例)