一:什么是NLPIR?

NLPIR汉语分词系统(自然语言处理与信息检索共享平台),主要功能包括中文分词;词性标注;命名实体识别;用户词典功能;支持GBK编码、UTF8编码、BIG5编码。新增微博分词、新词发现与关键词提取;张华平博士先后倾力打造十余年,内核升级10次。

全球用户突破20万,先后获得了2010年钱伟长中文信息处理科学技术奖一等奖,2003年国际SIGHAN分词大赛综合第一名,2002年国内973评测综合第一名。

二:我们使用NLPIR可以做什么?

三:如何把分词算法用到我们的ETL工作中?

下面我们以KETTLE为例来说明

3.1:利用NLPIR接口开发Java Project

首先使用NLPIR提供的demo开发一个java project,通过在main函数中测试可以完成简单的分词功能,如下图所示

3.2:导出Java Project为jar包

把开发的java project导出为 fenci.jar放入到......\pdi-ce-6.0.1.0-386\data-integration\lib下面

3.3:kettle中引用nlpir分词算法

在kettle的ktr中拖入一个Java 代码的控件,代码如下图所示

具体代码为:

import test.TestFunction;
import nlpir.NlpirTest;
public boolean processRow(StepMetaInterface smi, StepDataInterface sdi) throws KettleException
{Object[] r = getRow();TestFunction tf=new TestFunction();NlpirTest    nt=new  NlpirTest();if (r == null) {setOutputDone();return false;}if (first){first = false;}r = createOutputRow(r, data.outputRowMeta.size());// Get the value from an input field
String test_value2 = get(Fields.In, "zd").getString(r);// play around with itString s_value =nt.FenCi(test_value2);// Set a value in a new output fieldget(Fields.Out, "splitword_value").setValue(r,s_value);// Send the row on to the next step.
    putRow(data.outputRowMeta, r);return true;
}

这样输出中就会新增加一列字段名为 "splitword_value"的输出,如下图所示,左侧和下面显示正常则说明类书写正常

3.4:测试效果

3.5:难点解析

从下载的官方文件中得知:

1.分词和提取关键词在一起jnaTest是新词发现和关键词提取在一起。
2.如果加载项目后无法运行请配置classpath中的lib路径为jna包的路径。
3.loadlibrary中的dll路径为你项目中dll的路径,该路径可以是绝对路径或者相对路径。
4.如果出现未提示错误,可以F5刷新项目查看日志文件。
5.建议jdk使用32,因为jna在32jdk上更稳定。

所以本人在64bit jdk下面没有成功,在kettle环境引用32bit的jdk后一切都可以跑起来了

另:由于是32bit的jdk,需要修改kettle的启动文件 spoon.bat中的默认设置修改如下

原来的值:if "%PENTAHO_DI_JAVA_OPTIONS%"=="" set PENTAHO_DI_JAVA_OPTIONS="-Xms1024m" "-Xmx2048m" "-XX:MaxPermSize=256m"

修改后为:if "%PENTAHO_DI_JAVA_OPTIONS%"=="" set PENTAHO_DI_JAVA_OPTIONS="-Xms512m" "-Xmx1024m" "-XX:MaxPermSize=256m"

保存spoon.bat再次启动  一切正常

