资讯专栏INFORMATION COLUMN

VicWord 一个纯php的分词

yangrd / 810人阅读

摘要:安装分词说明含有种切分方法长度优先切分。效果最好可自定义词典,自己添加词语到词库,词库支持文本格式和二级制格式二进制格式词典小,加载快含有个词,欢迎大家补充词语到,格式词语词性获取方法百度搜索这个词语结果数量,如果你有更好的方法欢迎补充。

安装
composer require lizhichao/word

github: https://github.com/lizhichao/...

分词说明

含有3种切分方法

getWord 长度优先切分 。最快

getShortWord 细粒度切分。比最快慢一点点

getAutoWord 自动切分 。效果最好

可自定义词典,自己添加词语到词库,词库支持文本格式json和二级制格式igb

二进制格式词典小,加载快

dict.igb含有175662个词,欢迎大家补充词语到 dict.txt ,格式(词语 t idf t 词性)

idf 获取方法 百度搜索这个词语 Math.log(100000001/结果数量),如果你有更好的方法欢迎补充。

词性 [标点符号,名词,动词,形容词,区别词,代词,数词,量词,副词,介词,连词,助词,语气词,拟声词,叹词] 取index ;标点符号取0

三种分词结果对比

$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字的文本

制作词库

词库支持utf-8的任意字符

词典大小不影响 分词速度

只有一个方法 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();
demo

demo

该作者的其他软件

一个极简的高性能框架,可在php-fpm或者swoole异步协程环境运行

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/31306.html

相关文章

  • 字符串与JavaScript之间魔术—前端模板原理及简单实现

    摘要:大多数模板实现原理基本一致模板字符串首先通过各种手段剥离出普通字符串和模板语法字符串生成抽象语法树然后针对模板语法片段进行编译,期间模板变量均去引擎输入的变量中查找模板语法片段生成出普通片段,与原始普通字符串进行拼接输出。 前端模板的发展 模板可以说是前端开发最常接触的工具之一。将页面固定不变的内容抽出成模板,服务端返回的动态数据装填到模板中预留的坑位,最后组装成完整的页面html字符...

    Steve_Wang_ 评论0 收藏0
  • PHP使用elasticsearch搜索安装及分词方法

    摘要:一背景为什么会用到这个搜索是因为我在看乌云的漏洞案例库时候,搜索即为不方便。在搜索当中分词插件是中文分词最好用的一个,安装也极为方便。那我们选择用作为分词器后,它是可以把中华人民共和国作为一个词,把中华作为一个词。 一、背景 为什么会用到这个ES搜索?是因为我在看乌云的漏洞案例库时候,搜索即为不方便。 比如说说我要搜索一个 SQL注入 那mysql匹配的时候是like模糊匹配,搜索必须...

    zzzmh 评论0 收藏0
  • 使用cjieba(结巴分词库)实现php扩展中文分词-支持php5, php7

    摘要:作者地址编译安装配置指向库目录使用小明硕士毕业于中国科学院计算所,后在日本京都大学深造小明硕士毕业于中国科学院计算所,后在日本京都大学深造效果小明硕士毕业于中国科学学院科学院中国科学院计算计算所,后在日本京都大学日本京都大学深造计算所 作者git地址:https://github.com/jonnywang/... 编译安装 git clone https://github.com/j...

    fevin 评论0 收藏0
  • 使用cjieba(结巴分词库)实现php扩展中文分词

    摘要:编译安装配置指向库目录使用小明硕士毕业于中国科学院计算所,后在日本京都大学深造小明硕士毕业于中国科学院计算所,后在日本京都大学深造效果小明硕士毕业于中国科学学院科学院中国科学院计算计算所,后在日本京都大学日本京都大学深造计算所小明京都 编译安装 git clone https://github.com/jonnywang/jz.git cd jz/cjieba make cd .. p...

    ethernet 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<