freeictclasjava的简单介绍

今天给各位分享freeictclasjava的知识,其中也会对进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

1、谁会用ICTCLAS这个分词程序2、solr3.5中如何用java代码为PDF,Office等文件添加索引3、汉语句子拆分算法 java实现 高手请指教

谁会用ICTCLAS这个分词程序

ICTCLAS分词系统是个NB的系统,这几天找到了仔细试了试,效率奇高,比自己搞字典,分词算法效率不知高了很多倍,用起来也是非常简单的,BOSS需要导出自定义词库,然后用文章训练词库,不管了,反正可以使用了。DT地用hash做了两个星期,进度很慢,分析一本《天龙八部》,统计出现的词语频率(词语只是仅仅基于频率,在并没有字典的情况下无法实现智能分词!)大概要花费十几分钟,可见效率底下,而且内存200M左右。使用ICTCLAS分词系统可以高效地实现分词。下面把过程贴出来。

使用方法,首先到网上下载ICTCLAS,因为我是windows下的C++实现, 下载ICTCLAS2011_Windows_32_c,解压,里面有很好的Demo,Doc,copy API目录下的所有文件(夹)到你所在的工程,在你的源文件加上

#include “ICTCLAS50.h”

#pragma comment(lib, “ICTCLAS50.lib”) //ICTCLAS50.lib库加入到工程中

//

//your code here,可参考Demo里面的代码

//

即可。

大概的函数C++函数接口都在Doc文件下的文档中:

bool ICTCLAS_Init(const char* pszInitDir=NULL);初始化函数

返回值

如果初始化成功返回true, 否则返回false. 如初始化不成功,请查看ictclas.log文件了解详细错误原因.

参数

pszInitDir:初始化路径,应包含配置文件(Configure.xml)和词典目录(Data目录)以及授权文件(user.lic). 如果这些文件及目录在系统运行当前目录下,此参数可以为null。

bool ICTCLAS_Exit( );退出,释放内存

返回值

成功返回true;否则返回false。

unsigned int ICTCLAS_ImportUserDict(const char *sFilename,eCodeType eCT)

//导入用户自定义词典

返回值

导入成功的词的个数

参数

sFilename: 用户定义词典文件

eCT:编码格式

int ICTCLAS_ParagraphProcess(const char *sParagraph,int nPaLen,eCodeType eCt,int bPOStagged,char* sResult);//对一段文字进行分词

返回值

返回结果缓冲区的指针(sResult)以及结果的长度R

参数

sParagraph: 原始文字段

nPaLen: 文字段的长度

eCodeType: 文字段的编码格式

bPOStagged: 需不需要根据标注集做标记 0 = 做标记 ; 1 = 不标记; 默认为1.

sResult: 输出结果

t_pstRstVec ICTCLAS_ParagraphProcessA(const char *sParagraph,int PaLen,eCodeType eCodeType,int bPOStagged,int nRstCnt);

//处理文字段

返回值

结果vector的指针,系统调用,用户无法分配以及释放

struct stResult{

int start; //start position

int length; //length

#ifdef POS_TAGGER

int iPOS; //POS

char sPOS[POS_SIZE];//word type

#endif

int word_ID; //word_ID

int word_type; //Is the word of the user’s dictionary?(0-no,1-yes)

int weight;// word weight

};

参数

sParagraph: 原始文字段

nPaLen: 文字段长度

eCodeType: 编码格式

bPOStagged:

需不需要根据标注集做标记 0 = 做标记 ; 1 = 不标记; 默认为1.

nRstcnt: 处理结果的长度值。

详细用法参见Doc文件。

bool ICTCLAS_FileProcess(const char *sSrcFilename,eCodeType eCt,const char *sDsnFilename,int bPOStagged);//处理txt文件

返回值

处理文本文件成功返回true, 否则返回false

参数

sSourceFilename: 原始处理文件

eCodeType: 原始文件编码格式

sDsnFilename: 存储结果的文件名T

bPOStagged: 需不需要根据标注集做标记 0 = 做标记 ; 1 = 不标记; 默认为1.

注意事项

调用此函数之前需要调用init函数成功,输出格式可以通过ICTCLAS 配置来更改,这个需要研究下配置文件。

int ICTCLAS_SetPOSmap(int nPOSmap);//设置标注集

返回值

