composer require lizhichao/word
getWord
长度优先切分 。最快getShortWord
细粒度切分。比最快慢一点点getAutoWord
自动切分 (在相邻词做了递归) 。效果最好json
和二级制格式igb
二进制格式词典小,加载快dict.igb
含有175662个词,欢迎大家补充词语到 dict.txt
,格式(词语 \t idf \t 词性)
Math.log(100000001/结果数量)
,如果你有更好的方法欢迎补充。$fc = new VicWord('igb'); $arr = $fc->getWord('北京大学生喝进口红酒,在北京大学生活区喝进口红酒'); //北京大学|生喝|进口|红酒|,|在|北京大学|生活区|喝|进口|红酒 //$arr 是一个数组 每个单元的结构[词语,词语位置,词性,这个词语是否包含在词典中] 这里只值列出了词语 $arr = $fc->getShortWord('北京大学生喝进口红酒,在北京大学生活区喝进口红酒'); //北京|大学|生喝|进口|红酒|,|在|北京|大学|生活|区喝|进口|红酒 $arr = $fc->getAutoWord('北京大学生喝进口红酒,在北京大学生活区喝进口红酒'); //北京|大学生|喝|进口|红酒|,|在|北京大学|生活区|喝|进口|红酒 //对比 //qq的分词和百度的分词 http://nlp.qq.com/semantic.cgi#page2 http://ai.baidu.com/tech/nlp/lexical
机器阿里云 Intel(R) Xeon(R) Platinum 8163 CPU @ 2.50GHz
getWord
每秒140w字getShortWord
每秒138w字getAutoWord
每秒40w字
测试文本在百度百科拷贝的一段5000字的文本
只有一个方法 VicDict->add(词语,词性 = null)
//定义词典文件路径 define('_VIC_WORD_DICT_PATH_',__DIR__.'/Data/dict.igb'); require __DIR__.'/Lib/VicDict.php'; //目前可支持 igb 和 json 两种词典库格式;igb需要安装igbinary扩展,igb文件小,加载快 $dict = new VicDict('igb'); //添加词语词库 add(词语,词性) 不分语言,可以是utf-8编码的任何字符 $dict->add('中国','n'); //保存词库 $dict->save();
安装 composer require lizhichao/word 复制代码 github:github.com/lizhichao/V… 分词说明 含有3种切分方法 getWord 长度优先切分 。最快 getShortWord 细粒度切分。比最快慢一点点 getAutoWord 自动切分 。效果最好 可自定义词典,自己添加词语到词库,词库支持文本格式json和二级制格式igb 二进制格式词典
word分词是一个Java实现的分布式的中文分词组件,提供了多种基于词典的分词算法,并利用ngram模型来消除歧义。能准确识别英文、数字,以及日期、时间等数量词,能识别人名、地名、组织机构名等未登录词。能通过自定义配置文件来改变组件行为,能自定义用户词库、自动检测词库变化、支持大规模分布式环境,能灵活指定多种分词算法,能使用refine功能灵活控制分词结果,还能使用词频统计、词性标注、同义标注、反
一个高级语言程序在计算机中一般以文件形式存在,文件是一堆字节的集合,而它要表达的含义显然不是一堆字节,最小单位是一个个词,因此编译一个程序,一开始的工作就是词法分析 龙书的词法分析部分,掺杂了很多自动机相关的东西,其实这些在计算理论有更详细的描述,在编译原理里面讲大概是希望能让零基础的人看懂,可惜这样一来内容就比较臃肿,而且好像也讲的不是很系统反而让人看糊涂,就好像算法导论里面讲NP一样,虽然没有
盘古分词是一个基于 .net framework 的中英文分词组件。主要功能 中文未登录词识别 盘古分词可以对一些不在字典中的未登录词自动识别 词频优先 盘古分词可以根据词频来解决分词的歧义问题 多元分词 盘古分词提供多重输出解决分词粒度和分词精度权衡的问题 中文人名识别 输入: “张三说的确实在理” 分词结果:张三/说/的/确实/在理/ 输入 “李三买了一张三角桌子” 分词结果:李三/买/了/一
2. 词法分析 Python程序由解析器读取。输入到解析器中的是由词法分析器生成的词符流。本章讲述词法分析器如何把一个文件拆分成词符。 Python程序的文本使用7比特ASCII字符集。 2.3版中新增:可以使用编码声明指出字符串字面值和注释使用一种不同于ASCII的编码。 为了和旧的版本兼容,如果发现8比特字符,Python只会给出警告。修正这些警告的方法是声明显式的编码,或者对非字符的二进制数
上一篇文章讲到了状态机和词法分析的基本知识,这一节我们来分析Jsoup是如何进行词法分析的。 代码结构 先介绍以下parser包里的主要类: Parser Jsoup parser的入口facade,封装了常用的parse静态方法。可以设置maxErrors,用于收集错误记录,默认是0,即不收集。与之相关的类有ParseError,ParseErrorList。基于这个功能,我写了一个PageEr
Genius Genius是一个开源的python中文分词组件,采用 CRF(Conditional Random Field)条件随机场算法。 Feature 支持python2.x、python3.x以及pypy2.x。 支持简单的pinyin分词 支持用户自定义break 支持用户自定义合并词典 支持词性标注 Source Install 安装git: 1) ubuntu or debian
●词库管理:对于同音字(锦绣大地、锦锈大地)、形近字(杏石口村、杏右口村)、缩写地址(牛栏山第一中学、牛栏山一中)、别名 等经常误写的地址,在系统中将经常出现错误的地址与正确的区域对应起来(也称为关键词绑定),下次再出现,能够直接分 到匹配站点,提高分单准确率。 例如:地址“牛栏山一中”在自动分拣的时候解析错误,我们在地图上找到“牛栏山第一中学”并确认“牛栏山一中”就是“牛栏山 第一中学”,因此,
问题内容: 我正在使用elasticsearch 1.1.2。 我在可搜索字段上使用具有不同权重的多重匹配查询。 例: {“ multi_match”:{“ query”:“这是一个测试”,“ fields”:[“ title ^ 3”,“ description ^ 2”,“ body”]}} 因此,在我的示例中,标题的重要性是正文的三倍。 我想根据找到的匹配项为每个字段自定义权重。 假设我搜索