讲师:程栋

Python就业方向:互联网工作;

C/C++--->Java--->PHP--->Javascript--->python

文本分析:对非格式化的纯文本数据进行数据分析和挖掘

·格式化数据分析:表格/JSON...

·非格式化数据分析:字符串/文本

前置能力:python编程的基础 可以看《零基础一小时学会Python编程》

本课程内容:中文分词/自定义词典+去停用词/词频统计+关键词抽取/案例:招聘需求

历史很悠久的语言,和新时代的语言,古老的语言,词和词之间没有间隔,英文之间有空格,汉语之间词与词之间没有空格,对计算机而言,需要先分词。比如中文,需要先做中文分词。

将0维的非格式化文本转化为格式化、向量化数据。

python文本分析 Python文本分析 迪潘简 萨卡尔_自定义

1.导入库

import numpy as np
import pandas as pd

import jieba
import jieba.analyse

2.载入文本,可以直接载入,也可以调用文档

a = '我是XX大学的博XXX,今天很开心给大家分享一些关于研究方法的知识'

python文本分析 Python文本分析 迪潘简 萨卡尔_文本分析_02

 

python文本分析 Python文本分析 迪潘简 萨卡尔_自定义_03

3.使用jieba库的语句,分词。

b = jieba.cut(a)
 blist(b)
for i in jieb

a.cut(a):
    print(i)

python文本分析 Python文本分析 迪潘简 萨卡尔_python文本分析_04

4.把分词连成句子

c = ' '.join(b)
 c

5.存储到文档中

with open ('Downloads/tmp/text_cut.txt','w', encoding = 'utf-8') as f:
     f.write(c)

python文本分析 Python文本分析 迪潘简 萨卡尔_文本分析_05

 

python文本分析 Python文本分析 迪潘简 萨卡尔_python文本分析_06

如果词分错了,怎么办?---添加自定义词典/动态增加或删除系统词典/停用词

1.添加自定义词典

jieba库内部有词典,包括它指导的所有词汇,而汉语在发展中,有些词可能没有,所以需要人工的添加自定义的词,丰富jieba词库。

操作:在文件夹中添加一个custom.txt,在里面添加词汇。

云计算

创新办

python文本分析 Python文本分析 迪潘简 萨卡尔_Python_07

两种办法,第一种:列表;第二种:外部载入; 

2.动态增加或删除词典的词

比添加自定义词典灵活,随用随加。

python文本分析 Python文本分析 迪潘简 萨卡尔_Python_08

通过删除词汇。

如果爬虫多,用pycharm

如果数据多,用jupyter notebook

还可以增加词---jieba.add_word()

还可以调整词汇的权重---通过jieba.suggest_freq()

python文本分析 Python文本分析 迪潘简 萨卡尔_自定义_09

3. 去停用词:例如你好,再见,的,地,得等;去掉无实意的词

通过文档建立一个停用词的列表

python文本分析 Python文本分析 迪潘简 萨卡尔_自定义_10

通过数组转化文本和停用词。比较两者中的词汇是否相同,如果相同,做非运算,在x内且不再y内的词,进行保留。

python文本分析 Python文本分析 迪潘简 萨卡尔_Python_11

再进一步去掉1个字的词,一般这种词无意义:

 

python文本分析 Python文本分析 迪潘简 萨卡尔_自定义_12

python文本分析 Python文本分析 迪潘简 萨卡尔_python_13

或者直接写嵌套式:

 

python文本分析 Python文本分析 迪潘简 萨卡尔_python_14

 分词实践活动:抽取文档关键词

***词频统计:

分词,去词,统计;

先分词;再用pd库形成分词的表格,最后再统计每个词出现了多少次。 

python文本分析 Python文本分析 迪潘简 萨卡尔_python文本分析_15

###可以去看Python爬虫视频

用上述的方法可以做实例

 

python文本分析 Python文本分析 迪潘简 萨卡尔_Python_16

python文本分析 Python文本分析 迪潘简 萨卡尔_Python_17

python文本分析 Python文本分析 迪潘简 萨卡尔_python文本分析_18

 

python文本分析 Python文本分析 迪潘简 萨卡尔_python_19

另外可以用TF-IDF权重算法 

python文本分析 Python文本分析 迪潘简 萨卡尔_Python_20

未完...待续...

continue

conda info -e #查看anaconda里都有哪些环境

pip install xxx #安装某个库 例如 pip install numpy

pip list #列出所在环境都安装了哪些库

TF-IDF算法不需要单独操作分词,默认会自己分词,抽取词频较高的词

原理:给每个词打分,按分数排序。

python文本分析 Python文本分析 迪潘简 萨卡尔_python文本分析_21

python文本分析 Python文本分析 迪潘简 萨卡尔_python_22

 

 

Text-Rank算法

准确性较差

原理:看周围的词重不重要

python文本分析 Python文本分析 迪潘简 萨卡尔_python文本分析_23

 

计算机内的分词还是比较细致的,有人专门做这方面的工作。

--例如 中科院ICTCLAS分词汉语词性标记集

python文本分析 Python文本分析 迪潘简 萨卡尔_Python_24

语言学---用文本分析,看变化。