• 首页
  • 编程日记
  • 网络编程
  • 网页设计
  • 平面设计
  • 电脑基础

jieba分词并做分析

news/2025/7/7 11:17:22/文章来源:https://blog.csdn.net/stay_foolish12/article/details/106903583

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()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/479956.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

研讨会 | CCF TF 第 17 期:认知计算产业化落地

研讨会 | CCF TF 第 17 期:认知计算产业化落地

CCF TF 技术前线只为技术专家CCFTF第17期主题 认知计算产业化落地2019年05月11日上海斯波特酒店五楼(上海市南丹路15号,徐汇区政府对面)人类迈入人工智能时代,技术的发展使得机器可以从大数据中提取信息,串联成知识&a…
阅读更多...
短网址系统

短网址系统

文章目录1. 短网址服务整体介绍2. 如何通过哈希算法生成短网址?2.1 如何让短网址更短2.2 如何解决哈希冲突?2.3 如何优化哈希算法生成短网址的性能?3. 如何通过ID生成器生成短网址?3.1 相同的原始网址可能会对应不同的短网址3.2 如…
阅读更多...
一个神经元的价值和一个神经病的坚持

一个神经元的价值和一个神经病的坚持

作者 | 周博磊来源 | 机器之心一个神经元能够催生多少故事?香港中文大学信息工程系助理教授周博磊近日撰文介绍了他自 2015 年开始至今对神经元的研究经历。最近,他与 David Bau、朱俊彦等人合作的神经元研究论文发表在了 PNAS 杂志上。以下是周博磊的原…
阅读更多...
直通BAT必考题系列:深入剖析JVM之G1收集器、及回收流程、与推荐用例

直通BAT必考题系列:深入剖析JVM之G1收集器、及回收流程、与推荐用例

金三银四马上到了,即将进入面试的高峰期。在BAT面试中,JVM基本都是必考的系列。你至少需要掌握JVM内存模型与JVM参数详细配置,JVM的4种垃圾回收算法、垃圾回收机制与总结,以及今天重点谈到的JVM垃圾回收算法的实现:JVM…
阅读更多...
多任务学习方法

多任务学习方法

最近一直在做多任务,但是效果好象没什么提升,因为都是凭自己的想法和感觉在做。于是上网查找了一些这方面的资料,寻求一些理论上的支撑和前人经验上的帮助。 多任务学习: 故名思意,就是多个任务一起学习。为什么要进行…
阅读更多...
idea项目目录结构不是树形(横向变纵向)

idea项目目录结构不是树形(横向变纵向)

关闭IDEA 删除项目文件夹下的.idea文件夹 重新用IDEA工具打开项目
阅读更多...
曹羽 | 从知识工程到知识图谱全面回顾

曹羽 | 从知识工程到知识图谱全面回顾

本文转载自公众号:集智俱乐部。文本挖掘和图形数据库 | ©ontotext导语知识工程是符号主义人工智能的典型代表,近年来越来越火的知识图谱,就是新一代的知识工程技术。知识工程将如何影响未来人工智能领域的发展,甚至让计算机拥…
阅读更多...
4大JVM性能分析工具详解,及内存泄漏分析方案

4大JVM性能分析工具详解,及内存泄漏分析方案

谈到性能优化分析一般会涉及到: Java代码层面的,典型的循环嵌套等 还会涉及到Java JVM:内存泄漏溢出等 MySQL数据库优化:分库分表、慢查询、长事务的优化等 阿里P8架构师谈:MySQL慢查询优化、索引优化、以及表等优化…
阅读更多...
Reshape cannot infer the missing input size for an empty tensor unless all specified input sizes are

Reshape cannot infer the missing input size for an empty tensor unless all specified input sizes are

情况:就是本来你的 tensor 是有东西的,代码也应该是没问题的,百度无果,debug无果。 原因:突然发现了这一行 failed to allocate 202.56M (212402176 bytes) from device: CUDA_ERROR_OUT_OF_MEMORY: out of memory 然后…
阅读更多...
从 0 搭建一个工业级推荐系统

从 0 搭建一个工业级推荐系统

推荐系统从来没像现在这样,影响着我们的生活。当你上网购物时,天猫、京东会为你推荐商品;想了解资讯,头条、知乎会为你准备感兴趣的新闻和知识;想消遣放松,抖音、快手会为你奉上让你欲罢不能的短视频。而驱…
阅读更多...
最全中文停用词表整理(1893个)

最全中文停用词表整理(1893个)

在网上搜罗了一下&#xff0c;发现这个停用词还是挺好用的&#xff1a; ! " # $ % &( ) *, - -- . .. ... ...... ................... ./ .一 .数 .日 / // 0 1 2 3 4 5 6 7 8 9 : :// :: ; <> >> ?A Lex [ \ ] ^ _exp sub sup | } ~ ~~~~Δ Ψ γ…
阅读更多...
论文浅尝 | 虚拟知识图谱:软件系统和应用案例综述

