为什么php做不了大网站,sql网站发布流程,wordpress源码导读,淘宝网店代运营#xfeff;最近项目需要#xff0c;实现文本的词频分析#xff0c;折腾了几天才完成任务#xff0c;有点成就感#xff0c;最后整理总结一下这部分的内容#xff0c;希望更多同僚受益。一.使用前准备环境#xff1a;Python3.6安装结巴#xff1a;pip install jiaba下载…最近项目需要实现文本的词频分析折腾了几天才完成任务有点成就感最后整理总结一下这部分的内容希望更多同僚受益。一.使用前准备环境Python3.6安装结巴pip install jiaba下载停用词词典哈工大停用词词典构建补充词典userdict后文详解运行文章最后面的完整代码二.jieba官网参考gitee.com三.功能介绍结巴中文分词做最好的Python中文分词组件 支持三种分词模式精确模式试图将句子最精确地切开适合文本分析全模式把句子中所有的可以成词的词语都扫描出来, 速度非常快但是不能解决歧义搜索引擎模式在精确模式的基础上对长词再次切分提高召回率适合用于搜索引擎分词。四.算法思路基于Trie树结构实现高效的词图扫描生成句子中汉字所有可能成词情况所构成的有向无环图DAG)采用了动态规划查找最大概率路径, 找出基于词频的最大切分组合对于未登录词采用了基于汉字成词能力的HMM模型使用了Viterbi算法五.使用方法1、分词jieba.cut方法接受两个输入参数: 1) 第一个参数为需要分词的字符串 2cut_all参数用来控制是否采用全模式jieba.cut_for_search方法接受一个参数需要分词的字符串,该方法适合用于搜索引擎构建倒排索引的分词粒度比较细 注意待分词的字符串可以是gbk字符串、utf-8字符串或者unicodejieba.cut以及jieba.cut_for_search返回的结构都是一个可迭代的generator可以使用for循环来获得分词后得到的每一个词语(unicode)也可以用list(jieba.cut(...))转化为list代码#encodingutf-8
import jiebaseg_list jieba.cut(我来到北京清华大学, cut_allTrue)
print Full Mode:, / .join(seg_list) # 全模式seg_list jieba.cut(我来到北京清华大学, cut_allFalse)
print Default Mode:, / .join(seg_list) # 精确模式seg_list jieba.cut(他来到了网易杭研大厦) # 默认是精确模式
print , .join(seg_list)seg_list jieba.cut_for_search(小明硕士毕业于中国科学院计算所后在日本京都大学深造) # 搜索引擎模式
print , .join(seg_list)输出【全模式】: 我/ 来到/ 北京/ 清华/ 清华大学/ 华大/ 大学【精确模式】: 我/ 来到/ 北京/ 清华大学【新词识别】他, 来到, 了, 网易, 杭研, 大厦 (此处“杭研”并没有在词典中但是也被Viterbi算法识别出来了)【搜索引擎模式】 小明, 硕士, 毕业, 于, 中国, 科学, 学院, 科学院, 中国科学院, 计算, 计算所, 后, 在, 日本, 京都, 大学, 日本京都大学, 深造2、自定义词典补充 开发者可以指定自己自定义的词典以便包含jieba词库里没有的词。虽然jieba有新词识别能力但是自行添加新词可以保证更高的正确率 用法 jieba.load_userdict(file_name) # file_name为自定义词典的路径 词典格式和dict.txt一样一个词占一行每一行分三部分一部分为词语另一部分为词频最后为词性可省略用空格隔开userdict.txt即补充词库示例极速模式 20
北京清华大学 5
李小福 2 nr
创新办 3 i
easy_install 3 eng
好用 300
韩玉赏鉴 3 nz
八一双鹿 3 nz
台中
凱特琳 nz
Edu Trust认证 2000用法示例#encodingutf-8
from __future__ import print_function, unicode_literals
import sys
sys.path.append(../)
import jieba
jieba.load_userdict(userdict.txt)
import jieba.posseg as psegjieba.add_word(石墨烯)
jieba.add_word(凱特琳)
jieba.del_word(自定义词)test_sent (
李小福是创新办主任也是云计算方面的专家; 什么是八一双鹿n
例如我输入一个带“韩玉赏鉴”的标题在自定义词库中也增加了此词为N类n
「台中」正確應該不會被切開。mac上可分出「石墨烯」此時又可以分出來凱特琳了。
)
words jieba.cut(test_sent)
print(/.join(words))print(*40)result pseg.cut(test_sent)for w in result:print(w.word, /, w.flag, , , end )print(n *40)terms jieba.cut(easy_install is great)
print(/.join(terms))
terms jieba.cut(python 的正则表达式是好用的)
print(/.join(terms))print(*40)
# test frequency tune
testlist [
(今天天气不错, (今天, 天气)),
(如果放到post中将出错。, (中, 将)),
(我们中出了一个叛徒, (中, 出)),
]for sent, seg in testlist:print(/.join(jieba.cut(sent, HMMFalse)))word .join(seg)print(%s Before: %s, After: %s % (word, jieba.get_FREQ(word), jieba.suggest_freq(seg, True)))print(/.join(jieba.cut(sent, HMMFalse)))
print(-*40)之前 李小福 / 是 / 创新 / 办 / 主任 / 也 / 是 / 云 / 计算 / 方面 / 的 / 专家 /加载自定义词库后 李小福 / 是 / 创新办 / 主任 / 也 / 是 / 云计算 / 方面 / 的 / 专家 /3、停用词词库补充 停用词停用词是指在信息检索中为节省存储空间和提高搜索效率在处理自然语言数据或文本之前或之后会自动过滤掉某些字或词这些字或词即被称为Stop Words停用词。这些停用词都是人工输入、非自动化生成的生成后的停用词会形成一个停用词表。但是并没有一个明确的停用词表能够适用于所有的工具。甚至有一些工具是明确地避免使用停用词来支持短语搜索的。 使用哈工大停用词词库下载地址download.csdn.net4、词频统计PYTHON3.6对中文文本分词、去停用词以及词频统计_WhiteRiver的博客-CSDN博客blog.csdn.net完整代码from collections import Counter
import jieba
jieba.load_userdict(userdict.txt)# 创建停用词list
def stopwordslist(filepath):stopwords [line.strip() for line in open(filepath, r).readlines()]return stopwords# 对句子进行分词
def seg_sentence(sentence):sentence_seged jieba.cut(sentence.strip())stopwords stopwordslist(G:哈工大停用词表.txt) # 这里加载停用词的路径outstr for word in sentence_seged:if word not in stopwords:if word ! t:outstr wordoutstr return outstrinputs open(hebing_wenbenwenben.txt, r) #加载要处理的文件的路径
outputs open(output.txt, w) #加载处理后的文件路径
for line in inputs:line_seg seg_sentence(line) # 这里的返回值是字符串outputs.write(line_seg)
outputs.close()
inputs.close()
# WordCount
with open(output.txt, r) as fr: #读入已经去除停用词的文件data jieba.cut(fr.read())
data dict(Counter(data))with open(cipin.txt, w) as fw: #读入存储wordcount的文件路径for k, v in data.items():fw.write(%s,%dn % (k, v))相关文章手把手教你制作 中英文 词云 | python demoblog.csdn.net