首页 » 网站建设 » php分词类库技巧_HanLP分词办法的介绍和应用

php分词类库技巧_HanLP分词办法的介绍和应用

访客 2024-12-15 0

扫一扫用手机浏览

文章目录 [+]

不同于一些简陋的分词类库,HanLP精心优化了内部数据构造和IO接口,做到了毫秒级的冷启动、千万字符每秒的处理速率,而内存最低仅需120MB。
无论是移动设备还是大型集群,都能得到良好的体验。
同时HanLP供应演习模块,可以在用户的语料上演习模型并更换默认模型,以适应不同的领域。

二、HanLP分词1、基本观点

分词是指自动将文本切割成打算机能够识别的词或短语。
HanLP分词包括CRF分词、索引分词、N-最短路径分词、NLP分词、极速词典分词、标准分词、深度学习分词七种分词办法。
目前已经支持汉语、英语、日语的分词任务

php分词类库技巧_HanLP分词办法的介绍和应用

2、功能场景

能够用于词性标注、Word2vec等处理的前期准备,是自然措辞处理技能的根本环节。

php分词类库技巧_HanLP分词办法的介绍和应用
(图片来自网络侵删)
3、分词办法先容

(1)CRF分词

CRF分词是基于条件随机场(Conditional Random Field)的分词办法。
它通过演习一个CRF模型来进行分词,模型会考虑高下文信息和词语的特色,从而提高分词的准确性。

运用:

CRF分词适用于须要较高准确性的分词任务,如文本分类、信息抽取等,目前非深度学习方法中最佳的分词效果,对歧义词和未知词的识别效果更优。

优点:

· 准确性高,能够处理一些繁芜的分词场景。

· 能够利用高下文信息进行分词,提高了分词的准确性。

缺陷:

演习CRF模型须要大量的标注数据和打算资源。

分词速率相对较慢。

(2)索引分词

索引分词是一种基于词典的分词办法。
它通过构建一个索引构造,将文本中的词语与词典进行匹配,从而实现分词。

运用:

索引分词适用于对实时性哀求较高的分词任务,如搜索引擎、实时推举等。

优点:

分词速率快,适用于实时性哀求高的场景。

可以根据需求自定义词典,提高分词的准确性。

缺陷:

对付未在索引内的文本的处理相对困难。

无法处理一些繁芜的分词场景。

(3)N-最短路径分词

N-最短路径分词是一种基于图论的分词办法。
它通过构建一个有向无环图,将文本中的词语作为节点,通过打算最短路径来进行分词。

运用:

N-最短路径分词适用于须要考虑词语之间关联关系的分词任务,如命名实体识别、句法剖析等。

优点:

能够考虑词语之间的关联关系,提高了分词的准确性。

可以根据需求自定义词典,提高分词的准确性。

缺陷:

分词速率相对较慢。

对付较长的文本,图的规模较大,打算繁芜度较高。

(4)NLP分词

NLP分词是一种基于规则的分词办法。
它通过定义一系列规则来进行分词,如基于词性、语法等规则。

运用:

NLP分词适用于须要根据语法规则进行分词的任务,如句法剖析、语义剖析等。

优点:

可以根据语法规则进行分词,提高了分词的准确性。

可以根据需求自定义规则,适应不同的分词场景。

缺陷:

对付繁芜的语法规则,须要大量的人工定义和掩护。

对付一些分外的分词场景,可能无法处理。

(5)极速词典分词

极速词典分词是一种基于词典的分词办法。
它通过构建一个高效的词典构造,将文本中的词语与词典进行匹配,从而实现分词。

运用:

极速词典分词适用于对分词速率哀求较高的任务,如实时文本处理、大规模数据处理等。

优点:

分词速率非常快,适用于对实时性哀求高的场景。

可以根据需求自定义词典,提高分词的准确性。

缺陷:

对付未登录词(Out-of-vocabulary)的处理相对困难。

无法处理一些繁芜的分词场景。

(6)标准分词

标准分词是HanLP中的默认分词办法,基于双数组Trie树和动态方案算法实现。
它综合了多种分词办法的优点,具有较好的性能和准确性。

运用:

标准分词适用于大多数常见的分词任务,如文本处理、信息检索等。

优点:

分词速率较快,准确性较高。

支持自定义词典,适应不同的分词场景。

缺陷:

对付一些分外的分词场景,可能无法处理。

