极速梳理Spark的四种分词工具

张裕  金牌会员 | 2024-11-8 01:05:25 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 571|帖子 571|积分 1713

目录
一、四种分词工具,到底哪种分词工具更好?
二、怎样使用
       1.准备环境
              1)下载Ansj:
              2)Maven依靠配置(如果使用Maven):
              3)下载词库:
       2.基本使用
              1)引入必要的类:
              2)编写分词代码:
       3.高级功能
              1)自界说词库:
             2)停用词过滤:
              3)关键词提取:
       4.留意事项
              1)词库更新:
              2)性能优化:
              3)文档和示例:
三、总结


一、四种分词工具,到底哪种分词工具更好?

       Spark是一套巡行服从很高,速度很快又能提供多种盘算场景的框架,它将数据拉到内存里面,并基于RDD(弹性分布式数据集)进行运算,这就导致它内存服从很高很快。
       而在Spark框架下,有四种常用的中文分词工具,分别是:hanLP、ansj、jieba和fudannlp。以下是对于这四种工具的具体解释:
       1.hanLP:Han Language Processing,即“汉语言处理”,是一个面向生产环境的多语种自然语言处理工具包,它基于TensorFlow 2.0构建,旨在普及和落地最前沿的自然语言处理技能。hanLP具备功能美满、性能高效、架构清楚、语料时新、可自界说等特点。其内部算法颠末工业界和学术界的磨练,支持包罗中文在内的多种语言处理。别的,hanLP提供了丰富的预训练模型,并支持并行化处理,可以显著提升处理速度。
       2.ansj:基于n-Gram+CRF+HMM的中文分词Java实现。ansj分词速度快,据测试在Mac Air上每秒可到达200万字左右,同时准确率也能到达96%以上。ansj不但实现了中文分词功能,还支持中文姓名识别、用户自界说词典、关键字提取、自动摘要以及关键字标记等功能。这些特性使得ansj可以应用于自然语言处理等多个范畴,尤其适用于对分词效果要求高的项目。
       3.jieba:“结巴”中文分词,是目前最好的Python中文分词组件。jieba分词支持四种分词模式:精确模式、全模式、搜索引擎模式和paddle模式(利用PaddlePaddle深度学习框架进行分词)。jieba分词还提供了词性标注和关键词抽取等功能,并支持繁体分词和自界说词典。jieba分词的MIT授权协议使得其可以在多种编程语言中实现,包罗Java、C++、Rust等。
       4.fudannlp:复旦大学自然语言处理实验室开辟的中文自然语言处理工具。fudannlp提供了包罗中文分词、词性标注、命名实体识别等在内的多种自然语言处理功能。不过,与hanLP、ansj和jieba相比,fudannlp在社区支持、文档美满度以及更新频率上大概稍显不足。
       在以上四种工具中,ansj是一个值得推荐的选择。其来由如下:


  • 分词效果好:ansj的分词准确率高达96%以上,可以或许满意大多数自然语言处理任务的需求。
  • 处理速度快:ansj的分词速度非常快,即使在处理大规模文本数据时也能保持高效。
  • 功能丰富:除了基本的中文分词功能外,ansj还支持中文姓名识别、用户自界说词典、关键字提取等高级功能,这些功能在现实应用中非常有效。
  • 易于集成:ansj是一个Java实现的分词工具,可以方便地集成到基于Java的Spark项目中。同时,ansj也提供了具体的文档和示例代码,帮助开辟者快速上手。
       综上所述,ansj依附其出色的分词效果、处理速度、丰富的功能以及易于集成的特点,成为在Spark框架下进行中文分词的一个优选工具。
二、怎样使用

       那么接下来,来具体介绍一下,java怎样使用Ansj进行中文分词:
       1.准备环境

              1)下载Ansj:

                     前往Ansj的官方GitHub页面(https://github.com/NLPchina/ansj_seg)下载最新的jar  包,大概直接使用Maven进行依靠管理。
              2)Maven依靠配置(如果使用Maven):

                     在项目的pom.xml文件中添加Ansj的依靠:xml(请留意将“最新版本号”替换为Ansj的当前最新版本号。)
  1. <dependency>  
  2.     <groupId>org.ansj</groupId>  
  3.     <artifactId>ansj_seg</artifactId>  
  4.     <version>最新版本号</version>  
  5. </dependency>
复制代码
              3)下载词库:

                     Ansj需要依靠词库进行分词,因此需要从Ansj的GitHub页面下载词库(library文件夹),并将其拷贝到项目的根目录下。
       2.基本使用

              1)引入必要的类:

  1. import org.ansj.domain.Result;  
  2. import org.ansj.domain.Term;  
  3. import org.ansj.splitWord.analysis.ToAnalysis;
复制代码
              2)编写分词代码:

  1. public class AnsjSegDemo {  
  2.     public static void main(String[] args) {  
  3.         String text = "Ansj_Seg 是一个基于 Java 实现的中文分词工具";  
  4.         Result result = ToAnalysis.parse(text);  
  5.         for (Term term : result) {  
  6.             System.out.println(term.getName() + " / " + term.getNatureStr());  
  7.         }  
  8.     }  
  9. }
复制代码
                     在上述代码中,ToAnalysis.parse(text)方法用于对输入文本进行分词,返回一个Result对象,该对象包罗了分词效果。通过遍历Result对象中的Term列表,可以获取每个分词及其词性标注。
       3.高级功能

              1)自界说词库

                     如果Ansj自带的词库无法满意需求,可以创建自界说词库。自界说词库是一个.dic文件,文件中每行包罗一个词语、词性(可选)和权重(可选),以空格或制表符分隔。然后,在代码中指定自界说词库的位置:(请留意将“自界说词库的绝对路径”替换为自界说词库文件的现实路径。)
  1. MyStaticValue.ENV.put(DicLibrary.DEFAULT, "自定义词库的绝对路径");
复制代码
             2)停用词过滤

                     停用词是指对文本分析没有现实意义的词语,如“的”、“了”等。Ansj也支持停用词过滤,可以创建一个停用词库文件(.dic),并在分词时将其加载到Ansj中。
              3)关键词提取

                     Ansj提供了关键词提取功能,可以使用KeyWordComputer类进行关键词提取。例如:
  1. KeyWordComputer kwc = new KeyWordComputer(5); // 提取前5个关键词  
  2. Collection<Keyword> result = kwc.computeArticleTfidf(text);  
  3. System.out.println(result);
复制代码
       4.留意事项

              1)词库更新

                     Ansj的词库是不断更新的,因此建议定期从Ansj的GitHub页面下载最新的词库。
              2)性能优化

                     对于大规模文本数据,Ansj提供了多种性能优化战略,如并行化处理、缓存机制等。可以根据现实需求选择合适的优化战略。
              3)文档和示例

                     Ansj的GitHub页面提供了具体的文档和示例代码,可以帮助开辟者更好地明白和使用Ansj。
三、总结

       Spark四种中文分词工具中,推荐ansj,因其分词准确、速度快、功能丰富且易于集成Java项目。使用Ansj需准备环境、引入类、编写分词代码,并可利用高级功能和留意事项优化分词效果。

如果本文章对您有帮助

还请您点赞支持一下,谢谢


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

张裕

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表