分词技术可以分为英文分词和中文分词:
      对于英文分词而言,由于英文单词之间以空格来分隔,所以在进行英文分词的过程中,只需要针对空格进行划分就可以了。
      对于中文分词而言,中文单词之间没有英文单词天然的空格来划分,所以就需要对中文进行处理;主要有三种方式:一个是基于字典匹配的分词方法,一个是基于语义分析的分词算法,还有一个是基于概率统计模型的分词方法。

以下介绍的是python中文分词jieba分词

首先是jieba分词语法:

# -*--coding:utf-8*-import jieba
import jieba.analyse
stopwords = {}.fromkeys([line.rstrip() for line in open('stopkey_zh.txt')])"""jieba 中文分词:支持三种分词模式:精确模式:将句子最精确的分开,适合文本分析全模式:把句子中所有的可以成词的词语都扫描出来,速度非常快,但是不能解决歧义搜索引擎模式:在精确搜索的基础上,对长词进行再次切分,提高召回率,适合用于搜索引擎分词支持繁体分词:支持自定义词典:MIT授权协议算法:基于前缀词典实现高效的词图扫描,生成句子中汉字所有可能成词情况所构成的有向无环图(DAG)采用了动态规划查找最大概率路径,找出基于词频的最大切分组合对于未登录词,采用了基于汉字成词能力的HMM模型,使用了Viterbi算法主要功能:1、分词jieba.cut():三个参数,分词的字符串;cut_all用来控制是否采用全模式;HMM控制是否使用HMM模型jieba.cut_for_search():两个参数,分词的字符串;是否使用HMM模型;上述两个分词方法都可以使用for循环来获取分词后的每个词语。jieba.lcut():直接返回listjieba.lcut_for_search():直接返回listjieba.Tokenizer(dictionary=DEFAULT_DICT):新建自定义分词器2、添加自定义词典jieba.load_userdict(file_name):file_name若为打开的文件,文件必须为UTF8格式的词典格式与dict.txt一样,一个词占一行,每一行分三部分:词语、词频、词性,用空格隔开jieba.add_word():动态增加词典jieba.del_word():动态删除词典jieba.suggeat_freq(segment, tune=True) 调节单个词语的词频,True使其能够分出来, False使其不能分出来注意jieba默认的dict中的词语,要结合默认dict进行中文分词3、关键词提取jieba.analyse.extract_tags(sentence, topK=20, withWeight=False, allowPOS=()):sentence:待提取的文本topK:返回几个TF-IDF权重最大的关键词,默认值为20withWeight:是否一并返回关键词权重值,默认值为FalseallowPOS:仅包括指定词性的词,默认值为空jieba.analyse.TFIDF(idf_path=None):jieba.analyse.set_idf_path(file_name):jieba.analyse.set_stop_words(file_name):jieba.analyse.textrank(sentence, topK=20,withWeight=False,allowPOS=()):jieba.analyse.TextRank():4、词性标注jieba.posseg.POSTokenizer(tokenizer=None):5、并行分词jieba.enable_parallel(4):开启并行模式jieba.disable_parallel():关闭并行模式注意:并行分词不能在windows下运行6、Tokenize:返回词语在原文的起止位置jieba.tokenize():7、ChineseAnalyzer for Whoosh 搜索引擎8、命令行分词
"""
# 0、读取文本
f = open('sentences.txt')
s = f.read()
print s
print type(s)
print '----------------------------------------------'final = ''
for st in s:# st = st.encode('utf8')if st not in stopwords:final += stfinal += ' '
print final
print type(final)
print '----------------------------------------------'# 1、分词
seg_list = jieba.cut(s, cut_all=True)  # 全模式
print '[01 Full Model]:' + '/'.join(seg_list)
print '--------------'
seg_list = jieba.cut(s, cut_all=False)  # 精确模式
print '[02 Accuracy Model:]:' + '/'.join(seg_list)
print '--------------'
seg_list = jieba.cut(s, cut_all=False, HMM=True)  # 精确模式,HMM模型
print '[03 Accuracy Model:]:' + '/'.join(seg_list)
print '--------------'
seg_list = jieba.cut(s)  # 默认为精确模式
print '[04 Accuracy Model in Default:]:' + '/'.join(seg_list)
print '--------------'
seg_list = jieba.cut_for_search(s)  # 搜索引擎模式
print '[05 Search Engine Model:]:' + '/'.join(seg_list)
print '-----------------------------------------------'# 2、添加自定义词典
jieba.load_userdict('userdict.txt')
jieba.add_word('两国元首')  # 添加词典
jieba.del_word('两国元首')  # 删除词典
jieba.suggest_freq(('日', '电'), True)
jieba.suggest_freq('日电', False)
words = jieba.cut(s)  # 默认方式
print '/'.join(words)
print '-----------------------------------------------'# 3、关键词提取
# 基于TF-IDF算法的关键词提取
import jieba
import jieba.analyse# # 关键词提取
tags = jieba.analyse.extract_tags(s, topK=10)  # 提取关键词最高的10个词
print ','.join(tags)
print '--------------'
# # 自定义逆向文件频率(IDF)语料库
jieba.analyse.set_idf_path('../extra_dict/idf.txt.big')
tags = jieba.analyse.extract_tags(s, topK=10)
print ','.join(tags)
print '--------------'
# # 自定义停用词(Stop words)文本语料库
jieba.analyse.set_idf_path("../extra_dict/idf.txt.big")
tags = jieba.analyse.extract_tags(s, topK=10)
print ",".join(tags)
print '--------------'
# # 返回关键词权重值
tags = jieba.analyse.extract_tags(s, topK=15, withWeight=True)
for tag in tags:print 'tag:%s\t\t weight:%f' % (tag[0], tag[1])  # 输出关键词及其权重print '--------------'# 基于TextRank算法的关键词抽取
# 基本思想:
#   将待抽取关键词的文本进行分词
#   以固定窗口大小(默认为5,通过span属性调整),词之间的共现关系,构建图
#   计算图中节点的PageRank,注意是无向带权图
tags = jieba.analyse.textrank(s, topK=10)
print ','.join(tags)
print '-----------------------------------------------'# 4、词性标注
import jieba.posseg as psegwords = pseg.cut('我爱北京天安门')
for word, flag in words:print '%s  %s' % (word, flag)
print '-----------------------------------------------'
print '-----------------------------------------------'# 5、并行分词
# file = open('QinCountry.txt')  # 大秦帝国六部全集
# ss = file.read()
# print ss# import time# jieba.enable_parallel()  # windows下不能并行处理
# t1 = time.time()
# seg_list = jieba.cut(ss)
# words = '/'.join(seg_list)
# t2 = time.time()
# cost = t2-t1
# print 'Cost Time:%s' % cost  # Cost Time:61.7459998131
print '----------------------------------------------'# 6、Tokenize  返回词语在原文的起止位置,输入参数只接受unicode
result = jieba.tokenize(s.decode('utf8'))
for t in result:print 'word:%s\t\tstart:%s\t\tend:%s' % (t[0], t[1], t[2])
print '----------------------------------------------'# 7、ChineseAnalyzer for Whoosh 搜索引擎
# import jieba
# from jieba.analyse import ChineseAnalyzer
#
# analyser = ChineseAnalyzer()
# for t in analyzer("我的好朋友是李明;我爱北京天安门;IBM和Microsoft; I have a dream. this is intetesting and interested me a lot"):
#     print t.text

