ICTCLAS 平台调用的封装

python nlpir_NLPIR(ICTCLAS 2013)分词工具Python封装 本文只适用于python-nlpir V1.0版本,有关V2.0版本详情参照项目源代码。python-nlpir是NLPIR中文分词工具的Python封装,利用SWIG完成C++到python的接口转换。NLPIR汉语分词系统(又名ICTCLAS2013),主要功能包括中文分词;词性标注;命名实体识别;用户词典功能;支持GBK编码、UTF8编码、BIG5编码。新增微博分词、新词发现与关键词提取;是... 阅读详情

ICTCLAS30 已经给了开放函数的头文件,可以直接从C#调用

 

[StructLayout(LayoutKind.Explicit)]
public struct result_t
{
    [FieldOffset(
0)]
    
public int start;
    [FieldOffset(
4)]
    
public int length;
    [FieldOffset(
8)]
    
public int sPos;
    [FieldOffset(
12)]
    
public int sPosLow;
    [FieldOffset(
16)]
    
public int POS_id;
    [FieldOffset(
20)]
    
public int word_ID;
    [FieldOffset(
24)]
    
public int word_type;
    [FieldOffset(
28)]
    
public int weight;

}

/// <summary>
/// Description of ICTCLAS.
/// </summary>
public class ICTCLAS30
{

    
const string path = @"ICTCLAS30.dll";

    [DllImport(path, CharSet 
= CharSet.Ansi, EntryPoint = "ICTCLAS_Init")]
    
public static extern bool Init(String sInitDirPath);

    [DllImport(path, CharSet 
= CharSet.Ansi, EntryPoint = "ICTCLAS_ParagraphProcess")]
    
public static extern String ParagraphProcess(String sParagraph, int bPOStagged);

    [DllImport(path, CharSet 
= CharSet.Ansi, EntryPoint = "ICTCLAS_Exit")]
    
public static extern bool Exit();

    [DllImport(path, CharSet 
= CharSet.Ansi, EntryPoint = "ICTCLAS_ImportUserDict")]
    
public static extern int ImportUserDict(String sFilename);

    [DllImport(path, CharSet 
= CharSet.Ansi, EntryPoint = "ICTCLAS_FileProcess")]
    
public static extern bool FileProcess(String sSrcFilename, String sDestFilename, int bPOStagged);

    [DllImport(path, CharSet 
= CharSet.Ansi, EntryPoint = "ICTCLAS_FileProcessEx")]
    
public static extern bool FileProcessEx(String sSrcFilename, String sDestFilename);

    [DllImport(path, CharSet 
= CharSet.Ansi, EntryPoint = "ICTCLAS_GetParagraphProcessAWordCount")]
    
public static extern int GetParagraphProcessAWordCount(String sParagraph);
    
//ICTCLAS_GetParagraphProcessAWordCount
    [DllImport(path, CharSet = CharSet.Ansi, EntryPoint = "ICTCLAS_ParagraphProcessAW")]
    
public static extern void ParagraphProcessAW(int nCount, [Out, MarshalAs(UnmanagedType.LPArray)] result_t[] result);

    [DllImport(path, CharSet 
= CharSet.Ansi, EntryPoint = "ICTCLAS_AddUserWord")]
    
public static extern int AddUserWord(String sWord);

    [DllImport(path, CharSet 
= CharSet.Ansi, EntryPoint = "ICTCLAS_SaveTheUsrDic")]
    
public static extern int SaveTheUsrDic();


    [DllImport(path, CharSet 
= CharSet.Ansi, EntryPoint = "ICTCLAS_DelUsrWord")]
    
static extern int DelUsrWord(String sWord);

    
public ICTCLAS30()
    {

    }
}

 

使用的时候把ICTCLAS30.dll,Configure.xml和Data文件夹copy到程序exe运行的位置,否则需要制定他们的位置

使用实例的代码片段

 

ICTCLAS30.Init(null);//Configure.xml所在的目录,为null表示当前目录

string resultString = ICTCLAS.ParagraphProcess(strInput,0);//分词

