腾讯课堂 | Python网络爬虫与文本分析

tidytext是R语言的文本分析包,一般数据会整理为dataframe,每行都是由docid-word-freq组成。有一本R语言的文本挖掘书《Text mining with R》,知识体系挺完整的,该书主力分析工具是R语言的tidytext包。

Python中也有一个tidytext库,是对R语言版本的python实现,大家可以了解下文本分析新的数据组织形式,会有一种耳目一新的感觉。Python版只有分词和tfidf两个功能,而R语言中的tidytext还有三种情感词典(bing/nrc/afinn),进行情感分析。如果大家电脑里同时有Python和R,可以使用rpy2库 | 在jupyter中调用R语言代码 这样也能在Python中体验R的文本分析工具。

安装

pip3 install tidytext

准备数据

这里以Python之禅的英文文本作为待处理的文本数据。

import pandas as pd#设置最大显示行数
pd.set_option('display.max_rows', 6)zen = """
The Zen of Python, by Tim PetersBeautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!
"""zen_split = zen.splitlines()df = pd.DataFrame({'docid': list(range(len(zen_split))),'text': zen_split})df
docid text
0 0
1 1 The Zen of Python, by Tim Peters
2 2
... ... ...
19 19 If the implementation is hard to explain, it's...
20 20 If the implementation is easy to explain, it m...
21 21 Namespaces are one honking great idea -- let's...

22 rows × 2 columns

tidytext库常用函数

  • unnest_tokens 分词

  • bind_tf_idf 计算tf-idf

注意 如果是中文数据,需要先用jieba库把中文整理为 英文样式(用空格间隔词语的形式)

分词

unnest_tokens(_data, output, input)

  • _data 传入的df

  • output 分词结果字段名

  • input df中待分词数据的字段名

现在使用tidytext库中的unnest_tokens()进行分词。可以结合昨日文章了解plydata用法 plydata库 | 数据操作管道操作符>>

from tidytext import unnest_tokens, bind_tf_idf
from plydata import count, slice_rows#等同于unnest_tokens(data=df,output='word',input='zen')
tokens = df >> unnest_tokens(output='word',input='text')
tokens
docid word
0 0 NaN
1 1 the
1 1 zen
... ... ...
21 21 more
21 21 of
21 21 those

145 rows × 2 columns

#统计词频,显示前20个词
wordfreq1 = (tokens >> count('word', sort=True)>> slice_rows(10))
wordfreq1
word n
0 is 10
1 better 8
2 than 8
... ... ...
7 although 3
8 idea 3
9 be 3

10 rows × 2 columns

词频可视化

熟悉R语言的童鞋应该都不陌生下面的可视化代码,我们使用Python的plotnine库进行可视化绘图 plotnine: Python版的ggplot2作图库

from plotnine import ggplot, aes, geom_col, coord_flip, xlab, ylab(ggplot(wordfreq1, aes('reorder(word, n)', 'n'))+geom_col()+coord_flip()+ylab('word frequency')+xlab('')
)

计算tf-idf

bind_tf_idf(_data, term, document, n)

  • _data 传入的df

  • term df中词语对应的字段名

  • document df中文档id的字段名

  • n df中词频数对应的字段名

tokens

(tokens>> count('docid', 'word', sort=True)
)

(tokens>> count('docid', 'word', sort=True)>> bind_tf_idf(term='word', document='docid', n='n')
)

近期文章

[更新] Python网络爬虫与文本数据分析
rpy2库 | 在jupyter中调用R语言代码
plydata库 | 数据操作管道操作符>>
plotnine: Python版的ggplot2作图库七夕礼物 | 全网最火的钉子绕线图制作教程读完本文你就了解什么是文本分析文本分析在经管领域中的应用概述
综述:文本分析在市场营销研究中的应用plotnine: Python版的ggplot2作图库
小案例: Pandas的apply方法
stylecloud:简洁易用的词云库
用Python绘制近20年地方财政收入变迁史视频
Wow~70G上市公司定期报告数据集漂亮~pandas可以无缝衔接Bokeh
YelpDaset: 酒店管理类数据集10+G
后台回复关键词【20200820】获取本文代码和《text mining with R》汉化教程
  • 分享”和“在看”是更好的支持!