成功为1,其他为0

参数

nPOSmap :

ICT_POS_MAP_FIRST 计算所一级标注集

ICT_POS_MAP_SECOND 计算所二级标注集 PKU_POS_MAP_SECOND 北大二级标注集 PKU_POS_MAP_FIRST 北大一级标注集

int ICTCLAS_GetWordId(const char *sWord,int nWrdLen,eCodeType eCT);

返回值

单词的ID(我觉得是词典里面的存储位置,不清楚词典的具体结构)

参数

sWord: 目标单词

nWrdLen: 单词长度

eCodeType: 编码格式

bool ICTCLAS_ResultFree ( t_pstRstVec pRetVec)

//释放调用ICTCLAS_ParagraphProcessAW得到的vector指针

返回值

成功为1,失败为0

参数

t_pstRstVec: ICTCLAS_ParagraphProcessAW得到的vector指针

总结:这些函数都很好用,我需要使用处理文件函数ICTCLAS_FileProcess我出现的问题是:单独调用这个函数没有问题,但是在MFC界面调用两个选择打开文件路径和保存结果文件路径的CFileDialog以后就会出现ICTCLAS_Init初始化失败!郁闷了半天,查看ICTCLAS.log文件,

Default Path : E:\test_ICTCLAS\test_ICTCLAS\test_ICTCLAS

start lic check.

License succeed!Cannot open user dictionary

E:\test_ICTCLAS\test_ICTCLAS\test_ICTCLAS\Data\UserDict.pdat.

Cannot open file E:\test_ICTCLAS\test_ICTCLAS\test_ICTCLAS\Data\UserDict.map.

Cannot open user dictionary E:\test_ICTCLAS\test_ICTCLAS\test_ICTCLAS\Data\UserDict.pos.

Load dictionary down!

并没有异常,加载失败是因为并没有自定义词典。

仔细排查,发现bool ICTCLAS_Init(const char* pszInitDir=NULL)有一个默认的工作路径,在没有打开CFileDialog的时候默认的路径是exe文件执行路径,但是打开以后若不进行设置,会改变工作路径!这就是为什么点击CFileDialog路径更改,找不到路径下的文件,当然无法初始化了!( pszInitDir:初始化路径,应包含配置文件(Configure.xml)和词典目录(Data目录)以及授权文件(user.lic). 如果这些文件及目录在系统运行当前目录下,此参数可以为null)

解决方案:

方案1. 在每次调用CFileDialog打开文件后重新设置工作路径

方案2. 在程序中使用绝对路径

方案3. CFileDialog的构造函数有8个参数,平时为了省事一般只是指定第一个。其实解决这个问题,只要在第四个参数dwFlags中加上OFN_NOCHANGEDIR即可

freeictclasjava的简单介绍

solr3.5中如何用java代码为PDF,Office等文件添加索引

1、将解压包中的solr-4.7.1/dist/solr-4.7.1.war复制到tomcat_dir/webapps/目录,并命名为solr.war。

2、将solr-4.7.1/example/lib/ext/目录下的jar文件复制到tomcat/lib目录下,将solr-4.7.1/example/resources/下的log4j.properties文件复制到tomcat_dir/lib目录下;

切把 solr-4.7.1/example/solr,复制到tomcat_dir/bin下。

3、修改tomcat_dir/conf/server.xml

Connector port=”8080″ protocol=”HTTP/1.1″

connectionTimeout=”20000″

redirectPort=”8443″

URIEncoding=”UTF-8″ /

4、创建solr.xml,存放在路径:tomcat/conf/Catalina/www.easyaq.com/solr.xml,内容:

Context path=”/solr” docBase=”C:\Tomcat 7.0\webapps\solr.war”

debug=”0″ crossContext=”true”

Environment name=”solr/home” type=”java.lang.String” value=”C:\Tomcat 7.0\bin\solr\” override=”true” /

/Context

PS:上面的docBase和value路径中不能存在中文字符,否则会出现404错误。

5、将C:\Tomcat 7.0\webapps下的solr.war包,启动项目解压;然后再添加几个jar包:

solr-4.7.1\dist\solr-dataimporthandler-4.7.1.jar;

solr-4.7.1\dist\solr-dataimporthandler-extras-4.7.1.jar;

还要加载数据库驱动包:mysql-connector-java-3.1.13-bin.jar

