Github:结巴分词地址
https://github.com/fxsjy/jieba

几种分词方法的简单使用:
一 . jieba
  1. 安装、示例     
pip install jieba,jieba分词的语料是基于人民日报。
分词示例
1 import jieba
2
3 str1 ='江州市长江大桥'
4 word_object = jieba.cut(str1)  # 生成一个生成器对象
5 for each in word_object:
6     print each  
我要的分词结果是“江州/市长/江大桥”, 我需要自定义一个字典,给“江大桥”设置一个较大的频次
当我将 “江大桥” 频次设为2000时发现并不能切分出来, 查看原始字典发现“长江大桥”频次3858,所以在概率统计上远大于“江大桥”,所以将“江大桥”频次设为1000万。
但是实际是分不出来的,必须很极端的设为20000, 因为要保证P(江州)P(市长)P(江大桥) > P(江州)P(市)P(长江大桥)
加载用户字典jieba.load_userdict()
jieba.load_userdict('userdict.txt')
 
2. jieba.cut参数
cut(self, sentence, cut_all=False, HMM=True) method of jieba.Tokenizer instance
The main function that segments an entire sentence that contains
Chinese characters into seperated words.
Parameter:
- sentence: The str(unicode) to be segmented.   (需要分词的字符串)
- cut_all: Model type. True for full pattern, False for accurate pattern. (cut_all字段是分词的全模式和普通模式/默认模式)
- HMM: Whether to use the Hidden Markov Model. (是否使用HMM模式分词,default True)
关于全模式和默认模式:
str1= u“江州市长江大桥”为例:
jieba.cut(str1, cut_all=True)  #全模式是将词可能生成的词完全切分出来
Output:
江州/ 州市/市长/长江/长江大桥/大桥  (可以理解为:所有可以切分成词的都会显示出来, 尽可能多得分词)
jieba.cut(str1, cut_all=False)  
Output:
江州/市/长江大桥
add_word(word, freq=None, tag=None)   # 向词典添加词
del_word(word)                        # 删除词典中的词
suggest_freq(segment, tune=True)      # 调整词频率 
其他具体使用详见https://github.com/fxsjy/jieba
二. Thulac
  1. 安装和使用
Thulac 是清华大学的分词库,也是基于HMM的分词器
pip install thulac安装
1 str1 = u'江州市长江大桥'
2 import thulac
3 thu = thulac.thulac()
4 word = thu.cut(str1,  text=False)
5 for each in word:
6     print each[0], each[1]
结果如下图,会显示分词结果和词性
1 str1 = u'江州市长江大桥'
2 import thulac
3 thu = thulac.thulac()
4 word = thu.cut(str1,  text=False)
对英文分词(会将连一起的“字母和数字”切分出来, 且常规英文空格也会切分出来):
  1. 参数
以下是help(thulac.thulac)的doc介绍
class thulac
|  Methods defined here:
|  
|  __init__(self, user_dict=None, model_path=None, T2S=False, seg_only=False, filt=False, max_length=50000, deli='_', rm_space=False)
|      初始化函数,传入用户设置的参数,并且根据参数初始化不同
|      模型(调入不同的.dat文件,该文件存储了一个双数组trie树)
|     
user_name=None, 设置用户词典,用户词典中的词会被打上uw标签。词典中每一个词一行,UTF8编码 
model_path=None, 设置模型文件所在文件夹,默认为models/
T2S=False, 是否将句子从繁体转化为简体
seg_only=False, False时候只进行分词,不进行词性标注
filt=False, 是否使用过滤器去除一些没有意义的词语,例如“可以”。
max_length=50000,
deli='_', 默认为‘_’, 设置词与词性之间的分隔符
rm_space=False, 是否去掉原文本中的空格后再进行分词
|   
|  cut(self, oiraw, text=False) 
|      text=False; 是否返回文本,不返回,则是个二维list (每一维度包含 词+词性);返回文本则是“分词_词性”组成的文本。
|  cut_f(self, input_file, output_file)
|       对文件分词
|  cutline(self, oiraw)
|      
|  fast_cut(self, oiraw, text=False)
|     # fast 接口 cut-> fast_cut)
|  fast_cut_f(self, input_file, output_file)
|     # fast 接口 cut_f -> fast_cut_f
|  foo(self, x) 
|     # foo占位符,表明某个变量、函数、命令不重要,但有这个想法。
|  multiprocessing_cut_f(self, input_file, output_file, core=0)
|     #多线程对文件分词
|  run(self)
#交互式: 屏幕input,屏幕output
词性解释:
具体示例详见https://github.com/thunlp/THULAC-Python#%E5%85%B6%E4%BB%96%E8%AF%AD%E8%A8%80%E5%AE%9E%E7%8E%B0
三、snownlp
  1. 安装、概述、示例  
