`

Hanlp分词1.7版本在Spark中分布式使用记录

阅读更多

 

新发布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包下载

    标题“hanlp1.7jar包下载”表明我们要讨论的是HanLP的1.7版本的Java库,通常以.jar格式提供,方便Java开发者在项目中引入和使用。 HanLP 1.7.0是其历史版本之一,可能包含了一些特定的功能改进和优化。虽然没有具体...

    hanlp分词各类词性状态表,汉普分词规格表,hanlp各类词性表,hanlp分词词性表,nlp领域

    hanlp分词各类词性状态表: 比如: a 形容词 ad 副形词 b 区别词 n 名词 h 前缀 i 成语 j 简称略语 k 后缀 l 习用语 m 数词 mg 数语素 Mg 甲乙丙丁之类的数词 mq 数量词

    Hanlp分词实现从网络片段中提取省份和城市

    在这个场景中,我们关注的是如何利用Java语言和HanLP分词库来实现从网络片段中抽取省份和城市这一特定需求。HanLP是由科大讯飞开发的一款高性能的自然语言处理工具包,它提供了丰富的中文分词、词性标注、命名实体...

    Elasticsearch hanlp 分词插件

    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下安装...

    基于Elasticsearch的HanLP分词插件.zip

    通过本插件,用户可以在Elasticsearch中使用HanLP的各种分词算法,从而提升中文文本的索引和搜索效果。 项目的主要特性和功能 多种分词方式支持HanLP提供的多种分词方式,包括标准分词、索引分词、NLP分词、CRF...

    hanlp分词解析字符串.zip

    HanLP分词解析字符串 在自然语言处理领域,分词是基础且重要的一步。分词的准确度直接影响到后续的文本分析、...假设我们有一段文本:“我爱自然语言处理”,使用HanLP进行分词后可以得到结果:“我/爱/自然语言/处理”

    hanlp分词es插件字典和模型大全

    2. 修改了elasticsearch-analysis-hanlp-7.x.x插件源码对于es7版本适配性问题,更换新的hanlp-portable源码 3. 新增了人名,车牌,电子邮件,行政区划地址的感知机模型和字典 4. 增加了对es7部署插件的安装说明和...

    ElasticSearch安装包整理,包含Hanlp分词,IK分词,x-pack,,Mysql动态加载停用词、基础词、同义词

    ElasticSearch安装包整理,包含Hanlp分词,IK分词,x-pack,,Mysql动态加载停用词、基础词、同义词,个人整理的ElasticSearch7.9.0安装压缩包,其中的同义词,基础词,停用词mysql动态加载属于个人完善并编译,多年...

    IK分词器通过spark加载词典,并在spark中使用

    标题中的“IK分词器通过Spark加载词典并在Spark中使用”揭示了本文将要讨论的核心技术点,即如何利用Apache Spark与IK分词器(Intelligent Chinese Analyzer)结合,来处理中文文本分词任务。IK分词器是Java语言开发...

    Lucene5+HanLP分词例子

    3. **创建索引**:在创建索引时,使用我们自定义的`Analyzer`对输入的文本进行分词,然后将分词结果作为`Document`的一部分存储到`IndexWriter`中,从而建立索引。 4. **执行查询**:当用户提交查询时,同样使用...

    Spark中文分词+文本分类.rar

    在Spark中,我们需要将jieba分词集成到Scala代码中,通过Spark的RDD(弹性分布式数据集)或DataFrame API对大规模文本数据进行并行分词处理,提高效率。 分词完成后,我们进入文本预处理阶段,包括去除停用词、词干...

    基于HanLP对地址字符串分词流程图.eddx

    基于HanLP对地址字符串分词流程图.eddx

    NLPIR、pyltp、jieba、hanlp、snownlp分词工具安装使用记录

    最近适用了这五款分词工具,光是下载安装就踩了很多坑,特别是pyltp...三、 Jieba第一步:pip安装,指令为第二步:基于python中jieba包的中文分词中详细使用。四、 Hanlp第一步:下载Hanlp 。第二步:在eclipse里导入项

    Java中通过HanLP实现文本分词、提取关键词、聚类(工具资源+实例)

    HanLP是由一系列模型与算法组成的工具包,目标是普及自然语言处理在生产环境中的应用。HanLP具备功能完善、性能高效、架构清晰、语料时新、可自定义的特点;提供词法分析(中文分词、词性标注、命名实体识别)、句法...

    基于HanLP自然语言处理包的elasticsearch分词器 hanlp-tokenizer-master

    基于HanLP自然语言处理包的elasticsearch分词器 功能 本分词器使用HanLP提供的维特比分词 屏蔽了本地配置用户词典 增加同义词索引功能 增加远程词典热更新(用户词典,停词典,同义词典) 使用 目前支持的es版本为...

    基于HanLP分词和Bayes分类器实现的问答机器人.zip

    在这个项目中,HanLP主要用于对用户输入的问题进行预处理,将句子划分为单词,这是理解和解析自然语言的基础。 其次,朴素贝叶斯分类器(Naive Bayes Classifier,NBC)是一种基于贝叶斯定理的统计分类方法。它假设...

    HanLP中文分词所需内容_2.zip

    HanLP是由一系列模型与算法组成的Java工具包,目标是普及自然语言处理在生产环境中的应用。HanLP具备功能完善、性能高效、架构清晰、语料时新、可自定义的特点。 在提供丰富功能的同时,HanLP内部模块坚持低耦合、...

    读书笔记2之中文分词流程HanLP

    例如,HanLP因其高效、准确和灵活的特点,在Java中被广泛使用,其源代码可以在GitHub上查看和学习。 总的来说,中文分词是一个复杂的过程,涉及多种算法和技术,而HanLP作为一款强大的工具,为中文文本处理提供了...

    Spark大数据中文分词统计Scala语言工程源码

    总之,这个项目展示了如何在Spark中运用Scala和IKAnalyzer进行中文分词统计,帮助我们探索和理解古代文学作品的语言特征。这样的实践不仅适用于学术研究,也对于文本挖掘、信息检索等领域有着广泛的应用价值。通过...

    以Spring Boot框架为载体,通过集成hanLP、neo4j、spark-mllib实现基于电影知识图谱的简易问答系统

    综合以上技术,这个项目构建了一个智能问答系统,能够理解用户的自然语言提问,通过hanLP进行预处理,然后在Neo4j知识图谱中查找相关信息,最后借助Spark-Mllib的分析能力提供精准的答案。这个系统展示了如何结合...

Global site tag (gtag.js) - Google Analytics