6、在C:\Tomcat 7.0\bin\solr\collection1\conf 下的solrconfig.xml增加以下数据库配置:

requestHandler name=”/dataimport” class=”org.apache.solr.handler.dataimport.DataImportHandler”

lst name=”defaults”

str name=”config”data-config.xml/str

/lst

/requestHandler

7、将tomcat\bin\solr\collection1\conf下增加data-config.xml文件,内容如下:

dataConfig

dataSource type=”JdbcDataSource”

driver=”com.mysql.jdbc.Driver”

url=”jdbc:mysql://192.168.1.221:3306/tmsdb”

user=”root”

password=”123456″/

document name=”content”

entity name=”node” query=”select id,author,title,content from solrdb”

field column=”id” name=”id” /

field column=”author” name=”author” /

field column=”title” name=”title” /

field column=”content” name=”content” /

/entity

/document

/dataConfig

8、增加中文分词器,ik-analyzer的配置如下:

①目前的中文分词主要有两种

1,基于中科院ICTCLAS的隐式马尔科夫hhmm算法的中文分词器,例如smartcn等。(不支持自定义扩展词库)

2,基于正向迭代最细粒度切分算法(正向最大匹配并且最细分词)例如IK,庖丁等(支持自定义扩展词库)

安装分词前,可以去下载IK的分词包 :

IK-Analyzer-4.7.1-0.0.1-SNAPSHOT.jar

下载完毕后,将此包放进tomcat\solr的\WEB-INF\lib下面:tomcat\webapps\solr\WEB-INF\lib 。

下面需要在solr的schemal.xml进行分词器注册:

!– 配置IK分词器 —

fieldType name=”text_ik” class=”solr.TextField” positionIncrementGap=”100″

analyzer type=”index”

!– 分词–

tokenizer class=”org.wltea.analyzer.lucene.IKTokenizerFactory”/

!– 禁用词过滤根据情况使用–

!– filter class=”org.wltea.analyzer.lucene.IKStopFilterFactory”/ —

/analyzer

analyzer type=”query”

!– 分词–

tokenizer class=”org.wltea.analyzer.lucene.IKTokenizerFactory”/

!– 禁用词过滤根据情况使用–

!– filter class=”org.wltea.analyzer.lucene.IKStopFilterFactory”/–

/analyzer

/fieldType

最后还得配置一个引用字段就OK了

field name=”ik” type=”text_ik” indexed=”true” stored=”true” multiValued=”true”/

②它的安装部署十分简单,将IKAnalyzer2012.jar部署亍项目的lib目录中;IKAnalyzer.cfg.xml不stopword.dic文件放置在class根目录(对于web项目,通常是WEB-I NF/classes目彔,同hibernate、log4j等配置文件相同)下即可 ;然后配置solr4.7中schema.xml配置解析器:

schema name=”example” version=”1.1″

……

fieldType name=”text” class=”solr.TextField”

analyzer class=”org.wltea.analyzer.lucene.IKAnalyzer”/

/fieldType

……

/schema

汉语句子拆分算法 java实现 高手请指教

这个分词是一个很大很难的东西,中科院做了五年才做出ICTCLAS,如果你自己写的话估计可以晕了,建议你用现成的分词工具,用java调用,比较好的有上面的ICTCLAS,如果你是做搜索引擎,那么用lucene支持的一些分词工具会很不错

关于freeictclasjava和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

本文来自投稿,不代表【】观点,发布者:【

本文地址: ,如若转载,请注明出处!

举报投诉邮箱:253000106@qq.com

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2024年3月30日 01:36:56
下一篇 2024年3月30日 01:46:14

