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:实现分词、词性标注、实体识别于一体的词法分析模型
⑨ 解决了需要重复加载自定义模型文件的问题,但是返回的分词结果,自定义词性前面没有了 反斜杠 “/”,感觉还是带着斜杠比较好,这样的话想过滤自定义的词性,就需要格外处理一下。

结束。

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

1159

被折叠的 条评论
为什么被折叠?



