如何用python对文章中文分词并统计词频

Python015

如何用python对文章中文分词并统计词频,第1张

1、全局变量在函数中使用时需要加入global声明

2、获取网页内容存入文件时的编码为ascii进行正则匹配时需要decode为GB2312,当匹配到的中文写入文件时需要encode成GB2312写入文件。

3、中文字符匹配过滤正则表达式为ur'[\u4e00-\u9fa5]+',使用findall找到所有的中文字符存入分组

4、KEY,Value值可以使用dict存储,排序后可以使用list存储

5、字符串处理使用split分割,然后使用index截取字符串,判断哪些是名词和动词

6、命令行使用需要导入os,os.system(cmd)

python中文分词:结巴分词

中文分词是中文文本处理的一个基础性工作,结巴分词利用进行中文分词。其基本实现原理有三点:

基于Trie树结构实现高效的词图扫描,生成句子中汉字所有可能成词情况所构成的有向无环图(DAG)

采用了动态规划查找最大概率路径, 找出基于词频的最大切分组合

对于未登录词,采用了基于汉字成词能力的HMM模型,使用了Viterbi算法

安装(Linux环境)

下载工具包,解压后进入目录下,运行:python setup.py install

模式

默认模式,试图将句子最精确地切开,适合文本分析

全模式,把句子中所有的可以成词的词语都扫描出来,适合搜索引擎

接口

组件只提供jieba.cut 方法用于分词

cut方法接受两个输入参数:

第一个参数为需要分词的字符串

cut_all参数用来控制分词模式

待分词的字符串可以是gbk字符串、utf-8字符串或者unicode

jieba.cut返回的结构是一个可迭代的generator,可以使用for循环来获得分词后得到的每一个词语(unicode),也可以用list(jieba.cut(...))转化为list

实例

#! -*- coding:utf-8 -*-

import jieba

seg_list = jieba.cut("我来到北京清华大学", cut_all = True)

print "Full Mode:", ' '.join(seg_list)

seg_list = jieba.cut("我来到北京清华大学")

print "Default Mode:", ' '.join(seg_list)