我的编程空间,编程开发者的网络收藏夹
学习永远不晚

怎么在CSharp中调用HanLP

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

怎么在CSharp中调用HanLP

这篇文章主要介绍“怎么在CSharp中调用HanLP”,在日常操作中,相信很多人在怎么在CSharp中调用HanLP问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么在CSharp中调用HanLP”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

IKVM简介

IKVM.NET是一款开源的Java虚拟机,可以将hanlp.jar类库转为dll直接供C#程序调用,也可以直接当JVM让hanlp.jar运行在.NET平台上。请自行下载 IKVM ,本文使用的是ikvm-7.2.4630.5。

HanLP简介

HanLP 是一个致力于向生产环境普及NLP技术的开源Java工具包,支持中文分词(N-最短路分词、CRF分词、索引分词、用户自定义词典、词性标注),命名实体识别(中国人名、音译人名、日本人名、地名、实体机构名识别),关键词提取,自动摘要,短语提取,拼音转换,简繁转换,文本推荐,依存句法分析(MaxEnt依存句法分析、神经网络依存句法分析)。

HanLP由3部分组成:类库hanlp.jar包、模型data包、配置文件hanlp.properties,请前往项目主页下载最新版: https://github.com/hankcs/HanLP/releases

下载后,你需要编辑配置文件第一行的root指向data的父目录, 详见文档 。

在IKVM中运行hanlp.jar

准备工作

Native JVM情况下,我们是这样调用hanlp.jar的,新建一个目录(假定为C:\hanlp),把hanlp.jar和hanlp.properties放进去:

怎么在CSharp中调用HanLP

然后cd到这个目录内,一句命令行:

java -cp .;hanlp-1.2.7.jar com.hankcs.hanlp.summary.TextRankSentence

就能运行成功了:

[无限算法的产生是由于未能确定的定义终止条件, 这类算法在有限的时间内终止, 有限的非确定算法]

这里通过-cp选项指定了classpath为当前目录,这样 HanLP 就能找到hanlp.properties了。

另外,在新版HanLP中,移除了所有的main方法,所以可能会报找不到main方法的异常。新版用户不必纠结于命令行调用,直接写代码调用即可。

IKVM命令行

使用IKVM的话,只要将java换成ikvm即可:

C:\ikvm-7.2.4630.5\bin\ikvm -cp .;hanlp-1.2.7.jar com.hankcs.hanlp.summary.TextRankSentence

效果是一样的:

怎么在CSharp中调用HanLP

在C#中调用HanLP

将hanlp.jar转为hanlp.dll

CSharp是不能直接调用jar包的,需要转为dll。IKVM提供了一个转换工具ikvmc,使用方法如下:

C:\hanlp>C:\ikvm-7.2.4630.5\bin\ikvmc -target:library C:\hanlp\hanlp-1.2.7.jar

ikvmc会输出消息:

IKVM.NET Compiler version 7.2.4630.5Copyright (C) 2002-2012 Jeroen Frijtershttp://www.ikvm.net/ note IKVMC0002: Output file is "hanlp-1.2.7.dll"

同时会在C:\hanlp目录下生成hanlp-1.2.7.dll。

在Visual Studio中使用hanlp.dll

首先新建一个CSharp项目:

怎么在CSharp中调用HanLP

然后引用刚才生成的hanlp.dll和ikvm-7.2.4630.5\bin目录下的IKVM.OpenJDK.Core.dll这两个dll:

怎么在CSharp中调用HanLP

确定后就能在解决方案资源管理器中看到这两个dll了:

怎么在CSharp中调用HanLP

双击hanlp还能进入到类视图:

怎么在CSharp中调用HanLP

那么就可以愉快地写代码调用 HanLP 了:

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using com.hankcs.hanlp;  namespace HanLPSharp{    class Program    {        static void Main(string[] args)        {            java.lang.System.getProperties().setProperty("java.class.path", "C:\\hanlp");            Console.WriteLine(HanLP.segment("你好,欢迎在CSharp中调用HanLP的API!"));            Console.ReadKey();        }    }}

解释一下,

java.lang.System.getProperties().setProperty("java.class.path", "C:\\hanlp");

这句的作用是设置classpath到hanlp.properties所在的目录,请根据情况自由调整。

编译运行,效果如下:

怎么在CSharp中调用HanLP

这说明HanLP在CSharp中工作良好。

更多丰富的API

请参考HanLP的项目主页: https://github.com/hankcs/HanLP

Reference

http://stackoverflow.com/questions/3466698/where-does-ikvm-get-its-classpath-from

http://www.ikvm.net/uses.html

怎么在CSharp中调用HanLP

到此,关于“怎么在CSharp中调用HanLP”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

怎么在CSharp中调用HanLP

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

python中怎么调用HanLP

这篇文章将为大家详细讲解有关python中怎么调用HanLP,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1.首先安装jpype首先各种坑,jdk和python 版本位数必须一致,我用的是J
2023-06-02
2024-04-02

怎么在ubuntu下使用pycharm调用Hanlp自然语言处理包

本篇内容介绍了“怎么在ubuntu下使用pycharm调用Hanlp自然语言处理包”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!首先点击Fi
2023-06-02

Eclipse怎么安装和使用Hanlp

本篇内容介绍了“Eclipse怎么安装和使用Hanlp”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!【1】确定正确安装配置Java和Ecli
2023-06-02

Spark中怎样使用HanLP分词

Spark中怎样使用HanLP分词,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1.将HanLP的data(包含词典和模型)放到hdfs上,然后在项目配置文件h
2023-06-02

HanLP在eclipse中的安装和使用方式

本篇内容介绍了“HanLP在eclipse中的安装和使用方式”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!HanLP由3部分组成:类库han
2023-06-02

在jsp中怎么调用javabean

在JSP中调用JavaBean可以通过以下步骤:1. 首先,在JSP页面中导入JavaBean类。可以通过使用``指令导入JavaBean类的包。2. 创建一个JavaBean对象。可以使用``在JSP页面中创建一个JavaBean对象。3
2023-08-08

怎么在C++中调用Python

小编给大家分享一下怎么在C++中调用Python,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Python的安装为了使用Python.h这个扩展项,我们需要安装一
2023-06-15

怎么在java中调用super

怎么在java中调用super?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Java可以用来干什么Java主要应用于:1. web开发;2. Android开发
2023-06-14

怎么在Android中调用WebService

怎么在Android中调用WebService?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。WebService是一种基于SOAP协议的远程调用标准,通过webservic
2023-05-30

怎么在python中调用api

本篇文章给大家分享的是有关怎么在python中调用api,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。python可以做什么Python是一种编程语言,内置了许多有效的工具,P
2023-06-14

python怎么调用Hanlp做命名实体识别以及词性标注

本篇内容介绍了“python怎么调用Hanlp做命名实体识别以及词性标注”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!pyhanlp只有少数
2023-06-02

怎么在Java中调用方法

这期内容当中小编将会给大家带来有关怎么在Java中调用方法,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、方法调用方法调用的唯一目的:确定要调用哪一个方法方法调用分为解析调用和分派调用二、非虚方法与虚方
2023-06-15

怎么在python中调用函数

这篇文章将为大家详细讲解有关怎么在python中调用函数,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。python可以做什么Python是一种编程语言,内置了许多有效的工具,Python几乎
2023-06-14

Hanlp在Python环境中的安装、介绍及使用

这篇文章主要讲解了“Hanlp在Python环境中的安装、介绍及使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Hanlp在Python环境中的安装、介绍及使用”吧!HanlpHanLP是
2023-06-02

编程热搜

目录