int count = ICTCLAS.GetParagraphProcessAWordCount(strInput);
result_t[] rt 
=new result_t[count];
ICTCLAS.ParagraphProcessAW(count, rt);
//获得分析信息

 

ICTCLAS50 Delphi调用例程 Delphi下调用ICTCLAS50的参考方法 立即下载

相关推荐

ICTCLAS5.0 Delphi 2010、DelphiXE演示程序

ICTCLAS5.0针对Delphi 2010, Delphi XE的演示程序,包含ICTCLAS5.0的接口文件。在各位网友的强烈要求下,现独家发送,物以稀为贵,请各位谅解。

ICTCLAS java调用接口改动(zz陈天)

由于ICTCLAS官方并没有发布DLL文件,但是发布了exe程序,和源码。根据源码重新封装了DLL,并且做了相应的改动。主要改动如下: 因为免费版没有DLL提供,所以这个DLL是在分词.exe系统的源代码上改的,接口也和中科院的文档有些不一样.因为我觉得中科院提供的接口太多,用起来比较麻烦. 全部改动如下: init函数:中科院的DLL没有参数,我提供两个参数,i=nOutputFor

爱飞的蒲公英 8282

ICTCLAS5.0 Delphi2010接口源码

ICTCLAS是个不错的中文分词类库,可惜其文档不全,声称能支持Delphi但是又没有提供接口文档。这是本人根据其C接口文件修改测试而成的Delphi2010针对ICTCLAS5.0的dll库头文件,内含一个验证过的.pas文件,下载后直接整合到项目中即可使用。本来自用,考虑到互联网的分享精神,为了不让后来者走弯路特独家发送!当然,物以稀为贵,请各位开发同仁谅解。

java多线程 封装_【原创】中文分词系统 ICTCLAS2015 的JAVA封装和多线程执行(附代码)...