论文浅尝 | 虚拟知识图谱:软件系统和应用案例综述

本文转载自公众号&#xff1a;DI数据智能。Virtual Knowledge Graphs: An Overview of Systems and Use Cases作者&#xff1a;Guohui Xiao, Linfang Ding, Benjamin Cogrel & Diego Calvanese供稿&#xff1a;Guohui Xiao编者按&#xff1a;Data Intelligence 发表意大利博…
阅读更多...
LeetCode 169. 求众数(摩尔投票)

LeetCode 169. 求众数(摩尔投票)

文章目录1. 题目信息2. 解题思路3. 代码3.1 排序3.2 map计数3.3 摩尔投票1. 题目信息 给定一个大小为 n 的数组&#xff0c;找到其中的众数。众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的&#xff0c;并且给定的数组总是存在众数。 示例 1:输入…
阅读更多...
阿里P8架构师谈:JVM的内存分配、运行原理、回收算法机制

阿里P8架构师谈:JVM的内存分配、运行原理、回收算法机制

不管是BAT面试&#xff0c;还是工作实践中的JVM调优以及参数设置&#xff0c;或者内存溢出检测等&#xff0c;都需要涉及到Java虚拟机的内存模型、内存分配&#xff0c;以及回收算法机制等&#xff0c;这些都是必考、必会技能。 JVM内存模型 JVM内存模型可以分为两个部分&…
阅读更多...
Keras共享某个层

Keras共享某个层

对一个层的多次调用&#xff0c;就是在共享这个层。 input1 Input(shape[28,28]) input2 Input(shape[28,28]) x1 Flatten()(input1) x1 Dense(60,activation"relu")(x1) x2 Flatten()(input2) x2 Dense(60,activation"relu")(x2)d Dense(10, acti…
阅读更多...
我的BERT!改改字典,让BERT安全提速不掉分(已开源)

我的BERT!改改字典,让BERT安全提速不掉分(已开源)

文 | 苏剑林编 | 小轶背景当前&#xff0c;大部分中文预训练模型都是以字为基本单位的&#xff0c;也就是说中文语句会被拆分为一个个字。中文也有一些多粒度的语言模型&#xff0c;比如创新工场的ZEN和字节跳动的AMBERT&#xff0c;但这类模型的基本单位还是字&#xff0c;只不…
阅读更多...
2020年考证时间表汇总!这些证书值得拥有!

2020年考证时间表汇总!这些证书值得拥有!

原文地址&#xff1a; https://zhuanlan.zhihu.com/p/100824416 2020年考证时间表汇总&#xff01;这些证书值得拥有&#xff01;已认证的官方帐号154 人赞同了该文章昨日之日不可留&#xff0c;2019年已然过去&#xff0c;2020年的我们不能再一成不变&#xff01;快根据自身情…
阅读更多...
征稿 | 2019年全国知识图谱与语义计算大会(CCKS2019)第二轮征稿启事

征稿 | 2019年全国知识图谱与语义计算大会(CCKS2019)第二轮征稿启事

2019年全国知识图谱与语义计算大会China Conference on Knowledge Graph and Semantic Computing (CCKS 2019)2019年8月24日-27日&#xff0c;杭州征稿截止: 2019年5月18日全国知识图谱与语义计算大会&#xff08;CCKS: China Conference on Knowledge Graph and Semantic Comp…
阅读更多...
直通BAT必考题系列:JVM的4种垃圾回收算法、垃圾回收机制与总结

直通BAT必考题系列:JVM的4种垃圾回收算法、垃圾回收机制与总结

BAT必考JVM系列专题 直通BAT必考题系列&#xff1a;深入详解JVM内存模型与JVM参数详细配置 垃圾回收算法 1.标记清除 标记-清除算法将垃圾回收分为两个阶段&#xff1a;标记阶段和清除阶段。 在标记阶段首先通过根节点&#xff08;GC Roots&#xff09;&#xff0c;标记所…
阅读更多...
遗传算法及其应用实现

遗传算法及其应用实现

使用遗传算法求解函数具有最大值的点X """ Visualize Genetic Algorithm to find a maximum point in a function. """ import numpy as np import matplotlib.pyplot as pltDNA_SIZE 10 # DNA length POP_SIZE 100 # population size CROSS…
阅读更多...
最新文章
  • 仿腾讯会议——退出房间
  • 蓝桥杯分享经验
  • C++:面试题汇总
  • python调wfdb库读心电数据库的注释文件中NUL问题
  • iOS Runtime与RunLoop的对比和使用
  • 【信息系统项目管理师】第16章:项目采购管理 - 23个经典题目及详解
  • fscan教程1-存活主机探测与端口扫描
  • kafka在线增加分区副本数

Copyright @ 2022~2023