jieba中文分词器 JAVA实现源码分析

本文主要分析jieba中文分词器的JAVA实现,包括源码介绍、使用方法、核心流程和源码分析,涉及动态规划算法、Trie树数据结构及其在分词过程中的应用。
摘要由CSDN通过智能技术生成

中文分词技术在文本处理分析、搜索引擎、AI自然语言识别等领域都有着非常广泛的应用,最近我也在研究SEO中的内容文本分析,掌握分词的原理可以说是必不可少的。在python机器学习中文处理普遍都用到了 jieba 分词器,后来发现 jieba 还有个java版本的,正好有需要,直接拿来用了,也看了核心的源码,注释倒是没有的,所以自己记录一下阅读源码过程中的理解。

 

源码介绍

结巴分词(java版) jieba-analysis

源码:https://github.com/huaban/jieba-analysis

支持分词模式

  • Search模式,用于对用户查询词分词
  • Index模式,用于对索引文档分词

特性

  • 支持多种分词模式
  • 全角统一转成半角
  • 用户词典功能
  • conf 目录有整理的搜狗细胞词库

 

使用介绍

使用起来还是非常简单的

JiebaSegmenter segmenter = new JiebaSegmenter();
	    String keywords= "很多非技术型的产品经理弄不清楚需求设计边界"
	    		+ ",技术人员更容易接收“确定的”,“完整逻辑覆盖”的需求。"
	    		+ "怎么说呢?每种业务可能出现的情况,产品设计要有对应的解决方案,"
	    		+ "大到一个完整处理流程,小到一个错误提示,都需要你想到,"
	    		+ "不提前设计好这些规则,那么就提前健健身吧";
	    System.out.println(segmenter.process(keywords, SegMode.INDEX).toString());
	    System.out.println(segmenter.process(keywords, SegMode.SEARCH).toString());

执行结果:SEARCH是基本模式,而INDEX会将SEARCH模式结果中的长词再次拆分 

结果中关键词后边跟着的是该词在整个文本中的位置索引

[[很多, 0, 2], [非, 2, 3], [技术, 3, 5], [技术型, 3, 6], [的, 6, 7], [产品, 7, 9], [经理, 9, 11], [弄, 11, 12], [不, 12, 13], [清楚, 13, 15], [需求, 15, 17], [设计, 17, 19], [边界, 19, 21], [,, 21, 22], [技术, 22, 24], [人员, 24, 26], [技术人员, 22, 26], [更, 26, 27], [容易, 27, 29], [接收, 29, 31], [“, 31, 32], [确定, 32, 34], [的, 34, 35], [”, 35, 36], [,, 36, 37], [“, 37, 38], [完整, 38, 40], [逻辑, 40, 42], [覆盖, 42, 44], [”, 44, 45], [的, 45, 46], [需求, 46, 48], [。, 48, 49], [怎么, 49, 51], [说, 51, 52], [呢, 52, 53], [?, 53, 54], [每种, 54, 56], [业务, 56, 58], [可能, 58, 60], [出现, 60, 62], [的, 62, 63], [情况, 63, 65], [,, 65, 66], [产品, 66, 68], [设计, 68, 70], [产品设计, 66, 70], [要, 70, 71], [有, 71, 72], [对应, 72, 74], [的, 74, 75], [解决, 75, 77], [方案, 77, 79], [解决方案, 75, 79], [,, 79, 80], [大到, 80, 82], [一个, 82, 84], [完整, 84, 86], [处理, 86, 88], [流程, 88, 90], [,, 90, 91], [小到, 91, 93], [一个, 93, 95], [错误, 95, 97], [提示, 97, 99], [,, 99, 100], [都, 100, 101], [需要, 101, 103], [你, 103, 104], [想到, 104, 106], [,, 106, 107], [不, 107, 108], [提前, 108, 110], [设计, 110, 112], [好, 112, 113], [这些, 113, 115], [规则, 115, 117], [,, 117, 118], [那么, 118, 120], [就, 120, 121], [提前, 121, 123], [健, 123, 124], [健身, 124, 126], [吧, 126, 127]]
[[很多, 0, 2], [非, 2, 3], [技术型, 3, 6], [的, 6, 7], [产品, 7, 9], [经理, 9, 11], [弄, 11, 12], [不, 12, 13], [清楚, 13, 15], [需求, 15, 17], [设计, 17, 19], [边界, 19, 21], [,, 21, 22], [技术人员, 22, 26], [更, 26, 27], [容易, 27, 29], [接收, 29, 31], [“, 31, 32], [确定, 32, 34], [的, 34, 35], [”, 35, 36], [,, 36, 37], [“, 37, 38], [完整, 38, 40], [逻辑, 40, 42], [覆盖, 42, 44], [”, 44, 45], [的, 45, 46], [需求, 46, 48], [。, 48, 49], [怎么, 49, 51], [说, 51, 52], [呢, 52, 53], [?, 53, 54], [每种, 54, 56], [业务, 56, 58], [可能, 58, 60], [出现, 60, 62], [的, 62, 63], [情况, 63, 65], [,, 65, 66], [产品设计, 66, 70], [
  • 5
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值