相关推荐

  • c语言mallloc使用的简单介绍

    C语言中使用malloc必须加#includemallo.h? 1、在C语言中使用malloc函数进行动态内存分配。malloc的全称是memory allocation,中文叫动态内存分配。原型:extern void malloc(unsigned int num_bytes);功能:分配长度为num_bytes字节的内存块。 2、你可以看一下C语言那本…

    2024年5月23日
    4500
  • javascriptcanvas的简单介绍

    如何使用js在画布上绘制图形 1、可以使用 drawImage()方法把一幅图像绘制到画布上。 以使用三种不同的参数组合。最简单的调用方式是传入一个 HTML 元素,以及绘制该图像的起点的 x 和 y 坐标。 2、效果图:使用JavaScript在画布中绘制文本图形首先我们来看看要在画布上绘制文本图形,需要用到的最重要的属性和方法:font属性:定义文本的字…

    2024年5月23日
    4200
  • cortexm4linux的简单介绍

    Cortex-M4的主要功能 Cortex-M4提供了无可比拟的功能,以将[1] 32位控制与领先的数字信号处理技术集成来满足需要很高能效级别的市场。 Cortex-M4核心具有浮点单元(FPU)单精度,支持所有Arm单精度数据处理指令和数据类型。它还实现了一套完整的DSP指令和一个提高应用程序安全性的内存保护单元(MPU)。 主要是m4比m3多了dsp的支…

    2024年5月23日
    4400
  • 3desjavaphp的简单介绍

    php的3des加密结果与java不一致 他们的加密算法都是通用的,是可以解开的,只要你des的模式,加密长度,初始向量什么的都一样就可以。 JAVA写RSA加密,私钥都是一样的,公钥每次加密的结果不一样跟对数据的padding(填充)有关。Padding(填充)属性定义元素边框与元素内容之间的空间。padding简写属性在一个声明中设置所有内边距属性。 要…

    2024年5月23日
    4900
  • 黑客代码软件学习推荐歌曲的简单介绍

    我想自学编程代码,,目地是“黑”网站,开发出破解代码。有没有这方面的… 这个迭代周期不应该以周为周期或以月为周期发生,而是应该以日为周期。知识等待使用的时间越久,知识这把斧头就越钝。等待学习新知识的时间越长,你就越难以将其融入到代码中。 我认为这个问题问得本身就显得有点矛盾,想学却担心自己看不懂代码学不来,试问哪个编程人员不是从零开始的。坚定信念…

    2024年5月23日
    4800
  • java8种基本类型范围的简单介绍

    java中常用的数据类型有哪些 1、java数据类型分为基本数据类型和引用数据类型,基本数据类型有boolean 、long 、int 、char、byte、short、double、float。引用数据类型有类类型、接口类型和数组类型。 2、java中包含的基本数据类型介绍:\x0d\x0aJava共支持8种内置数据类型。内置类型由Java语言预先定义好,…

    2024年5月23日
    4900
  • linux系统与gpt的关系的简单介绍

    linux下查看分区是不是gpt 看分区会报错,比如:WARNING: GPT (GUID Partition Table) detected on /dev/sda! The util fdisk doesnt support GPT. Use GNU Parted.所以这个sda就是gpt的。 选择“管理”;在“磁盘管理”中,右键“磁盘0”,在弹出的右键…

    2024年5月23日
    5400
  • 北京黑客学习培训的简单介绍

    现在学什么好啊 包括建筑设计、服装设计、珠宝首饰设计等,选择适合自己的设计专业,好好学习,就业容易且收入高。学前教育专业:很多女生喜欢小孩子,且女生一般细心且有耐心,教育行业假期宽裕,工作环境单纯,就业机会多。 现在比较热门好就业的专业有人工智能、机械专业、电子商务专业、人力资源专业、金融学专业、小语种类专业等等。人工智能:人工智能领域的研究包括机器人、语言…

    2024年5月23日
    4200
  • javaee要学那些东西的简单介绍

    java主要学习哪些内容 1、学java最重要的是下面四个内容:掌握Java语言的使用:语言语法、程序逻辑,OOP(面向对象)思想,封装、继承、多态,集合框架、泛型、File I\O技术,多线程技术、socket网络编程,XML技术。 2、Java基础:了解Java的基本语法、数据类型、控制流程、数组、字符串等基础概念。学习面向对象编程(OOP)的原则和概念…

    2024年5月23日
    4300
  • excel自杀的简单介绍

    excel表格中宏代码,具有自杀功能,密码输入错误3次就自动删除表格_百度… 我给楼主一个建议,利用excel自身的密码保护,保护此工作簿的结构,将sheet提前隐藏。这样如果有人将同一份excel打开时,如果不能输入正确的密码,就不能将sheet取消隐藏,就能达到楼主所说的保护了。 如果你还有源文件的话,可以这样试试:打开其他的excel文件,…

    2024年5月23日
    8100

发表回复

登录后才能评论



关注微信