FNLP

FNLP入门

1.下载跟编译

GitHub上下载FNLP压缩包;
下载相应的模型文件,放在第一步下载的文件里的models目录;
下载Maven,并按照教程配置(其实就是解压缩和配置环境变量)
在命令行中进入FNLP的源码目录(即“README.md”所在的目录),执行如下命令进行编译:

mvn install -Dmaven.test.skip=true

(更新2018.4.25:win10系统如果进入的是powershell, 则使用命令

mvn install ‘-Dmaven.test.skip=true’ )

这会编译四个Jar包:fnlp-core、fnlp-dev、fnlp-train、fnlp-app、fnlp-demo。它们分别位于源码目录中,各自对应目录中的”target”目录之中,例如fnlp-core的软件包位于: fnlp-core/target/fnlp-core-2.0-SNAPSHOT.jar

2.命令行使用

FNLP的源码目录下的命令行(可以Win+R 输入cmd,然后进入源码目录;也可以在源码目录下,按住shift右键进入命令行),执行maven命令:

mvn dependency:copy-dependencies -DoutputDirectory=libs

这样jar包都会copy到工程目录下的libs里面

输入 java -Xmx1024m -Dfile.encoding=UTF-8 -classpath “.;fnlp-core/target/fnlp-core-2.1-SNAPSHOT.jar;libs/trove4j-3.0.3.jar;libs/commons-cli-1.2.jar” org.fnlp.nlp.cn.tag.CWSTagger -s models/seg.m “自然语言是人类交流和思维的主要工具,是人类智慧的结晶。” 可以使用分词功能,也可以测试是否安装成功(windows系统下)。结果如图:

3.调用FNLP库(eclipse下使用)

在eclipse左侧的Project Explorer中选择项目名称,右击,在菜单中选择Build Path,Add External Archives…,则会弹出文件选择对话框,依次查找并添加下列文件(第二步获得的一些jar包,可以在lib等文件夹下找到):

fnlp-core-2.1-SNAPSHOT.jar

trove4j-3.0.3.jar

commons-cli-1.2.jar

修改虚拟机最大内存量(网上有教程);

模型文件指词典、训练后的中文分词器、POS标注器等,它们位于FNLP源码目录下的“models”目录之中。将此目录复制到Eclipse项目目录之下即可。

接下来就可以编程调用了。

FNLP提供了一系列中文处理工具,其中中文分词、词性标注、实体名识别等基础功能已经封装在工厂类CNFactory之中。CNFactory位于org.fnlp.nlp.cn包之中,经过初始化后就可以使用其提供的全部功能:

import org.fnlp.nlp.cn.CNFactory;
CNFactory factory = CNFactory.getInstance(“models”);12

以上代码创建了一个CNFactory对象,并载入位于“models”目录下的模型文件。接下来就可以使用CNFactory的对象来进行各种中文语言处理任务。

中文分词

public static void main(String[] args) throws Exception {

// 创建中文处理工厂对象,并使用“models”目录下的模型文件初始化
CNFactory factory = CNFactory.getInstance("models");

// 使用分词器对中文句子进行分词,得到分词结果
String[] words = factory.seg("关注自然语言处理、语音识别、深度学习等方向的前沿技术和业界动态。");

// 打印分词结果
for(String word : words) {
    System.out.print(word + " ");
}
 System.out.println();

}

结果: 关注 自然 语言 处理 、 语音 识别 、 深度 学习 等 方向 的 前沿 技术 和 业界 动态 。

中文词性标注

public static void main(String[] args) throws Exception {

// 创建中文处理工厂对象,并使用“models”目录下的模型文件初始化
CNFactory factory = CNFactory.getInstance("models");

// 使用标注器对中文句子进行标注,得到标注结果
String result = factory.tag2String("关注自然语言处理、语音识别、深度学习等方向的前沿技术和业界动态。");

// 显示标注结果
System.out.println(result);

}

结果:关注/动词 自然/名词 语言/名词 处理/动词 、/标点 语音/名词 识别/名词 、/标点 。。。

实体名识别

public static void main(String[] args) throws Exception {

// 创建中文处理工厂对象,并使用“models”目录下的模型文件初始化
CNFactory factory = CNFactory.getInstance("models");

// 使用标注器对包含实体名的句子进行标注,得到结果
HashMap<String, String> result = factory.ner("詹姆斯·默多克和丽贝卡·布鲁克斯 鲁珀特·默多克旗下的美国小报《纽约邮报》的职员被公司律师告知,保存任何也许与电话窃听及贿赂有关的文件。");

// 显示标注结果
System.out.println(result);

}

结果:

{詹姆斯·默多克=人名, 鲁珀特·默多克旗=人名, 丽贝卡·布鲁克斯=人名, 纽约=地名, 美国=地名}


本文来自 黄骨鱼骨 的优快云 博客 ,全文地址请点击:https://blog.youkuaiyun.com/jiafgn/article/details/72614635?utm_source=copy

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值