百度 LAC 基于开源代码编译以及使用示例,windows系统版本Java调用所需的dll文件 lacjni.dll等

本文档介绍了如何在Windows系统下编译百度LAC库,包括安装Visual Studio、下载预编译的Paddle预测库,以及解决自定义模型加载和分词结果格式问题,以满足特定的分词需求。

1、github地址:https://github.com/baidu/lac

下文中描述的编译步骤中已经编译好的windows版本下载地址:编译好的dll文件下载地址:https://download.csdn.net/download/changingshow/20623664

下文中描述步骤里面的windows预测库文件下载地址:

https://download.csdn.net/download/changingshow/20631460

2、简介:LAC全称Lexical Analysis of Chinese,是百度自然语言处理部研发的一款联合的词法分析工具,实现中文分词、词性标注、专名识别等功能。

3、我的需求是,对文章进行分词,并可以通过加载自定义的模型文件进行分词,根据返回的结果,进行下一步业务处理。比如,我希望文章中出现 “天气真好”四个字的时候,可以把这四个字当成一个词语返回回来,并且携带我自定义的“词性”比如,“good_day”。

4、出现的问题:开始使用的时候并没有想着自己编译版本,直接使用官方提供编译好库,地址:https://github.com/baidu/lac/releases/

 但是在使用中发现,每次使用都必须重新加载自定义模型文件(loadCustomization),否则上一次的分词结果会影响下一次的分词结果,示例如下。“首发”、“口碑”、“露面”为自定义词语。

 如果每次都加载,则不会出现这个问题

 问题发现之后,然后就开始自己编译了。

5、进入正题,编译基于windows版本的链接库文件,做一下记录,官方的编译步骤文档连接:https://github.com/baidu/lac/blob/master/compile4windows.md

6、github访问起来、或者拉项目都比较慢,我的做法是直接把github的项目用gitee克隆一下,基于gitee来操作。

①安装 Visual Studio,地址https://visualstudio.microsoft.com/zh-hans/,我下载的社区版本,正常安装。需要注意一个点就是 工作负载中勾选C++桌面开发 的选项 这个安装过程有点长。安装完成之后需要重启

②安装Visual Studio Code,然后安装cmake相关插件。

 ③直接下载Paddle的预测库,不用自己编译了,文档上的连接有问题,没有直接指向下载地址,正确的下载地址:https://paddleinference.paddlepaddle.org.cn/user_guides/download_lib.html#windows

这块有个点,注意左上角的版本,开始的时候 我用1.6版本编译出来的lacjni.dll文件22M,然后java代码调用一直无法加载,后来换成2.1版本编译出来的lacjni.dll是33M,就可以正常使用了。下载之后解压到指定目录即可。

④git clone项目到本地,使用vscode打开,设置编译选项。我是使用gitee拉的代码,比较快。

⑤vscode打开项目,设置编译选项

 

编译器选择刚刚安装的 vs_amd64

 cmake 选择Release

 执行完上述步骤,保存之后,关闭这个文件,项目内如果生成build文件夹,先删除这个文件夹,然后重新打开CMakeLists.txt,执行保存,会触发CMake构建命令,生产build目录。

 构建完成,点击Build,开始编译

 

 ⑥编译完成之后,Build-》Release文件夹下面文件如下,windows下面java调用需要使用这四个dll文件。

⑦使用方式:直接加载 dll文件

System.load("C:/bdlac0729/lac/build/Release/lacjni.dll");

⑧在release界面下载模型文件models_general.zip,解压文件夹中包含两个模型

seg_model:仅实现分词的模型

lac_model:实现分词、词性标注、实体识别于一体的词法分析模型

⑨ 解决了需要重复加载自定义模型文件的问题,但是返回的分词结果,自定义词性前面没有了 反斜杠 “/”,感觉还是带着斜杠比较好,这样的话想过滤自定义的词性,就需要格外处理一下。

结束。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

changingshow

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值