发表回复 
 
主题评价:
  • 0 次(票) - 平均星级: 0
  • 1
  • 2
  • 3
  • 4
  • 5
C版简易中文分词-cscwsd-0.0.3 发布
2007-06-06, 10:47 AM
帖数: #1
C版简易中文分词-cscwsd-0.0.3 发布
简要说明

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

这个小程序的基本工作方式如下:运行后在本地绑定一个端口(缺省是 4700)监听处理分词服务,无其它功能。针对输入的文字进行分词后然后原样输出,注意每次输入均以 "\n" 作为处理标记,即一行处理一次并返回。这样作的目的在于提高分词的效率和通用性,由专门的一支程序来处理,别的程序只需通过 socket 与其对话即可,客户端用什么语言都方便的实现,发布包中附带了一系列 misc/CWS_*.php,均是采用 PHP 编写的访问例子。切词速度比原 PHP直接分词要提高数十倍以上。

词典采用的是 .txt 格式,解决了编辑困扰问题。格式非常简单,一行一条目,词与频率之间用(TAB制表符或空格)分开,具体的程序运行说明,请参看发布包中的 README

下载及演示

安装下载地址:http://www.hightman.cn/down/cscwsd-0.0.3.tgz (2MB 含文本词典)
在线演示地址:http://www.hightman.cn/demo/scws/by_server.php (若服务没启动不可用)

安装说明

1. 快速安装 (Linux/BSD ...)
./configure
make
make install

2. 使用
cscwsd -h
建议使用
cscwsd -D -L /tmp/cscwsd.log -d /usr/local/etc/dict.txt

3. 简单测试分词
telnet localhost 4700

然后直接输入文字即可,每敲入一个回车,服务器立刻返回当前句的切分结果.

几条控制命令,在切分前设定(可不设)
/set autodis=[on|off|yes|no]
/set ignore_mark=[on|off|yes|no]
/set delim=_
统计词语出现频率??
/set stat=on (开始统计)
/set attr=名词,动名词,...(只统计这些?)
中间收到的分词语句均不直接输出而等到最后一句再输出结果, 排好顺序??
格式:词语\t次数\r\n
/set stat=off (停止统计)

4. 编译选项
--enable-mio=[select|poll] 缺省是 poll
--enable-mio-debug 打开 mio 的 debug 信息
--enalbe-debug 打开主体程序的 debug 信息
查找这个用户的全部帖子
引用并回复
2007-06-06, 10:52 AM
帖数: #2
关于 misc/ 目录下的文件
CWS_cli.php - 命令行分词, 读取标准输入
CWS_query.class.php - PHP 访问 cscwsd 的类库
CWS_file.php - 针对文件分词
CWS_test.web.php - 网页测试

代码:
cscwsd-0.0.x (PHP版查询交互程序示例版)
  由于服务器互无法显性判断数据读取的始终, 故目前 socket 设为无阻塞模式
  
  尝试读取一定次数后仍没数据就假设已经读完, 在 close() 前调用 recv() 会比较浪费资源.
  这一点请注意, 务必一个 send() 对应一次 recv()

  PHP 版本要求 >= 4.3.0

  类用法:

  建立操作句柄: server,port 开启  
  $cws = new CSCWS('localhost', 4700);
  $cws->open('localhost', 4700);        // 若已打开且port/host不对就先关闭旧的  
  $cws = CSCWS::open('localhost', 4700);

  查询分词(自动侦测连接?):
  $cws->send("我是中国人");

  获取结果
  echo $cws->recv();

  设定参数: key=>value
  binary        => (on)
  autodis       => (on|off)
  ignore_mark => (yes|no)
  delim => '_|/'...

  $cws->set("autodis", "yes")

  关闭
  $cws->close();

  变量: rbuf (close之后续读的数据)

  对于大量的输入输出, 处理上可能会有问题, 请务必再 ->close() 之后调用 $cws->rbuf 来查看
查找这个用户的全部帖子
引用并回复
2007-06-07, 11:38 AM
帖数: #3
 
期待C版简易中文分词-cscwsd-0.0.4发布
查找这个用户的全部帖子
引用并回复
2008-05-14, 12:59 PM
帖数: #4
 
楼主~~下载以后提示文件已经损坏~~:)
查找这个用户的全部帖子
引用并回复
发表回复 


可能相关的主题...
主题: 作者 回复数: 人气: 最近发表
心情 中文分组粗分方法 baobao 4 1,266 2010-05-29 01:26 AM
最近发表: baobao
  mysql 其实支持中文全文检索的 xiaolan 5 2,093 2010-05-17 09:28 AM
最近发表: xiaolan
  繁體中文分詞 markwu 1 10,714 2008-04-26 08:48 AM
最近发表: hightman
  哪位能介绍下 cscwsd 要怎么使用吗 redsky 0 7,512 2007-10-31 02:56 PM
最近发表: redsky
  PHP4版 简易中文分词(PSCWS) 第2/3版 hightman 3 17,641 2007-07-11 03:20 PM
最近发表: dlcs286
  关于 SCWS 简易中文分词系统 hightman 0 11,727 2007-06-05 12:09 AM
最近发表: hightman

论坛跳转: