Python数据挖掘学习笔记(1)文本挖掘入门

一、准备阶段:

(1)打开cmd,pip安装jieba(pip install jieba)

(2)打开python安装目录的Lib->site-packages->jieba,打开dict.txt,可以看到这是jieba模块的词典:

Python数据挖掘学习笔记(1)文本挖掘入门_第1张图片    

    每三个为一组,分别是:词、词频、词性,关于词性的对照表见附录。

二、编写代码:

1、准备阶段:

import jieba #导入模块
#创建用于分词的文本
sentence="我喜欢上海东方明珠"

2、进行文本分词:

(1)精准模式分词法,根据词频获得句子中的最大词频组合,也是默认的分词方法,下面两种代码实现结果相同:

w1=jieba.cut(sentence,cut_all=False)
w1=jieba.cut(sentence)

(2)全模式分词法,获取句子中的所有组合词:

w2=jieba.cut(sentence,cut_all=False)

(3)搜索引擎分词法,按照搜索引擎的方式进行分词:

w3=jieba.cut_for_search(sentence)

(4)输出分词结果,注意到分词法返回的结果是generator object,因此必须循环输出:

print("精准模式:\n")
for item in w1: 
    print(item)
print("全模式:\n")
for item in w2: 
    print(item)
print("搜索引擎模式:\n")
for item in w3: 
    print(item)

    结果:

Python数据挖掘学习笔记(1)文本挖掘入门_第2张图片

3、获得分词结果的同时获取词语的词性:需要使用jieba.posseg.cut方法代替原有分词法。

import jieba.posseg
sentence="我喜欢上海东方明珠"
w4=jieba.posseg.cut(sentence)
#.flag词性,.word词语
for item in w4:
    print(item.word+"-------"+item.flag)

结果:

Python数据挖掘学习笔记(1)文本挖掘入门_第3张图片

4、自定义词典:

(1)测试,在无自定义词典的情况下:

import jieba
sentence="欢迎来到召唤师峡谷"
w5=jieba.cut(sentence)
for item in w5:
    print(item)

结果:

Python数据挖掘学习笔记(1)文本挖掘入门_第4张图片

“召唤师峡谷”是一个专有名词,想要让其识别需要自定义词典。

(2)新建dict2.txt,在内输入:

(第2和第3参数可以省略),然后保存,注意编码必须为UTF-8。

(3)编写代码读取字典并再次分词:

import jieba
#读取字典
jieba.load_userdict("E:/dict2.txt")
sentence="欢迎来到召唤师峡谷"
w6=jieba.cut(sentence)
for item in w6:
    print(item)

结果:

(4)或者通过代码的方式添加词典:

import jieba
#添加词典词语
jieba.add_word("召唤师峡谷")
#同理删除词典词语:jieba.del_word("峡谷")
sentence="欢迎来到召唤师峡谷"
w7=jieba.cut(sentence)
for item in w7:
    print(item)

可实现同样的效果。

5、调高词典词频(没有则添加):


import jieba
#调高词典词语的词频,没有则添加
jieba.suggest_freq("召唤师峡谷",True)
sentence="欢迎来到召唤师峡谷"
w7=jieba.cut(sentence)
for item in w7:
    print(item)

5、提取关键词:

     即提取词频较高的几个词,默认提取前20个,若总词数少于20则输出全部。

import jieba.analyse
sentence3="我喜欢上海东方明珠哈哈东方明珠"
tag=jieba.analyse.extract_tags(sentence3,3)
print(tag)

结果:

6、返回词语位置:

(1)默认情况(精准分词模式)

import jieba.analyse
sentence3="我喜欢上海东方明珠哈哈东方明珠"
w8=jieba.tokenize(sentence3)
for item in w8:
    print(item)

结果:

Python数据挖掘学习笔记(1)文本挖掘入门_第5张图片

(2)搜索引擎分词模式:

import jieba.analyse
sentence3="我喜欢上海东方明珠哈哈东方明珠"
w9=jieba.tokenize(sentence3,mode="search")
for item in w9:
    print(item)

附录:词性对照表

词性

表示符号

形容词 a 形容词
  ad 副形词
  an 名形词
  ag 形容词性语素
  al 形容词性惯用语
区别词 b 区别词
  bl 区别词性惯用语
连词 c 连词
  cc 并列连词
副词 d 副词
叹词 e 叹词
方位词 f 方位词
前缀 h 前缀
后缀 k 后缀
数词 m 数词
  mq 数量词
名词 n 名词
  nr 人名
  nr1 汉语姓氏
  nr2 汉语名字
  nrj 日语人名
  nrf 音译人名
  ns 地名
  nsf 音译地名
  nt 机构团体名
  nz 其它专名
  nl 名词性惯用语
  ng 名词性语素
拟声词 o 拟声词
介词 p 介词
  pba 介词“把”
  pbei 介词“被”
量词 q 量词
  qv 动量词
  qt 时量词
代词 r 代词
  rr 人称代词
  rz 指示代词
  rzt 时间指示代词
  rzs 处所指示代词
  rzv 谓词性指示代词
  ry 疑问代词
  ryt 时间疑问代词
  rys 处所疑问代词
  ryv 谓词性疑问代词
  rg 代词性语素
处所词 s 处所词
时间词 t 时间词 tg 时间词性语素
助词 u 助词
  uzhe 着
  ule 了 喽
  uguo 过
  ude1 的 底
  ude2 地
  ude3 得
  usuo 所
  udeng 等 等等 云云
  uyy 一样 一般 似的 般
  udh 的话
  uls 来讲 来说 而言 说来
  uzhi 之
  ulian 连 (“连小学生都会”)
动词 v 动词
  vd 副动词
  vn 名动词
  vshi 动词“是”
  vyou 动词“有”
  vf 趋向动词
  vx 形式动词
  vi 不及物动词(内动词)
  vl 动词性惯用语
  vg 动词性语素
标点符号 w 标点符号
  wkz 左括号,全角:( 〔 [ { 《 【 〖 〈 半角:( [ { < wky 右括号,全角:) 〕 ] } 》 】 〗 〉 半角: ) ] { >
  wyz 左引号,全角:“ ‘ 『
  wyy 右引号,全角:” ’ 』
  wj 句号,全角:。
  ww 问号,全角:? 半角:? wt 叹号,全角:! 半角:!
  wd 逗号,全角:, 半角:,
  wf 分号,全角:; 半角: ;
  wn 顿号,全角:、wm 冒号,全角:: 半角: :
  ws 省略号,全角:…… …
  wp 破折号,全角:—— -- ——- 半角:— —-
  wb 百分号千分号,全角:% ‰ 半角:%
  wh 单位符号,全角:¥ $ £ ° ℃ 半角:$
字符串 x 字符串 xx 非语素字 xu 网址URL
语气词 y 语气词(delete yg)
状态词 z 状态词

你可能感兴趣的:(Python)