文章目录

  • 一. 中文文本分析相关库
    • 1. 中文分词jieba库
      • (1). jieba库概述
      • (2). jieba库安装
      • (3). jieba分词原理
      • (4). jieba库的使用说明
        • 1. 精确模式
        • 2. 全模式
        • 3. 搜索引擎模式
      • (5). jieba库常用函数
    • 2. 词云绘制worldcloud库
      • (1). worldcloud库概述
      • (2). worldcloud库安装
      • (3). worldcloud库使用说明
      • (4). wordcloud库常规方法
        • 1. 举例:
        • 2. 分析:
      • (5). 配置对象参数
        • 1. 举例1
        • 2. 实例2
      • (6). 政府工作报告词云
    • 3. 社交关系网络networkx库
  • 二. 文本词频统计
    • 1. 文本词频统计问题分析
    • 2. 文本词频统计实例
    • 3. hamlet英文词频统计实例
    • 4. 三国演义人物出场统计实例
      • (1). 代码一
      • (2). 代码二升级版

一. 中文文本分析相关库

1. 中文分词jieba库

(1). jieba库概述

jieba是优秀的中文分词第三方库

(2). jieba库安装

(3). jieba分词原理

jieba分词利用中文词库

(4). jieba库的使用说明

jieba分词的三种模式

1. 精确模式

把文本精确的切分开,不存在冗余单词

2. 全模式

把文本中所有可能词语都扫描出来,有冗余

3. 搜索引擎模式

在精确模式的基础上,对长词再次切分

(5). jieba库常用函数


2. 词云绘制worldcloud库

(1). worldcloud库概述

(2). worldcloud库安装

(3). worldcloud库使用说明

wordcloud库把词云当作一个WordCloud对象

(4). wordcloud库常规方法


1. 举例:

import wordcloud# 步骤一:配置对象参数
c = wordcloud.WordCloud()
# 步骤二:加载词云文本
c.generate("wordcloud by Python")
# 步骤三:输出词云文件
c.to_file("pywordcloud.png")

2. 分析:

(5). 配置对象参数




1. 举例1

import wordcloud
txt = "life is short,you need python"
w = wordcloud.WordCloud(background_color="white")
w.generate(txt)
w.to_file("pywordcloud1.png")

2. 实例2

import jieba
import wordcloud
txt = "程序设计语言是计算机能够理解和识别用户\操作意图的一种交互体系,它按照特定规则组织计算机指令,\使计算机能够自动进行各种运算处理"
w = wordcloud.WordCloud(width=1000,font_path="msyh.ttc",height=700)
w.generate(" ".join(jieba.lcut(txt)))
w.to_file("pywordcloud2.png")

(6). 政府工作报告词云

#GovRptWordCloudv1.py
import jieba
import wordcloud
f = open("新时代中国特色社会主义.txt", "r", encoding="utf-8")t = f.read()
f.close()
ls = jieba.lcut(t)txt = " ".join(ls)
w = wordcloud.WordCloud( \width = 1000, height = 700,\background_color = "white",font_path = "msyh.ttc"    )
w.generate(txt)
w.to_file("grwordcloud.png")

#GovRptWordCloudv2.py
import jieba
import wordcloud
from imageio import imread
mask = imread("fivestar.png")
#excludes = { }
f = open("新时代中国特色社会主义.txt", "r", encoding="utf-8")
t = f.read()
f.close()
ls = jieba.lcut(t)
txt = " ".join(ls)
w = wordcloud.WordCloud(\width = 1000, height = 700,\background_color = "white",font_path = "msyh.ttc", mask = mask)
w.generate(txt)
w.to_file("grwordcloudm.png")

3. 社交关系网络networkx库

二. 文本词频统计

1. 文本词频统计问题分析

需求:一篇文章,出现了哪些词?哪些词出现的最多?

做法:先判断文章是英文的还是中文的

2. 文本词频统计实例

3. hamlet英文词频统计实例

#CalHamletV1.py
def getText():txt = open("hamlet.txt", "r").read()txt = txt.lower()for ch in '!"#$%&()*+,-./:;<=>?@[\\]^_‘{|}~':txt = txt.replace(ch, " ")   #将文本中特殊字符替换为空格return txthamletTxt = getText()
words  = hamletTxt.split()
counts = {}
for word in words:          counts[word] = counts.get(word,0) + 1 #判断获取的词是否在字典中,默认为0
items = list(counts.items())    #转换为列表类型
items.sort(key=lambda x:x[1], reverse=True)     #进行按照键值对的2个元素的第二个元素进行排序
for i in range(10):word, count = items[i]print ("{0:<10}{1:>5}".format(word, count))结果:
the        1138
and         965
to          754
of          669
you         550
i           542
a           542
my          514
hamlet      462
in          436

4. 三国演义人物出场统计实例

(1). 代码一

#CalThreeKingdomsV1.py
import jieba
txt = open("threekingdoms.txt", "r", encoding='utf-8').read()
words  = jieba.lcut(txt)    #分词处理,形参列表
counts = {}     #构造字典
for word in words:if len(word) == 1:continueelse:counts[word] = counts.get(word,0) + 1
items = list(counts.items())    #转换为列表类型
items.sort(key=lambda x:x[1], reverse=True)
for i in range(15):word, count = items[i]print ("{0:<10}{1:>5}".format(word, count))结果:
曹操          953
孔明          836
将军          772
却说          656
玄德          585
关公          510
丞相          491
二人          469
不可          440
荆州          425
玄德曰         390
孔明曰         390
不能          384
如此          378
张飞          358

