惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Engineering at Meta
Engineering at Meta
博客园_首页
H
Help Net Security
WordPress大学
WordPress大学
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
罗磊的独立博客
博客园 - 三生石上(FineUI控件)
B
Blog
I
InfoQ
SecWiki News
SecWiki News
T
Tailwind CSS Blog
Spread Privacy
Spread Privacy
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
V
Vulnerabilities – Threatpost
N
Netflix TechBlog - Medium
P
Palo Alto Networks Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Vercel News
Vercel News
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
K
Kaspersky official blog
M
MIT News - Artificial intelligence
S
Schneier on Security
T
Threat Research - Cisco Blogs
F
Fortinet All Blogs
Cyberwarzone
Cyberwarzone
Scott Helme
Scott Helme
aimingoo的专栏
aimingoo的专栏
Martin Fowler
Martin Fowler
MyScale Blog
MyScale Blog
The Cloudflare Blog
Recent Announcements
Recent Announcements
Security Latest
Security Latest
G
GRAHAM CLULEY
IT之家
IT之家
Y
Y Combinator Blog
The Last Watchdog
The Last Watchdog
腾讯CDC
Google DeepMind News
Google DeepMind News
V
V2EX
S
Securelist
TaoSecurity Blog
TaoSecurity Blog
B
Blog RSS Feed
S
SegmentFault 最新的问题
博客园 - 叶小钗
P
Proofpoint News Feed
云风的 BLOG
云风的 BLOG
Project Zero
Project Zero
G
Google Developers Blog
Google DeepMind News
Google DeepMind News
F
Full Disclosure

博客园 - format

使用Arduino Nano驱动Lora模块 DIY一个物联网平台:想法 jQuery 批量操作checkbox 国内的maven镜像 Python Flask UnicodeDecodeError 编码错误解决 关于Python的web框架 NHibernate 3 中的 In 集合查询 在MVC 4 中使用自定义Membership [学习][Java] Struts2 与页面传值 (转) C++ Utf8字符转换Gb312编码,解决TinyXml中文乱码 Linux学习 -- Linux的可执行文件 WIN32简单的窗体代码,带函数功能注释 WINSocket编程 发生HTTP GET请求,并接收服务器返回 Win32 API 的文件操作 - format C++ 类中封装Win32API的回调函数 Win32编程 创建从资源文件定义的对话框 Oracle 数据库 用脚本建表空间 把UserControl通过代码控制输入HTML WebService调用时候的Object Moved 异常
ICTCLAS 平台调用的封装
format · 2009-11-06 · via 博客园 - format

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);
//获得分析信息