免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: hightman

[下载] php版简易中文分词代码及词典(新加cscwsd) [复制链接]

论坛徽章:
0
发表于 2005-12-26 20:36 |显示全部楼层

请教

我学着用php+mysql 处理古汉语,所以全是繁体字,有的还用到了方正超大字符集里的字。在phpmyadmin下选“utf8_unicode_ci”才能正确输入和显示繁体字,但是我用php编检索,繁体字全成了?。请问怎么解决?

论坛徽章:
0
发表于 2005-12-26 20:49 |显示全部楼层

请教

我才学着用php+mysql做古汉语,由于全是繁体字,还用到了方正超大字符集,在phpmyadmin里可以显示,但是我自己编的php里却是?请问怎么处理?

论坛徽章:
0
发表于 2005-12-26 22:52 |显示全部楼层
原帖由 hightman 于 2005-11-21 21:04 发表
A.T.T
仅供有兴趣之人士参考与交流.
下载词典为 cdb 数据档.

完整测试例子:
http://php.twomice.net/~hightman/cword/  (换了新测试地址, 家里机器硬盘有问题了)

快速下载地址:
[url=http: ...



LZ 的帖子,肉顶!

论坛徽章:
0
发表于 2005-12-27 00:49 |显示全部楼层
原帖由 gydoesit 于 2005-12-26 16:08 发表
楼主,如何增加分词,甚至让程序自己识别增加分词???


写个后台程序,统计一下一些词出现的概率

随着时代的发展,一些特定的名词会不断变更,比如 “超女”,文章中出现的概率会越来越大的

论坛徽章:
0
发表于 2005-12-27 16:44 |显示全部楼层
一般,  eg  人不人鬼不鬼       人 不 人鬼 不 鬼

论坛徽章:
0
发表于 2006-02-07 21:39 |显示全部楼层
楼主的程序给了我很大的启发,我已经改成Delphi版本。
但是cdb的数据库是否有工具可以进行添加?(要不你的数据库是如何转来的呢?)我看了cdb的定义页,写的太少,在PHP的源码里也是定义为只读的(因Delphi不支持此类数据库,所以不得以读之并采用了其中的算法)。

虽然可以用其它的数据库,但是这个问题不解决真的不快啊,请教了。

另,

马老弟(应该比你大吧)的代码简明洗练,值得称道。
leakey 该用户已被删除
发表于 2006-02-08 13:33 |显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
发表于 2006-02-11 14:35 |显示全部楼层
win下Apche2 +php512 出现数据库openfail的错误

论坛徽章:
0
发表于 2006-05-28 13:06 |显示全部楼层

回复 1楼 hightman 的帖子

再顶一下, 楼贴已更新, 增加 cscwsd 0.0.1

详情在 C 版, 这里作部分拷复
http://bbs.chinaunix.net/viewthr ... &extra=page%3D1
  http://scws.tguanlim.com/_csource/  是用doxygen生成的源码查看页

cscwsd 是英文全称 C-Simpled Chinese Word Segment Daemon 的首字缩写, 这是用标准纯 C 编写, 并配合使用 autoconf GNU软件工具包, 基本上可以很方便在的各类 Unix-Like OS 系统下顺利编译执行. 目前测试过的有 RedHat Linux (as3,as4)  FreeBSD 4.10, 5.4 ..目前只支持  GBK 编码

BTW: 用 autoconf 开发包编译出来的可执行文件约为 60~80K 视操作系统而定, 比较大, 我在 Linux 底下自己编制了一个小的 makefile 在 src/makefile.test  util/makefile.test , 编译结果是 20KB 左右, 有兴趣的可以试试
(无需 configure, 进入 util/ 目录 make -f makefile.test; 进行 src 目录 make -f makefiel.test ,然后使用 src/cscwsd 即可)

这个小程序的基本工作方式如下, 运行后在本地绑定一个端口 (缺省是 4700) 监听处理分词服务, 基本上无别的功能, 只针对输入的文字原样进行分词后然后原样输出, 注意每次输入均以 "\n" 作为处理标记, 即一行处理一次并返回.

这样作的目的在于提高分词的效率, 由专门的一支程序来处理, 别的程序只需通过 socket 与其对话即可, 客户端用什么语言都方便的实现,发布包中附带了一个 misc/CWS_test.web.php , 可以在 web 上测试分词..  速度比原 PHP直接分词要提高数十倍

而词典采用的是 .txt 格式, 解决了编辑困扰问题, 格式非常简单, 一行一条目, 词与频率之间用(TAB制表符或空格)分开

具体的程序运行说明, 请参看发布包中的 README

下载地址:  http://scws.tguanlim.com/cscwsd-0.0.1.tar.gz   在线测试: http://scws.tguanlim.com/by_server.php

安装方法:

tar xvzf cscwsd-0.0.1.tar.gz
cd cscwsd-0.0.1
./configure --prefix=/usr/local
make
make install

这样缺省就会把 cscwsd 安装到 /usr/local/sbin/ 中, 而词典 dict.txt 会安装到 /usr/local/etc 中, 请运行:

cscwsd -h  查看帮助说明

快速测试

./cscwsd -D -L /tmp/test.log

服务程序会切入后台服务, 所有的日志记录在 test.log 中, 你可以在本机 telnet localhost 4700

输入一句话试试分词效果, 类似的如下:

[hightman@sata cscwsd]$ telnet localhost 4700
Trying 127.0.0.1...
Connected to sata.sunbo.com (127.0.0.1).
Escape character is '^]'.
我是中国人
我是 中国人
/bye

论坛徽章:
0
发表于 2006-05-28 17:38 |显示全部楼层
太酷了,这个得下下来,学习一下。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP