分词系统

时间:2024-09-21 15:05:47编辑:奇事君

lucene怎么使用nlpir进行分词

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;
using Lucene.Net.Analysis;

namespace Lucene.Net.Analysis.DChinese
{
[StructLayout(LayoutKind.Explicit)]
public struct result_t
{
[FieldOffset(0)]
public int start;
[FieldOffset(4)]
public int length;
[FieldOffset(8)]
public int sPos1;
[FieldOffset(12)]
public int sPos2;
[FieldOffset(16)]
public int sPos3;
[FieldOffset(20)]
public int sPos4;
[FieldOffset(24)]
public int sPos5;
[FieldOffset(28)]
public int sPos


lpir/ictclas2014分词系统怎么使用

  使用方法,首先到网上下载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  };  


浅析百度中文分词是如何进行的

在网站的链接架构及关键词的布局都与分词有很大的关系。平时跟百度接触的比较多,所以就以百度中文分词为例介绍下搜索引擎分词的方法。  在了解百度的中文分词之前大家首先要了解什么是中文分词?我们中文与英文不同,是由一个个汉字连接成的,因此分起来相对比较复杂。百度的中文分词是将一个汉语句子切分成一个个的单独的词,然后按照一定的规则重新组合成一个序列的过程,简称中文切词。分词对搜索引擎的帮助很大,可以帮助搜索引擎程序自动识别语句的含义,从而使搜索结果的匹配度达到最高,因此分词的质量也就直接影响了搜索结果的精确度。当前百度搜索引擎分词主要采用字典匹配和统计学这两种方法。  字典匹配分词  这种方法的就出事有一个词库量超大的词典,即分词索引库,在按照一定的规则将待分的词的字符串与词库中的词进行匹配,找到某个词语就表示匹配成功,这主要通过以下几种方式:最少切分(使每一句中切出的词数最小);正向最大匹配法(由左到右的方向);双向最大匹配法(进行由左到右、由右到左两次扫描);逆向最大匹配法(由右到左的方向)。  一般情况下,搜索引擎会使用多种方式结合使用,这就为搜索引擎带来很大的困难,如歧义的处理,为了提高关键词匹配的精确率,搜索引擎会模拟人类对句子的理解,从而达到识别词语的效果。也就是在粉刺的同时进行句法、语义分析,利用句法信息和语义信息来处理歧义现象。这主要包括以下几个部分:总控部分、分词子系统、句法语义子系统。在总控部分的协调下,分词子系统可以获得有关词、句子等的句法和语义信息来对分词歧义进行判断,即它模拟了人对句子的理解过程。  统计学分词  虽然字典索引库解决了很多难题,但是着写还是远远不够的,搜索引擎还需要具有不断发现新词的能力,在通过计算词语相邻的概率在确定是不是一个单独的词语,因此了解的上下文越多,对句子的理解也就越准确,当然分词也就越精确。举个例子来讲就是搜索引擎优化的过程是什么在上下文中出现的次数较多,那么统计学分词就会将这个词假如分词索引库。  对于seo的工作者,必须要掌握搜索引擎的粉刺原理和方法,这样才能是网站更容易确定主题的相关性。就seo和培训,我发现每个词语分词后有一个主词和副词,通常是优先匹配主词,然后再匹配副词,比如这里显然SEO是主词,所以优先去匹配这个词语,然后是培训这个副词。


百度中文分词如何分词

而百度中文分词就是把词按照一定的规格,将一个长尾词分割成几个部分,从而概括一段话的主要内容。在百度中文分词中,百度强调的是:一、 字符串匹配的分词方法。我们需要有一定的字符串做基础,就是一段词用字符分开,比如标点符号,空格等。才能够进行分词匹配,我们把这些字符串叫做机械词典。机械词典的个数不定。由每个搜索引擎自己确定。每个机械词典之间还会有优先级。字符串匹配的分词方法最常用的有几种:1、正向最大匹配法(由左到右的方向)2、逆向最大匹配法(由右到左的方向)3、最少切分(使每一句中切出的词数最小)百度中文分词基于字符串匹配举例给大家说明一下:“我想去澳大利亚旅游”正向最大匹配:我想去,澳大利亚旅游逆向最大匹配:我想,想去,澳大利亚,旅游。最少切分:我把上面哪句话分成的词要是最少的“我想去,澳大利亚旅游”这就是最短路径分词法,分出来就只有2个词了。另外,不同的搜索的词典不同,分出来的词也不同。二、理解的分词方法。这种分词方法不需要机械词典。这种其实就是一种机器语音判断的分词方法。很简单,进行句法、语义分析,利用句法信息和语义信息来处理歧义现象来分词,这种分词方法,现在还不成熟。处在测试阶段。三、统计的分词方法。这个顾名思义,就是根据词组的统计,发现那些相邻的字出现的频率高,那么这个词就很重要。可以作为用户提供字符串中的分隔符。比如,“我的,你的,许多的,这里,这一,那里”。等等,这些词出现的比较多,就从这些词里面分开来。四、对于百度中文分词的理解:基于统计的分词方法得到的词或者句子的权重要高于基于字符串匹配得到的。就是全字匹配得到的词的权重会高于分开的词的权重。根据自己的观察现在百度大部分都是使用的是正向匹配。百度分词对于一句话分词之后,还会去掉句子中的没有意义的词语。


上一篇:英格兰队

下一篇:没有了