pip install snownlp
snownlp 是基于3-gram的词性标注、HMM模型的分词算法。 
示例:
1 from snownlp import SnowNLP
2 str1 = u'江州市长江大桥'
3 snow_obj = SnowNLP(str1)
4 snow_obj.words  # list 分词后返回一个分词结果的list
5 for each in snow_obj:
6     print each 
结果如下图  
  1. 参数、部分方法
1 from snownlp import SnowNLP
2 str1 = u'江州市长江大桥'
3 snow_obj = SnowNLP(str1)
4 snow_obj.words  # list 分词后返回一个分词结果的list
5 for each in snow_obj:
6     print each
7 snow_obj.tags #  一维list,内含元组(词,词性)
8 snow_obj.sentiments # positive的概率
9 snow_obj.pinyin # 每个词转为拼音,每个词构成list
其他方法详见https://github.com/isnowfy/snownlp 或help(SnowNLP)查看
四、yaha
  1. 安装、简述、示例
pip install yaha
yaha中文分词 基于查找句子的最大概率路径来进行分词
1 str1 = u'江州市长江大桥'
2 from yaha import Cuttor
3 cuttor = Cuttor() # 然后会加载字典
4 word = cuttor.cut(str1) # 生成器对象
5 for each in word:
6     print word
yaha分词最大的弊端就是对英文无法在做分词,当遇到英文时,会将英文分为每个字母。
五、genius 
1. 安装、简述和示例
pip install genius
genius 是一款开源中文分词器,其基于条件随机场(CRF)算法的。
(这部分下次再写)
import re
from collections import Counter
import jiebadef cut_word(datapath):with open(datapath,'r',encoding='utf-8')as fp:string = fp.read()data = re.sub(r"[\s+\.\!\/_,$%^*(【】:\]\[\-:;+\"\']+|[+——!,。?、~@#¥%……&*()]+|[0-9]+", "", string)word_list = jieba.cut(data)print(type(word_list))return word_listdef static_top_word(word_list,top=5):result = dict(Counter(word_list))print(result)sortlist = sorted(result.items(),key=lambda x:x[1],reverse=True)resultlist = []for i in range(0,top):resultlist.append(sortlist[i])return resultlistdef main():datapath = 'comment.txt'word_list = cut_word(datapath)Result = static_top_word(word_list)print(Result)
main()

