新发布1.7.0版本的hanlp自然语言处理工具包差不多已经有半年时间了,最近也是一直在整理这个新版本hanlp分词工具的相关内容。不过按照当前的整理进度,还需要一段时间再给大家详细分享整理的内容。昨天正好看到的这篇关于关于1.7.0版本hanlp分词在spark中的使用介绍的文章,顺便分享给大家一起学习一下!
以下为分享的文章内容:
HanLP分词,如README中所说,如果没有特殊需求,可以通过maven配置,如果要添加自定义词典,需要下载“依赖jar包和用户字典".
直接"java xf hanlp-1.6.8-sources.jar" 解压源码,把源码加入工程(依赖本地jar包,有些麻烦,有时候到服务器有找不到jar包的情况)
按照文档操作,在Spark中分词,默认找的是本地目录,所以如果是在driver中分词是没有问题的。但是如果要分布式分词,是要把词典目录放在HDFS上面,因为这样每台机器才可以访问到 【参考代码】
最好把新增词典放在首位,第一次使用时,HanLP会把新增txt文件,生成bin文件,这个过程比较慢。但是只需要跑一次,它会把bin文件写到HDFS路径上面,第二次以后速度就快一些了。
注意到issue中说,只可以在mapPartition中使用。
参考scala代码
class HadoopFileIoAdapter extends IIOAdapter {
override def create(path: String): java.io.OutputStream = {
val conf: Configuration = new Configuration()
val fs: FileSystem = FileSystem.get(URI.create(path), conf)
fs.create(new Path(path))
}
override def open(path: String): java.io.InputStream = {
val conf: Configuration = new Configuration()
val fs: FileSystem = FileSystem.get(URI.create(path), conf)
fs.open(new Path(path))
}
}
def myfuncPerPartition_ ( iter : Iterator [String] ) : Iterator[(Int, mutable.Buffer[String])] = {
println("run in partition")
val keyWordNum = 6
HanLP.Config.IOAdapter = new HadoopFileIoAdapter
val ret = iter.filter(_.split(",",2).length==2)
.map(line=>(line.split(",",2)(1).trim.hashCode, HanLP.extractKeyword(line.split(",",2)(0),keyWordNum)
.map(str=>str.filterNot(stopChar.contains(_))).filter(w=>(w.length>1 || ( w.length==1 && white_single_word.contains(w(0))) ))
.filterNot(stopWords.contains(_)).take(keyWordNum).distinct))
ret
}
//调用
raw_data.repartition(100).mapPartitions(myfuncPerPartition_)
相关推荐
标题“hanlp1.7jar包下载”表明我们要讨论的是HanLP的1.7版本的Java库,通常以.jar格式提供,方便Java开发者在项目中引入和使用。 HanLP 1.7.0是其历史版本之一,可能包含了一些特定的功能改进和优化。虽然没有具体...
hanlp分词各类词性状态表: 比如: a 形容词 ad 副形词 b 区别词 n 名词 h 前缀 i 成语 j 简称略语 k 后缀 l 习用语 m 数词 mg 数语素 Mg 甲乙丙丁之类的数词 mq 数量词
elasticsearch-6.4.2 hanlp分词插件 windows下安装命令 首先进入es bin目录 elasticsearch-6.4.2\bin> 然后执行 elasticsearch-plugin.bat install file:///E:/elasticsearch-analysis-ik-6.4.2.zip Linux下安装...
在这个场景中,我们关注的是如何利用Java语言和HanLP分词库来实现从网络片段中抽取省份和城市这一特定需求。HanLP是由科大讯飞开发的一款高性能的自然语言处理工具包,它提供了丰富的中文分词、词性标注、命名实体...
通过本插件,用户可以在Elasticsearch中使用HanLP的各种分词算法,从而提升中文文本的索引和搜索效果。 项目的主要特性和功能 多种分词方式支持HanLP提供的多种分词方式,包括标准分词、索引分词、NLP分词、CRF...
HanLP分词解析字符串 在自然语言处理领域,分词是基础且重要的一步。分词的准确度直接影响到后续的文本分析、...假设我们有一段文本:“我爱自然语言处理”,使用HanLP进行分词后可以得到结果:“我/爱/自然语言/处理”
2. 修改了elasticsearch-analysis-hanlp-7.x.x插件源码对于es7版本适配性问题,更换新的hanlp-portable源码 3. 新增了人名,车牌,电子邮件,行政区划地址的感知机模型和字典 4. 增加了对es7部署插件的安装说明和...
ElasticSearch安装包整理,包含Hanlp分词,IK分词,x-pack,,Mysql动态加载停用词、基础词、同义词,个人整理的ElasticSearch7.9.0安装压缩包,其中的同义词,基础词,停用词mysql动态加载属于个人完善并编译,多年...
标题中的“IK分词器通过Spark加载词典并在Spark中使用”揭示了本文将要讨论的核心技术点,即如何利用Apache Spark与IK分词器(Intelligent Chinese Analyzer)结合,来处理中文文本分词任务。IK分词器是Java语言开发...
3. **创建索引**:在创建索引时,使用我们自定义的`Analyzer`对输入的文本进行分词,然后将分词结果作为`Document`的一部分存储到`IndexWriter`中,从而建立索引。 4. **执行查询**:当用户提交查询时,同样使用...
基于HanLP对地址字符串分词流程图.eddx
在Spark中,我们需要将jieba分词集成到Scala代码中,通过Spark的RDD(弹性分布式数据集)或DataFrame API对大规模文本数据进行并行分词处理,提高效率。 分词完成后,我们进入文本预处理阶段,包括去除停用词、词干...
最近适用了这五款分词工具,光是下载安装就踩了很多坑,特别是pyltp...三、 Jieba第一步:pip安装,指令为第二步:基于python中jieba包的中文分词中详细使用。四、 Hanlp第一步:下载Hanlp 。第二步:在eclipse里导入项
基于HanLP自然语言处理包的elasticsearch分词器 功能 本分词器使用HanLP提供的维特比分词 屏蔽了本地配置用户词典 增加同义词索引功能 增加远程词典热更新(用户词典,停词典,同义词典) 使用 目前支持的es版本为...
HanLP是由一系列模型与算法组成的工具包,目标是普及自然语言处理在生产环境中的应用。HanLP具备功能完善、性能高效、架构清晰、语料时新、可自定义的特点;提供词法分析(中文分词、词性标注、命名实体识别)、句法...
在这个项目中,HanLP主要用于对用户输入的问题进行预处理,将句子划分为单词,这是理解和解析自然语言的基础。 其次,朴素贝叶斯分类器(Naive Bayes Classifier,NBC)是一种基于贝叶斯定理的统计分类方法。它假设...
HanLP是由一系列模型与算法组成的Java工具包,目标是普及自然语言处理在生产环境中的应用。HanLP具备功能完善、性能高效、架构清晰、语料时新、可自定义的特点。 在提供丰富功能的同时,HanLP内部模块坚持低耦合、...
例如,HanLP因其高效、准确和灵活的特点,在Java中被广泛使用,其源代码可以在GitHub上查看和学习。 总的来说,中文分词是一个复杂的过程,涉及多种算法和技术,而HanLP作为一款强大的工具,为中文文本处理提供了...
为了提高Alice系统的中文处理能力,项目中引入了HanLP作为分词引擎。通过自定义接口的方式,可以灵活地控制分词过程,比如根据不同的应用场景选择合适的分词策略。 #### 2. 外部接口的处理 Alice系统支持与外部接口...
综合以上技术,这个项目构建了一个智能问答系统,能够理解用户的自然语言提问,通过hanLP进行预处理,然后在Neo4j知识图谱中查找相关信息,最后借助Spark-Mllib的分析能力提供精准的答案。这个系统展示了如何结合...