注意:
      jieba分词器在处理中文分词中是非常好的,但是,jieba分词器默认的分词语料库dict.txt确存在问题:
      dict.txt中存在许多单字,例如:“大”,“午”,“我”,而且给予单字的词频特别高,都具有万以上的词频数,我们都知道词频与权重是成正比的,那么在分词的过程中就会优先处理这些单词,而与其相关的词语就会被忽略,这就导致分词结果不准确的问题。
      为了更好的使用jieba分词,建议将dict.txt中的单字全部去掉,或者将其词频设置非常小。

文本分析--jieba中文分词相关推荐

  1. Python数据挖掘-NLTK文本分析+jieba中文文本挖掘

    一.NLTK介绍及安装 (注:更多资源及软件请W信关注"学娱汇聚门") 1.1 NLTK安装 NLTK的全称是natural language toolkit,是一套基于pytho ...

  2. 【自然语言处理与文本分析】中文分词的基本原理,如何进行词性标注 使用HMM算法提高准确率

    分词(中文) 本次内容 分词: N-Gram vs.中文分词 分词的难点 法则式分词 统计式分词 词性标注: 词性标注简介 词性标注的难点 词性的种类及意义 保留某些词性的词 分词: N-Gram v ...

  3. Python文本分析-常用中文停用词表(Chinese Stop Words)

    在做jieba中文分词处理,进行文本分析,必不可少的停用词处理,国内比较常用的中文停用词库,有以下几个: 中文停用词表 哈工大停用词表 百度停用词表 四川大学机器智能实验室停用词库 而@elephan ...

  4. jieba —— 中文分词工具 (一)

    jieba 中文分词工具包 (一) 01 简介 "结巴" 中文分词:做最好的 Python 中文分词组件: "Jieba" (Chinese for " ...

  5. jieba分词_Jieba.el – 在Emacs中使用jieba中文分词

    jieba.el 在Emacs中使用jieba中文分词 众所周知, Emacs并没有内置中文分词系统, 以至于 forward-word 和 backward-word 以及 kill-word 等以 ...

  6. Jieba中文分词下如何画词云图?

    配置:anaconda3 + Pycharm 文章目录 WordCloud 关于Jieba分词 Jieba中文分词 +绘制词云图 案例 WordCloud 英文文本 导入第三方模块 from word ...

  7. 简明Jieba中文分词教程(分词、关键词提取、词性标注、计算位置)

    目录 0 引言 1 分词 1.1 全模式和精确模式 1.2 搜索引擎模式 1.3 HMM 模型 2 繁体字分词 3 添加自定义词典 3.1 载入词典 3.2 调整词典 4 关键词提取 4.1 基于 T ...

  8. jieba中文分词组件

    目录 jieba简介 组件特点 安装方法 算法 使用jieba 分词 添加自定义词典 载入词典 调整词典 关键词提取 基于 TF-IDF 算法的关键词抽取 基于 TextRank 算法的关键词抽取 词 ...

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

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

最新文章

  1. MySQL- In 和 Exists的优化案例讲解
  2. 质粒抽提常见问题与解答​
  3. CF750F. New Year and Finding Roots
  4. 支付宝二面微服务、分布式架构?太真实了!
  5. 敏捷开发系列学习总结(5)——这几招搞定团队协同Coding
  6. PostgreSQL删除数据
  7. HTML 标签的 target 属性
  8. python 循环语句s =2+22+222+2222之和_python基础2
  9. easyUi combobox setValue 引起的关于js的坑
  10. 淘宝首页性能优化的“黄金法则”
  11. 美元符号在什么计算机语言,美元符号是什么?怎么打?
  12. oracle8ora-00059,ORA-00059错误分析以及MAXDATAFILES、DB_FILES参数修改
  13. 短信验证码收不到了怎么办?
  14. mangodb 高频数据_MongoDB和数据流:实现一个MongoDB Kafka消费者
  15. 程序员工作压力大,为什么还这么多人想做程序员?是因为喜欢吗?
  16. wifi打印机打印(二维码,条形码等)
  17. C++ pair 和make_pair的用法
  18. matlab 数据显示位数,matlab数据位数格式设置
  19. BeagleBone Black学习(一)—— 移植和启动
  20. 非常好用的有道词典 For Alfred

热门文章

  1. C++ 返回值优化 RVO
  2. 稀疏光流python_opencv python 光流法
  3. PCM 16BIT幅度调节
  4. 2018.12.7 浪在ACM 集训队第八次测试赛
  5. win10更改系统颜色
  6. CSDN 博客的文字颜色、字体和字号设置
  7. mysql replace用法
  8. SSL/TSL握手解析
  9. 指令集荣获“浙江省物联网行业专精特新奖”
  10. vue+element 导出Excel