tidytext | 耳目一新的R-style文本分析库相关推荐

  1. 用R进行文本分析初探——以《红楼梦》为例

    原博地址:http://www.cnblogs.com/zzhzhao/p/5299876.html[侵删] 一.写在前面的话~ 刚吃饭的时候同学问我,你为什么要用R做文本分析,你不是应该用R建模么, ...

  2. python红楼梦人物词频统计_用R进行文本分析初探——以《红楼梦》为例

    刚刚接触R语言和文本分析,为了将二者结合,试着对<红楼梦>进行分析,首先对<红楼梦>进行分词处理,并统计词频,同时画出标签云. 其实文本分析还可以分析其它很多东西,我的下一步打 ...

  3. python文本分析库_8种Python文本处理工具集

    文本处理一般包括词性标注,句法分析,关键词提取,文本分类,情感分析等等,这是针对中文的,如果是对于英文来说,只需要基本的tokenize.本文为大家提供了以下这些工具包. 1.Jieba [结巴中文分 ...

  4. python 文本分析库_Python有趣|中文文本情感分析

    前言 前文给大家说了python机器学习的路径,这光说不练假把式,这次,罗罗攀就带大家完成一个中文文本情感分析的机器学习项目,今天的流程如下: 数据情况和处理 数据情况 这里的数据为大众点评上的评论数 ...

  5. python 文本分析库_快速使用Python进行文本情感分析

    文本情感分析是自然语言处理的一个重要部分,与语音情感分析类似,通过处理提取给定文本中的信息来衡量说话者/作者的态度和情绪,主要用于电影.商品以及社交媒体的用户评论分析等. VADER是一个基于词典和规 ...

  6. 《计算传播学导论》读书笔记——第二章文本分析简介

    <计算传播学导论>读书笔记--第二章文本分析简介 第一节 文本分析研究现状 常用文本挖掘技术 第二节 文本分析与传播学研究 (一)为什么文本挖掘技术逐渐受到传播学者的关注 (二)不同文本分 ...

  7. Python文本分析技巧

    上一章提到,Python是一门易用且强大的编程语言,所以本书将其作为示例语言使用,同时也提供了一套基础的Python文本分析的教程. 为什么要介绍这些Python技巧?原因是希望读者具有Python和 ...

  8. 请用python编写日语文本分析脚本,并使结果可视化

    首先,您需要选择一个文本分析库,如NLTK或Janome,来帮助您处理日语文本.接下来,您可以使用这些库中的功能,如词频统计,词性标注等,来分析日语文本. 关于可视化,您可以使用matplotlib库 ...

  9. r语言上机文本分析与词云绘制_倚天屠龙记的文本分析

    <倚天屠龙记>作为金庸先生的经典作品,在无数人心目中留下了深刻的印象,基本上隔一段时间这部经典作品就会被重新拍成电影或者电视剧,可见观众的喜爱程度.虽然本人没有完完全全拜读过先生的这部作品 ...

最新文章

  1. 2021-05-10 linux中的find命令——查找文件名
  2. python如何拟合三维平面(拟合Intel Realsense D435深度数据点)
  3. css_04 | CSS——CSS 值和单位
  4. Product mass creation tool
  5. Qt::Key_Return和Qt::Key_Enter区别
  6. 使用Idea简单搭建springcloud项目
  7. 苹果一体机系统恢复_趁双十一大促销,赶紧升级苹果一体机升级SSD固态和液态内存吧...
  8. 面试题46. 把数字翻译成字符串
  9. java自动推送百度收录_站点添加百度自动推送和360自动推送代码,让收录更快!...
  10. 0.python class
  11. paip.提升用户体验---c++ qt自定义窗体(1)---标题栏的绘制
  12. 基于51单片机和 ADC0808 ADC0809的自动数字电压表proteus仿真程序设计
  13. 生成图片带有随机码的验证码
  14. 《数据结构》第四章串,数组和广义表
  15. 腾讯秀丽江山之长歌行服务器维护,37长歌行5月15日合服维护公告
  16. leetcode 思路——64. 最小路径和——174. 地下城游戏
  17. 跨域请求的API接口
  18. 【功能测试】软件系统测试报告
  19. R语言filter()函数
  20. 【软考备战·希赛网每日一练】2023年4月21日

热门文章

  1. 顶配售价 18499 元,用上 M1 的 iPad Pro 性能与价格“直逼”电脑,这届苹果发布会有你喜欢的吗?...
  2. 本地调试HTML和CSS的方法
  3. 《ICNet for Real-Time Semantic Segmentation on High-Resolution Images》论文阅读及代码实现
  4. Ubuntu连接投影仪时,分辨率不匹配引起的错误
  5. 【VSLAM学习记录1】视觉SLAM
  6. CLTPHP 5.5.3 任意文件上传漏洞
  7. VB为报表盖电子图章
  8. 插入排序与希尔排序(数据结构)
  9. RobotStudio软件二次开发:插件(Add-Ins)UI的开发方法
  10. 【评测】pall疫苗生产解决方案