jieba模块

jieba

做最好的 Python 中文分词组件

特点

  • 支持三种分词模式:
    • 精确模式:将句子最精确地切开,适合文本分析
    • 全模式:将句子中所有的可以成词的词语都扫描出来,速度很快,但是不能解决歧义
    • 搜索引擎模式:在精确的基础上,对长词再次切分,提高召回率,适用于搜索引擎分词
  • 支持繁体分词
  • 支持自定义词典

主要功能

分词

  • jieba.cut:接受三个输参数:需要分词的字符串;cut_all参数来控制是否采用全模式(默认精确模式);HMM 参数用来控制是否使用 HMM 模型。
  • jieba.cut_for_search:接受两个参数:需要分词的字符串;使用使用 HMM 模型,该方法适合用于搜索引擎的构建倒排索引的分词,粒度比较细。

注意:

  1. 待分词的字符串可以是 unicodeUTF8GBK字符串
  2. jieba.cutjieba.cut_for_search 返回的结构都是一个可迭代的 generator ,用for循环来获取分词后的词语(unicode)。
  3. jieba.lcutjieba.lcut_for_search 直接返回list
import jieba

seg_list = jieba.cut("我来到北京清华大学", cut_all=True)
print("Full Mode: " + "/ ".join(seg_list))  # 全模式

seg_list = jieba.cut("我来到北京清华大学", cut_all=False)
print("Default Mode: " + "/ ".join(seg_list))  # 精确模式

seg_list = jieba.cut("他来到了网易杭研大厦")  # 默认是精确模式
print(", ".join(seg_list))

seg_list = jieba.cut_for_search("小明硕士毕业于中国科学院计算所,后在日本京都大学深造")  # 搜索引擎模式
print(", ".join(seg_list))

添加自定义词典

载入词典
  • 指定自己自定义的词典,来补充jieba词库里没有的词。
  • 用法:jieba.load_userdict(file_name) file_name 文件对象或路径
  • 词典格式,一个词占一行;一行分为三部分:词语、词频(可省略)、词性(可省略),用空格隔开,顺序不能颠倒。file_name 若为路径或二进制打开,文件必须为UTF-8编码。
# userdict.text文件
云计算 5
李小福 2 nr
import jieba
jieba.load_userdict("userdict.txt") # 加载字典
jieba.add_word('八一双鹿')  # 加载单词
demo = '李小福是创新办主任也是云计算方面的专家; 什么是八一双鹿'
words = jieba.cut(demo)
print('/'.join(words))
  1. 使用add_worddel_word 可以动态修改词典。

基于 TF-IDF 算法的关键词抽取

  • jieba.analyse.extract_tags(sentence, topK=20, withWeight=False, allowPOS=())
    • sentence:待提取的文本
    • topK:为返回几个TF-IDF权重的关键词
    • withWeight:是否一并返回关键词权重
    • allowPOS:仅包括指定词性的词
  • jieba.analyse.TFIDF(idf_path=None) 新建TF-IDF实例,为IDF频率文件

并行分词

原理:将目标文件按行分隔后,把各行文本分配到多个Python进程,然后归并结果,从而获得分词速度提升
基于 Python 自带的 multiprocessing 模块

  • jieba.enable_parallel(4) 开启并行分词模式,参数为并行进程数
  • jieba.disable_parallel() 关闭并行分词模式

**注意:**并行分词仅支持默认分词器 jieba.dtjieba.posseg.dt

import time
import jieba

jieba.enable_parallel(1)    # 创建1个线程

content = open('./1.txt',"rb").read()

t1 = time.time()
words = "/ ".join(jieba.cut(content))
t2 = time.time()

log_f = open("1.log","wb")
log_f.write(words.encode('utf-8'))

print('speed %s bytes/second' % (len(content)/t2-t1))

词语在原文的位置

  • 只接受unicode
# 默认模式
result = jieba.tokenize(u'永和服装饰品有限公司')
for tk in result:
    print("word %s\t\t start: %d \t\t end:%d" % (tk[0],tk[1],tk[2]))
# 搜索模式
result = jieba.tokenize(u'永和服装饰品有限公司', mode='search')
for tk in result:
    print("word %s\t\t start: %d \t\t end:%d" % (tk[0],tk[1],tk[2]))

延迟加载

jieba 加载采用延迟加载,import jiebajieba.Tokenizer() 不会立即触发词典的加载,一旦有必要才开始加载词典构建前缀字典。如果你想手工初始 jieba,也可以手动初始化。

import jieba
jieba.initialize()  # 手动初始化(可选)

命令分词

python -m jieba news.txt > cut_result.txt
  • 10
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Cocos Creator是一个功能强大的游戏开发引擎,它允许开发者创建各种类型的游戏,包括街霸游戏。但是,Cocos Creator本身并不提供街霸游戏的源码,开发者需要自己设计和编写游戏的逻辑、界面以及各种游戏元素。 要创建一个街霸游戏,首先需要进行角色的设计和动画制作。可以使用Cocos Creator内置的动画编辑器来创建和编辑角色的动画效果。然后,开发者需要设计游戏场景,包括背景、道路、建筑等等,可以使用Cocos Creator提供的场景编辑器进行创建和布置。 在街霸游戏中,角色之间的战斗是重要的内容。为了实现战斗机制,需要编写适当的代码来实现攻击、防御、技能等动作的触发和效果。开发者可以使用Cocos Creator的脚本编辑器来编写游戏逻辑脚本,实现战斗机制,并确保游戏的平衡性和可玩性。 此外,街霸游戏还可能包括多人对战模式,可以使用Cocos Creator的网络模块来实现多人对战功能。开发者还可以使用音效编辑工具来添加游戏音效,以提升游戏的体验和乐趣。 总体来说,创建一款街霸游戏需要进行多个方面的设计和开发工作,包括角色设计、动画制作、场景布置、战斗机制实现、网络功能等等。Cocos Creator作为游戏开发引擎,为开发者提供了一系列强大的功能和工具,可以帮助开发者创建出高质量、富有创意的街霸游戏。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值