(2). 代码二升级版

#CalThreeKingdomsV2.py
import jieba
excludes = {"将军","却说","荆州","二人","不可","不能","如此"}   #将确定不是人名的取出掉
txt = open("threekingdoms.txt", "r", encoding='utf-8').read()
words  = jieba.lcut(txt)
counts = {}
for word in words:if len(word) == 1:continueelif word == "诸葛亮" or word == "孔明曰":  #进行人名关联rword = "孔明"elif word == "关公" or word == "云长":rword = "关羽"elif word == "玄德" or word == "玄德曰":rword = "刘备"elif word == "孟德" or word == "丞相":rword = "曹操"else:rword = wordcounts[rword] = counts.get(rword,0) + 1
for word in excludes:del counts[word]
items = list(counts.items())
items.sort(key=lambda x:x[1], reverse=True)
for i in range(10):word, count = items[i]print ("{0:<10}{1:>5}".format(word, count))结果:
曹操         1451
孔明         1383
刘备         1252
关羽          784
张飞          358
商议          344
如何          338
主公          331
军士          317
吕布          300

Python中文文本分析基础相关推荐

  1. python 中文文本分析

    中文文本分析 Mac 安装pip 和 jieba curl https://bootstrap.pypa.io/get-pip.py | python3 你可以接着输入 pip --version 看 ...

  2. Python中文文本分析时遇到的编码问题小结

    最近在做python的中文文本分析,万事开头难,最开始就发现了很多中文编码问题,以下对问题进行了汇总. 问题1:中文文本读取时遇到的编码问题 在读取文件后,直接print就会产生问题,如下: 解决方案 ...

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

    SnowNLP: 一个简单的中文文本处理库 SnowNLP是一个python写的类库,可以方便的处理中文文本内容,是受到了TextBlob的启发而写的,由于现在大部分的自然语言处理库基本都是针对英文的 ...

  4. python中文文本分析_中文文本处理

    斯坦福大学自然语言处理组是世界知名的NLP研究小组,他们提供了一系列开源的Java文本分析工具,包括分词器(Word Segmenter),词性标注工具(Part-Of-Speech Tagger), ...

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

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

  6. python中文文本分析_python--文本分析

    一. 导读 文本分析主要用来分词分析,情感分析以及主题分析,参考 知乎用户的文章,他从方法代码上讲解了中英文分词(wordcloud,jieba),中英文情感分析(textblob,snownlp), ...

  7. python中文文本分析_基于CNN的中文文本分类算法(可应用于垃圾邮件过滤、情感分析等场景)...

    基于cnn的中文文本分类算法 简介 参考IMPLEMENTING A CNN FOR TEXT CLASSIFICATION IN TENSORFLOW实现的一个简单的卷积神经网络,用于中文文本分类任 ...

  8. python中文文本分析和提取_python str(使用python对txt文本进行分析和提取)

    python 文本文件数据处理 #/usr/bin/env python3 # -*- coding: utf-8 -*- def zhidao_560604345(infile, outfile): ...

  9. python中文文本分析_python简单的分析文本

    import collections import re #读取tips.txt文件内容,type(mytips)=str with open("tips.txt","r ...

最新文章

  1. java changelistener_ListChangeListener.Change
  2. 《Head First Java》的思考总结:第三篇
  3. 加锁查询 FOR UPDATE 解决表格查询极慢的问题
  4. jquery 导航栏目
  5. [caffe]深度学习之图像分类模型AlexNet解读
  6. C#中使用StreamReader实现文本文件的读取与写入
  7. “如果把所有的经济学家都放在一起,他们永远不会得出结论。 - 萧伯纳
  8. 世界上最稳定的系统——维稳就靠它了!
  9. where is Fiori count server execution interval configured
  10. 最小生成树KrusKal算法(并查集)
  11. mysqlreport 文档
  12. [渝粤教育] 西南科技大学 液压与气压传动 在线考试复习资料(1)
  13. java报告模板_JAVA报告模板.doc
  14. PPT 插入表格出现格式如何清除
  15. C++ 使用replace()方法替换字符串中的反斜杠:左斜杠(\)和右斜杠(/)
  16. 文本数据挖掘之文本信息抽取
  17. 深入探访支付宝双11十年路,技术凿穿焦虑与想象极限 | CYZONE特写
  18. steam饥荒mod编写,基础的lua语言学习笔记——第一期
  19. 锐捷密码忘了!-锐捷密码查看器
  20. (吴恩达)6.应用机器学习的建议、机器学习系统的设计

热门文章

  1. 反思过去,以期少走弯路
  2. 如何将WPS格式转换为图片格式 WPS转换图片步骤
  3. RZ7889 是一款DC 双向马达驱动电路IC
  4. htmlimg图片加载失败_js针对图片加载失败的处理方法分析
  5. Check Point: 线上社交如何反欺诈?
  6. 最好用的截图软件Faststone Capture 6.9 安装包及注册码
  7. 中科院特别提醒:发布成果时勿随意使用“国内首创”“国际领先”等词语!
  8. 内存泄露(十)-- KOOM(高性能线上内存监控方案)
  9. [qt creator]pro文件的设置
  10. 鼠来宝4:萌在囧途[Alvin and the Chipmunks: The Road Chip]