开源啦~~ 傻鸡鸡 分词程序 Beta 0.1版
来源:互联网 发布:淘宝电脑配件能买么 编辑:程序博客网 时间:2024/09/21 06:19
傻鸡鸡 分词程序是用 Python2.6+ 语言开发的,可跑平台有: win 、 Linux 、unix 等。 理论上支持所有的语言作为客户端。
傻鸡鸡分词 下载地址:http://download.csdn.net/source/3517192
傻鸡鸡分词程序有什么特点?
1、兼容多平台: win 、 linux、unix 等平台,实测平台有: win、centos、freebsd 。
2、根据不同的平台自动选择异步I/O并发模型: epoll 、 kqueue 。 ps : win 下使用 select
3、能有效利用多核,因为并发模型是以 多进程 + 异步结合。
4、不限语言。如果你要分词的应用是PHP写的 ? Python 写的? JAVA 写的? 随便你~~
5、..... 想不出来了....
疑问? 并发性能如何?
推荐使用 linux 和 unix 系统。因为”傻鸡鸡“分词程序使用的是 异步I/O并发模型 (linux 的 epoll 和 freebsd 的 kqueue )。而且对于多核服务器,也做了处理。能比较有效的利用多核。
如何使用?
傻鸡鸡 分词程序之有两个文件,1、confi.py 2、shajj.py
confi.py 是 配置文件,里面可配置 默认监听端口号、默认启动进程数(建议与服务器内核数相等)、要加载的字典、日志文件,配置文件可以有多个,配置文件名字可自己命名。
#encoding=utf-8#监听端口listen_port = 9911#进程数default_process = 8#加载字典文件load_dict = ['dict_extra_da.txt'] #如果你有多个字典,可以在上面写多个#日志记录log_file = 'D:\shajj.txt'
shajj.py 是核心文件,分词靠她了。
首先启动分词程序:
命令: python shajj.py 配置文件名
例如:
#python shajj.py conf
运行以后,需要稍等一会,字典正在加载进内存,只在启动需要。当看到
dict load.....
load dict ok!
字典加载完了以后,那么服务端这边就算完成了。那么我们项目就可以使用这个 傻鸡鸡 来进行分词了
给出一个简单的PHP语言使用例子:
<?php$search = '我是傻鸡鸡'; //我们要进行分词的句子$fp = fsockopen("192.168.1.241", 9911); //连接到傻鸡鸡分词,我们配置里监听的是9911端口fwrite($fp,$search);$content = '';while(!feof($fp)){$content .= fread($fp, 1024); }fclose($fp);echo($content); //打印分词结果?>
刷下浏览器就可以看到返回的结果是一份 XML (所以为啥说,理论上所有语言都能使用傻鸡鸡分词 哇哈)
<?xml version="1.0" encoding="utf-8" ?> - <document>- <word> <keyword>我是</keyword> <info>bh</info> </word> </document>
看 节点 word :表示的是得到的分词。 info 节点返回的是:这个词的词性(这个可以在字典里面自定义拉:比如名字、比如动词、再比如商家、本地人物等自定义词性)
刚我们要进行分词的句子不是 “ 我是傻鸡鸡”吗 怎么 “傻鸡鸡” 没有返回呢? 因为 “傻鸡鸡” 这个词不存在于字典当中,现在我们在看下字典。我们把“傻鸡鸡”这个也放到字典里面,让她也成为一个词。这样在进行分词的时候。“傻鸡鸡”就被当成词返回了。
我们看下词典是如何定义的:
我是bh傻鸡鸡fenci瓦萨比waka
中间可以用空格或者tab隔开。好了。傻鸡鸡 放进了词典。那么我再试一次分词,看如何
<?xml version="1.0" encoding="utf-8" ?> - <document>- <word> <keyword>我是</keyword> <info>bh</info> </word>- <word> <keyword>傻鸡鸡</keyword> <info>fenci</info> </word> </document>
好了" 傻鸡鸡“ 也返回了。
和php-cgi 相比较下性能。在并发100下,同时开启6进程。同一台服务器看下啥情况:
nginx + php-cgi 。一共开启了6个php-cgi 进程
开始并发:
webbench -c 100 -t 30 http://192.168.1.241/info.php ps: info.php 里面就 phpinfo() 而已
看下考试结果
接下来看下傻鸡鸡的:
开了6个 进程。 其中有一个是wait 父进程,它不干活的~~~收割子进程而已
看下过程如何:
哎呀怎么CPU负载那么大。。。 其实是因为这个服务器问题。这个是普通双核服务器。我们和上面的php-cgi 比对下~ 嗯嗯~淡定淡定
考试成绩如下:
这个只是一个试验版本,存在的问题还是有的。不建议用在生产环境... 有时间我会不断更新和维护D~~
下一版本要解决的问题:
1、字典的 BOM 导致分词异常问题。
2、字典里可以添加注释
3、对于中文英文数字混杂的情况
4、弄个可用的基础词典
.......
- 开源啦~~ 傻鸡鸡 分词程序 Beta 0.1版
- Voosay中文分词组件V1.0Beta版
- 【小程序】摇骰子游戏BETA版
- 中文分词程序
- 自动分词程序
- 开源分词程序
- 简单的分词程序
- java分词程序
- C#汉字分词程序
- 简单的中文分词程序
- 简单的中文分词程序
- 中文分词程序源代码--DartSplitter
- 一个小程序,分词系统。
- web分词程序和算法
- 斯坦福大学的中文分词程序
- 智能中文分词小程序
- 非常简单的分词程序
- 基于hadoop的分布式分词程序(庖丁分词)
- 自定义时间控件
- 做事要靠自己----->让你变得更坚强
- 分级生成树型结构
- JS省市地区联动(PCAS)
- C#成员访问和抽象类与接口
- 开源啦~~ 傻鸡鸡 分词程序 Beta 0.1版
- vm下linux不能启动Xwindows,怎么办?http://seven.blog.51cto.com/120537/58361
- Joomla论坛组件Kunena1.6.5中文语言包
- CLR Debugger - 在程序抛出异常的时候中断程序的执行
- 【汇编】将十进制数转换为对应的ascii码值
- C#预处理器指令和字符串处理
- PHP和JS中""和''的区别
- A Whirlwind Tutorial on Creating Really Teensy ELF Executables for Linux
- C#文件和目录