jieba分词并做分析相关推荐

  1. 结巴分词关键词相似度_gensim和jieba分词进行主题分析,文本相似度

    #coding=utf-8 importcodecsimportgensimimportjiebafrom gensim importcorpora,models,similaritiesfrom g ...

  2. ik分词和jieba分词哪个好_Python 中文 文本分析 实战:jieba分词+自定义词典补充+停用词词库补充+词频统计...

    最近项目需要,实现文本的词频分析,折腾了几天才完成任务,有点成就感,最后整理总结一下这部分的内容,希望更多同僚受益. 一.使用前准备 环境:Python3.6 安装结巴:pip install ji ...

  3. python分词训练_python练习17:用jieba分词做关键词提取,用matplotlib做可视化

    jieba分词 是一款开源的中文分词包,同时它还带有分析模块,可以用TF-IDF等算法进行关键词分析 jieba 下面的小程序的基本思路是: 通过jieba从 保存好的txt文本中提取关键词,根据关键 ...

  4. 关于《后浪》的B站弹幕分析总结(二)——jieba分词、常用词典、颜文字处理以及字符格式统一

    目录 一.你需要知道的几个常用词典 - **停用词典(停用词,颜文字,emoji)** - 否定词典,程度副词词典 - 情感极性词典,多维情感词典 二.统一字符.统一大小写.统一繁简体 - 统一字符 ...

  5. jieba分词_从语言模型原理分析如何jieba更细粒度的分词

    jieba分词是作中文分词常用的一种工具,之前也记录过源码及原理学习.但有的时候发现分词的结果并不是自己最想要的.比如分词"重庆邮电大学",使用精确模式+HMM分词结果是[&quo ...

  6. 自然语言处理之中文文本分析(jieba分词、词袋doc2bow、TFIDF文本挖掘)

    中文分词常用的分词工具有jieba等,本文以jieba分词为例,讲解中文文本分析. 一.jieba分词 来源github:https://github.com/fxsjy/jieba 1.主要模式 支 ...

  7. 机器学习之---文本分析(jieba分词和词云绘制)

    一.定义: 文本挖掘:从大量文本数据中抽取出有价值的知识,并且利用这些知识重新组织信息的过程. 二.语料库(Corpus) 语料库是我们要分析的所有文档的集合. import os import os ...

  8. 利用jieba分词分析小说二

    在之前通过jieba分词统计出了各人物的出场次数的基础上,我们可以利用Gensim Word2vec进一步分析人物关系, Gensim是自然语言处理中的一款具备多种功能的神器.Gensim是一款开源的 ...

  9. 利用jieba分词分析小说一

    准备工作 下载好需要分析的小说txt文件,这里我选择的是<龙族>的第一部. 小说人物名字的txt文件. 中文停用词txt文件. 安装好jieba库. 正式开始 用jieba.cut()完成 ...

最新文章

  1. GB2312、GBK与UTF-8的区别
  2. Performance comparison Raw device VS Ext2 VS Ext3 VS OCFS
  3. C#获取和设置环境变量
  4. 关于STM32F4的FMC CLK配置浅解
  5. jasmine单元测试_使用Jasmine,Spock和Nashorn测试JVM服务器端JavaScript
  6. du -sh 如何找到最大的文件夹_小白必看!手把手教你如何在linux上安装redis数据库...
  7. Spring(二)Spring IOC
  8. 【渝粤教育】电大中专电商运营实操 (7)作业 题库
  9. 备忘:BLOCK CORRUPTION IN SYSTEM DATAFILE
  10. Matlab仿真两种方法求圆周率π
  11. 稚辉君的Clion搭建STM32教程的自己实现,以及相关记录
  12. Echar柱状堆叠图X轴自定义显示功能
  13. 自研返利网源码、有需要的私信
  14. 浏览器油猴插件Tampermonkey下载安装
  15. c++中调用c编写的动态链接库出现undefined reference to `xxx‘的解决方法
  16. Entity Framework自定义迁移历史表(EF6以上)
  17. 数据库原理题型 - 选择题
  18. 平板作为主机扩展屏的实现
  19. libvirt 问题解决记录集
  20. 5c标准第二语言,美国语言教学5C标准对中文作为第二语言教学课堂的启示

热门文章

  1. Gmail的另类浏览法--RSS
  2. file_table.c 文件分析 linux1_0\linux\fs\file_table.c
  3. Boost智能指针——boost::scoped_ptr(使用及原理分析)
  4. Android bootchart分析
  5. xmlspy php,XMLSpy使用流程 - tnlzz31985的个人空间 - OSCHINA - 中文开源技术交流社区
  6. Datawhale-零基础入门NLP-新闻文本分类Task01
  7. camera中文版软件 ip_ip camera网络摄像机
  8. 经纬度坐标系转东北天_大地坐标系(WGS-84)、地心地固坐标系(ECEF)与东北天坐标系(ENU)的相互转换C语言代码分享...
  9. LeetCode 1799. N 次操作后的最大分数和(回溯 / 状态压缩DP)
  10. LeetCode 1007. 行相等的最少多米诺旋转