Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

caowm/JNI-HanLP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

5 Commits

Repository files navigation

JNI-HanLP

Delphi通过JNI封装的HanLP库

介绍

HanLP是一系列模型与算法组成的NLP工具包,目标是普及自然语言处理在生产环境中的应用。HanLP具备功能完善、性能高效、架构清晰、语料时新、可自定义的特点。

此转换库允许从Delphi调用Java程序。由于Java程序与平台无关,因此它也适用于Linux。

JNI-HanLP

在前面两个库的基础上进行二次封装,方便Delphi开发者使用汉语言处理功能。

开发准备

  1. 下载jar包:hanlp-1.7.8.jar,和程序放在一起。
  2. 下载HanLP要用的数据文件并解压:data.zip。把hanlp.properties和程序放在一起,并配置好里面的root。
  3. 下载 Delphi-JNI,把源码路径添加到Delphi Options->Library。
  4. 下载本项目,把源码路径添加到Delphi Options->Library。

注意事项

  1. 配置好JRE目录,jvm.dll要在搜索路径中,否则程序无法启动。
  2. 程序目标平台要与jvm相同(32位jvm配32位程序,64位jvm配64位程序)。
  3. 加载jvm时,option要写出jar包名称,比如:-Djava.class.path=./hanlp-1.7.8.jar.
  4. 调试模式下加载jvm会报access violation,调用时偶尔也报,just ignore it.

示例

初始化

var
 JVM: TJNIEnv;
 HanLP: THanLP;
begin
 // 指定参数加载jvm
 JVM := Create_JVM(JNI_VERSION_1_8, ['-Djava.class.path=./hanlp-1.7.8.jar']);
 // 创建HanLP
 HanLP := THanLP.Create(JVM);
end;

调用HanLP功能

var
 TermList: TObjectList<TTerm>;
 Term: TTerm;
 S: string;
begin
 // 全拼: chong zai bu shi zhong ren
 Log(HanLP.ConvertToPinyinString('重载不是重任', ' ', False));
 
 // 标准分词
 TermList := HanLP.Segment('我的希望是希望张晚霞的背影被晚霞映红');
 for Term in TermList do
 begin
 S := S + ' ' + Term.ToString();
 end;
 Log(S);
 TermList.Free;
end;

更多代码请参考demo。

作者:caowm (remobjects.qq.com)

About

通过Delphi JNI封装的HanLP(汉语言处理)库

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

AltStyle によって変換されたページ (->オリジナル) /