本文针对的问题是 ICTCLAS2015 的多线程分词,为了实现多线程做了简单的JAVA封装。如果有需要可以自行进一步封装其它接口。首先ICTCLAS2015的传送门(http://ictclas.nlpir.org/),其对中文分词做的比较透彻,而且有一定的可调式性。但是应用到实际开发中的话,多线程操作是必须的,因此有了本文的初衷。可能有的小伙伴不太清楚ICTCLASS是干嘛的,下面是一段介绍:...

weixin_35079944的博客 288

中科院FreeICTCLAS中文分词工具C++源码

//ICTCLAS简介:计算所汉语词法分析系统ICTCLAS(Institute of Computing Technology, Chinese Lexical Analysis System), // 功能有:中文分词;词性标注;未登录词识别。 // 分词正确率高达97.58%(973专家评测结果), // 未登录词识别召回率均高于90%,其中中国人名的识别召回率接近98%; // 处理速度为31.5Kbytes/s。 //著作权: Copyright?2002-2005中科院计算所 职务著作权人:张华平 刘群 //遵循协议:自然语言处理开放资源许可证1.0 //Email: zhanghp@software.ict.ac.cn //Homepage:www.nlp.org.cn;mtgroup.ict.ac.cn

ICTCLAS50分词系统API-Delphi

delphi下调用ICTCLAS50的接口文件

ICTCLAS2011中文分词在java的web项目中的使用

ICTCLAS2011中文分词在java的web项目中的使用 本文包括(myeclipse与tomcat的整合过程、配置该中文分词到web项目运行过程)   由于ICTCLAS4版本出现split错误: java.lang.ArrayIndexOutOfBoundsException:-1 at SegResult segResult = segTag.split(s); at Str

caimo的专栏 1万+

ICTCLAS 免费共享版

为http://ictclas.org/所发布软件的免费共享版,此版为JNI版,没有使用时间限制,

Python 通过ctypes调用 ICTCLAS3.0.DLL

调用,封装 ICTCLAS的部分尽量是写成模块的形式,不要封装成函数,否则容易出 access volation 0xx000,或者是  bSuccess = dll.ICTCLAS_ParagraphProcess(ctypes.c_char_p(s),0)  segmented=ctypes.c_char_p(bSuccess).value segmented 为None类型的问题。 改成...

weixin_33766805的博客 191

开源ICTCLAS的改进版

基于开源的ICTCLAS1.1作的改进。 为改善运行速度,程序结构变动较大,重定义了核心字典的结构。未登录词字典用Hash方式,同Viterbi数据合并保存。重写了最小路径算法,分词的中间数据结构也重新进行了调整。总体而言代码的结构要清晰得多了。改进后分词速度大致提高二十倍左右。准确率变动不大。

【大模型】MHA,MQA,GQA及KV Cache详解

在自回归模型中(Autoregressive Models),模型会逐个生成文本的每个token,这个过程可能比较慢,因为模型一次只能生成一个token,而且每次新的预测都依赖于之前的上下文。这意味着,要预测第1000个token,你需要用到前999个token的信息,这通常涉及到对这些token的表示进行一系列矩阵乘法运算。而要预测第1001个token,你不仅需要前999个token的信息,还要加上第1000个token的信息。

酒酿小圆子呀~ 2613

彻底重构ICTCLAS

彻底重写了ICTCLAS 测试了1000万数据的分词速度,4M/s,此速度不计字符串输入,结果输出;不过此ICTCLAS已经和原有的ICTCLAS彻底不同了-除了utility包外其他都自己重写。unicode编码的分词用了最大正向匹配,否则不可能快的,当消除歧义,未登陆词识别,词性标注时才会使用ICTCALS模块,否则正向一趟扫描即可。另外加了特例表,如果特例表命中,直接

某某某的专栏 999

论文阅读笔记(一)细粒度图像检索

0、参考文献 [1]见微知著 http://geek.youkuaiyun.com/news/detail/191718 [2]Xiu-Shen Wei 《Selective Convolutional Descriptor Aggregation for Fine-Grained Image Retrieval》 [3]Lingxi Xie 《Fine-Grained Image Search》 1...

huang2818138的博客 1万+

【原创】中文分词系统 ICTCLAS2015 的JAVA封装和多线程执行(附代码)

  本文针对的问题是 ICTCLAS2015 的多线程分词,为了实现多线程做了简单的JAVA封装。如果有需要可以自行进一步封装其它接口。   首先ICTCLAS2015的传送门(http://ictclas.nlpir.org/),其对中文分词做的比较透彻,而且有一定的可调式性。但是应用到实际开发中的话,多线程操作是必须的,因此有了本文的初衷。   可能有的小伙伴不太清楚ICTCLASS是干嘛...

weixin_30947043的博客 86

知识图谱的数据挖掘与分析

1. 背景介绍 1.1 数据挖掘的崛起 随着互联网的普及和大数据技术的发展,数据挖掘已经成为了计算机科学领域的热门研究方向。数据挖掘是从大量的、不完全的、有噪声的、模糊的、随机的实际应用数据中,通过计算机科学、统计学、信息论等多学科交叉的方法,挖掘出有用信息和知识的过程。数据挖掘的目标是从数据中发现有

AI天才研究院 1600

【已验证】基于STM32F407与AD9833的幅频特性测试装置设计与实现

本文详细介绍了基于STM32F407微控制器和AD9833 DDS芯片的低成本幅频特性测试装置设计与实现方法。通过扫频原理,该装置能自动生成正弦波信号,测量滤波器等电路的输出幅度变化,并在LCD屏幕或示波器上绘制幅频特性曲线。文章提供了从硬件选型、CubeMX工程配置、关键驱动代码编写到数据处理与可视化的完整教程,帮助电子爱好者与工程师快速搭建实用的滤波器测试工具。

weixin_35649491的博客 120

python语言常用的中文分词第三方库是_基于boost使用Python调用NLPIR(ICTCLAS2013)中文分词组件...

最近需要用到中文分词,本来想省事,用python的第三方库结巴分词,但看了下API,计算文本关键词的方法没有没有返回关键字对应的权值,翻了下文档应该是不还不支持,只好继续使用中科院的那套ICTCLAS分词组件,2013最新版已经改名为NLPIR,函数名前缀做了改变,少许函数的参数也有了变化,对于这种没有产品意识的产品来说,我已无力吐槽,我等屌丝只能跟着修改中间模块的源代码了。转成Python调用常...

weixin_32802111的博客 445

usb gadget uvc driver的code分析

uvc的linux driver分为host侧和gadget侧两个driver。host侧的driver在v4l2框架下,而设备侧的driver在usb/gadget文件夹下。gadget侧的uvc driver,利用v4l2框架去注册video_device,向应用层提供调用接口。同时,它完成v4l2 video buffer拷贝到usb request下的buffer下,然后利用uvc实现的协

lintwins的专栏 1万+

NICTCLAS:词法分析系统ICTCLAS的.NET版(源码提供下载)

NICTCLAS是大名鼎鼎的中科院计算所语词法分析系统ICTCLAS免费版的.NET包装版本,在原有免费EXE源码的基础上使用C++ /CLI封装成NICTCLAS.dll,将原CResult类改写成NICTCLAS managed class,并为适应VC8编译对源码做了少许改动,当然还有N个因为strcpy之类的警告因为实在太多干脆不予理会。如有错漏请不吝指正。NICTCLAS做了一定程度的简

Asp.net2.0开发专栏 2446

T527 uart串口配置导致系统进不去

T527 s_uart串口配置导致系统进不去。

Linux驱动开发工程师,熟悉Linux/Android底层驱动、TP、显示、IIC、网络等通用外设调试适配,Linux上层应用开发。常用平台瑞芯微、全志、恩智浦等。 676

基于STM32、HAL库的MCP4013T-103E/CH 数字电位器驱动程序设计

define MCP4013_I2C_ADDR (0x5F << 1) // HAL库使用7位地址左移1位,或直接使用0xBE/0xBF。#include "i2c.h" // 包含你的I2C初始化相关的头文件,例如由CubeMX生成的 i2c.h。大于127的值会被截断。// MCP4013的读操作:主机发起读取请求,从机返回当前滑片位置的一个字节。// 使用HAL_I2C_Master_Transmit直接发送数据。// 使用HAL_I2C_Master_Receive读取一个字节。

corlin6688的博客 126

ICTCLAS.NET——给C/C++程序写.NET wrapper

很多时候想通过.NET调用一些C/C++写的库,但是一直都不知道怎么弄。去网上找了一些资料,大多数是教如何通过托管C++和非托管C++的混合编程来完成C/C++的的类库的.NET Wrapper。   有的时候用C#来实现一个功能的时候,可能要调用windows api,往往都是到网上现查代码,然后粘过来使用,没有细研究到底是怎么做到的。 最近一个朋友用到分词,所以就研究了一些中科院提供...

weixin_33860528的博客 149

光学防抖OIS介绍与标定

前言:先看一下有无ois系统的效果。 1. OIS系统的作用就是消除镜头的抖动。 Gyro感受方向,Hall感受位移,Actuator驱动马达来矫正抖动方向和位移。 2.ois系统的结构构成 从上面来看ois系统主要有Hall,...

camerall 1万+

Python下如何调用NLPIR(ICTCLAS2013)分词系统

NLPIR汉语分词系统-Python下如何调用NLPIR(ICTCLAS2013) 在国内研究自然语言处理的人大概都知道ICTCLAS分词系统的大名。该系统是由张华平博士开发的基于层叠隐性马可夫链的分词系统,在中文分词领域具有领先的优势。今年一月张华平博士已经放出了最新的ICTCLAS2013分词系统,并更名为NLPIR,加入了新词发现,微博分词等功能。 在官方网站上,提供了C,Java

jklfjsdj79hiofo的专栏 4091

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

上一篇: HTTP Basic 验证客户端 C#实现笔记
下一篇: WebService调用时候的Object Moved 异常
format_km
博客等级 码龄11年 3粉丝 72原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值