(7)深度学习分词

深度学习分词是一种基于深度学习模型的分词办法。
它通过演习一个深度学习模型来进行分词,模型会自动学习词语的特色和高下文信息。

运用:

深度学习分词适用于须要较高准确性的分词任务,如文本分类、信息抽取等。

优点:

准确性高,能够处理一些繁芜的分词场景。

能够利用高下文信息进行分词,提高了分词的准确性。

缺陷:

演习深度学习模型须要大量的标注数据和打算资源。

分词速率相对较慢。

三、总结

除此之外,HanLP还供应了词性标注、命名实体识别、关键词提取、自动择要、短语提取、拼音转换、简繁转换、文本推举、依存句法剖析等功能帮我们更快速的实现自然措辞处理

四、运用1、整合spring boot项目

第一步引入jar如下(不建议你利用portable-1.8.4,差异是portable-1.8.4包含了data目录):

<dependency>

<groupId>com.hankcs</groupId>

<artifactId>hanlp</artifactId>

<version>1.8.4</version>

</dependency>

第二步,手动辞官网下载data包(包含hanlp分词须要的词典,词性等)并放到项目的根目录(跟src同级即可);

第三步,项目中配置hanlp.properties,可以与springboot的yml同一级;

第四步,变动hanlp.properties的文件信息,你须要修正配置root=你自己的HanLP数据包的目录。

2、代码中利用2.1 demo示例

System.out.println(HanLP.segment("你好,欢迎利用HanLP汉语处理包!
"));

输出:[你好/l, ,/w, 欢迎/v, 利用/v, HanLP/nx, 汉语/nz, 处理/v, 包/v, !
/w]

2.2 NLP分词

List<Term> termList = NLPTokenizer.segment("狭义的知识组织是指文献的分类、标引、编目、文摘、索引等一系列整序;广义的知识组织是针对知识的两要素进行的,是知识因子(结点)的有序化和知识关联(结点间的关系)的网络化。
");

System.out.println(termList);

输出:

[狭义/b, 的/u, 知识/n, 组织/n, 是/v, 指/v, 文献/n, 的/u, 分类/vn, 、/w, 标引/gm, 、/w, 编目/v, 、/w, 文摘/n, 、/w, 索引/n, 等/u, 一系列/m, 整序/n, ;/w, 广义/n, 的/u, 知识/n, 组织/n, 是/v, 针对/p, 知识/n, 的/u, 两/m, 要素/n, 进行/v, 的/u, ,/w, 是/v, 知识/n, 因子/n, (/w, 结点/n, )/w, 的/u, 有序/a, 化/vn, 和/c, 知识/n, 关联/vn, (/w, 结点/n, 间/f, 的/u, 关系/n, )/w, 的/u, 网络化/vn, 。
/w]

解释:NLP分词NLPTokenizer会实行词性标注和命名实体识别,由构造化感知机序列标注框架支撑。

默认模型演习自9970万字的大型综合语料库,是已知范围内全天下最大的中文分词语料库。
语料库规模决定实际效果,面向生产环境的语料库应该在千万字量级。
欢迎用户在自己的语料上演习新模型以适应新领域、识别新的命名实体。

2.3HanLP详细示例

1.标准分词:将一个字符串进行分词HanLP.segment(String);

2.中国人名识别:HanLP.newSegment().enableNameRecognize(true).seg(String);

3.关键字的提取:HanLP.extractKeyword(String,index),前一个参数为字符串,后一个参数为关键字的个数。

4.字体的转换:HanLP.convertToTraditionalChinese()//简体转换为繁体HanLP.convertToSimplifiedChinese()//繁体转换为简体

5.文本推举:Suggester工具的addSentence(内置Map容器进行存储)(方法),在进行推举匹配suggest。

标签:

相关文章

csv转xlsphp技巧_csv格式文件批量转化xlsx格式

待转化的csv文件一个一个的转化非常麻烦,我们来看下,怎么批量转化,详细操作步骤如下:第一步、打开超级处理器菜单(尝鲜);第二步、...

网站建设 2024-12-17 阅读0 评论0

php停止if断定技巧_PHP进修第四课前提判断

妻子对程序猿丈夫说,晚高下班回家,顺道买十个苹果,如果看到卖西瓜的,就买一个。结果,程序猿回家之后,就买了一个苹果,妻子很诧异,为...

网站建设 2024-12-17 阅读0 评论0