关于NLPIR应用在KETTLE中的探索相关推荐

  1. kettle中三种类型: 增量不裁剪,增量裁剪,全量

    (1)增量表,全量表,快照表 原图片来源: 什么是增量表,全量表,快照表 - 简书 https://www.jianshu.com/p/d53b44b15655 (2)裁剪不裁剪 参看: SQL TR ...

  2. kettle中java组件_kettle系列-[KettleUtil]kettle插件,类似kettle的自定义java类控件

    该kettle插件功能类似kettle现有的定义java类插件,自定java类插件主要是支持在kettle中直接编写java代码实现自定特殊功能,而本控件主要是将自定义代码转移到jar包,就是说自定义 ...

  3. WebPack在多页应用项目中的探索

    WebPack在项目配置中的探索(持续更新中) webpack + gulp + vue (thinkPHP后台配置) 一.项目需求(请认真看目录结构,项目构建很大都基于目录来的) --- Appli ...

  4. kettle中使用javascript步骤和fireToDB函数实现自己定义数据库查询

    kettle中使用javascript步骤和fireToDB函数实现自己定义数据库查询 如果你须要实现非传统的数据库查询操作.为了讨论这样的情景,我们如果你须要读取数据库中的正則表達式,然后检查输入的 ...

  5. 计算机网络安全六要素,六要素教学在计算机网络教学中的探索与反思

    <六要素教学在计算机网络教学中的探索与反思>由会员分享,可在线阅读,更多相关<六要素教学在计算机网络教学中的探索与反思(5页珍藏版)>请在装配图网上搜索. 1.六要素教学在计算 ...

  6. 直播 | 北邮博士生纪厚业:异质图神经网络在阿里推荐业务中的探索

    「AI Drive」是由 PaperWeekly 和 biendata 共同发起的学术直播间,旨在帮助更多的青年学者宣传其最新科研成果.我们一直认为,单向地输出知识并不是一个最好的方式,而有效地反馈和 ...

  7. 分布式数据库在金融应用场景中的探索与实践

    分布式数据库在金融应用场景中的探索与实践 刘雷, 郭志军, 马海欣, 赵琼, 胡卉芪, 蔡鹏, 杜洪涛, 周傲英, 李战怀 交通银行软件开发中心,上海 201201 华东师范大学数据科学与工程学院,上 ...

  8. 推荐系统遇上深度学习(十五)--强化学习在京东推荐中的探索

    强化学习在各个公司的推荐系统中已经有过探索,包括阿里.京东等.之前在美团做过的一个引导语推荐项目,背后也是基于强化学习算法.本文,我们先来看一下强化学习是如何在京东推荐中进行探索的. 本文来自于pap ...

  9. AutoML在推荐系统协同过滤中的探索与发现(附交流视频和PPT下载链接)

            导读:今天给大家带来第四范式资深研究员.香港科技大学博士姚权铭,在2019年底所做的分享<AutoML在推荐系统协同过滤中的探索与发现>,本文介绍了第四范式研究组将自动化机 ...

最新文章

  1. 一键修改分辨率bat_求使用批处理BAT设置分辨率的方法介绍?
  2. 战神4 幕后花絮 概念艺术_Java 9幕后花絮:新功能从何而来?
  3. php商品在最少购买,ECSHOP给商品设置最少购买数量的方法
  4. vue编程式导航,命名路由
  5. DEV-C++调试设置
  6. FastSocket学习笔记~再说客户端与服务端的组成
  7. fastdfs原理简析
  8. 开源.net 混淆器ConfuserEx介绍
  9. 国密祖冲之算法ZUC之Python实现
  10. 我国东北虎种群增长迅速 但近交风险不容忽视
  11. SpringIOC和DI简单总结
  12. 关于 国产麒麟系统使用killall命令杀死模糊匹配进程失败“未找到该进程” 的解决方法
  13. jadx重新打包_反编译一款APP然后重新打包(Windows环境)
  14. 【阿里云】云服务器ECS怎么一键重装系统
  15. 智和信通搭建高可靠、真稳定IT运维平台,助力能源行业高效生产
  16. 责任链模式在SpringAOP中的使用
  17. 谷歌收购摩托罗拉掀开移动互联网大战帷幕
  18. BFS广搜例题,问题引入 --- 阿狗荒岛逃生系列(其一)
  19. Xshell 连接本地虚拟机成功案例
  20. Appium-Python-Client下载

热门文章

  1. 零基础学怎么学Java_零基础学java难么?怎么自学?
  2. 本机安装PaddlePaddle - 安装指南
  3. 关于三岔路口双车接力,这位同学把问题总算问清楚了
  4. 2021年春季学期-信号与系统-第六次作业参考答案-第七小题
  5. 灵动微电子逐飞 智能车支持计划汇总
  6. 集成有MAX1169,MAX520的DAAC单片STC8G1K08机电路板
  7. Linux定时程序没有之行完,如何在linux上定时执行程序
  8. serverlet 区别_Servlet中/和/*的区别
  9. 如何搭建一个你喜欢的工作环境
  10. php访问参数错误,phpcms参数错误怎么办