SCWS词库的处理

安装的程序里有个基于SCWS的xdb词库文件,要修改这个不能直接用编辑器,只能通过官方提供的php工具来处理。

XDB文件是专为 SCWS 优化而开发的一个高效简易存储结构,不能直接编辑和查看。通过官方提供的工具,可以直接将 xdb 文件导出成可视的纯文本文件,以及由这样的文本文件导入生成 xdb 文件。

文本文件的说明,每行一条记录,#开头表示注释,每条记录由
word、TF、IDF、Attr组成,其中TF是词频系数,IDF是逆词频率系数
而Attr是北大标注法的词性,这四个字段之间用\t隔开。

如:

# WORD    TF    IDF    ATTR
老猫     11.82     IDF    n

 

使用工具导出时必须使用命令行的方式,在ubuntu里直接在shell下执行,在windows里,必须将php的路径加入环境变量中。

1. 词典导出:dump_xdb_file.php 在命令行模式下运行
php dump_xdb_file.php <要导出的.xdb文件> [存入的文本文件]

第二参数省略则直接输出到标准输出。

2. 词典生成:make_xdb_file.php 同样是在命令行模式下运行(需要安装 mbstring 扩展)
默认是处理 gbk 编码的文本,如果你的文本是 utf8,则需要修改该程序的第一行,把
define(‘IS_UTF8_TXT’, false); 改为 true

php make_xdb_file.php <要生成的.xdb> [导入的文本文件]

下载地址:http://www.ftphp.com/scws/down/pscws4-20081221.tar.bz2

如果只是临时用,或固定文件,可以直接修改代码,就不用在cmd执行了。

 

这里很重要:官方下载的那个xdb.class.php文件有错误,生成的xdb有问题。

需要在这个类里加上一句:error_reporting(E_ALL & ~ E_NOTICE);

 

——————-

附录:1. 在线的SCWS分词api   http://www.ftphp.com/scws/api.php

附录:2. TF与IDF计算在:http://www.ftphp.com/scws/demo/get_tfidf.php

附录:3. ATTR词树属性列表:

Ag
形语素
形容词性语素。形容词代码为a,语素代码g前面置以A。 

a
形容词
取英语形容词adjective的第1个字母。 

ad
副形词
直接作状语的形容词。形容词代码a和副词代码d并在一起。 

an
名形词
具有名词功能的形容词。形容词代码a和名词代码n并在一起。 

b
区别词
取汉字“别”的声母。 

c
连词
取英语连词conjunction的第1个字母。 

Dg
副语素
副词性语素。副词代码为d,语素代码g前面置以D。 

d
副词
取adverb的第2个字母,因其第1个字母已用于形容词。 

e
叹词
取英语叹词exclamation的第1个字母。 

f
方位词
取汉字“方” 

g
语素
绝大多数语素都能作为合成词的“词根”,取汉字“根”的声母。 

h
前接成分
取英语head的第1个字母。 

i
成语
取英语成语idiom的第1个字母。 

j
简称略语
取汉字“简”的声母。 

k
后接成分 

l
习用语
习用语尚未成为成语,有点“临时性”,取“临”的声母。 

m
数词
取英语numeral的第3个字母,n,u已有他用。 

Ng
名语素
名词性语素。名词代码为n,语素代码g前面置以N。 

n
名词
取英语名词noun的第1个字母。 

nr
人名
名词代码n和“人(ren)”的声母并在一起。 

ns
地名
名词代码n和处所词代码s并在一起。 

nt
机构团体
“团”的声母为t,名词代码n和t并在一起。 

nz
其他专名
“专”的声母的第1个字母为z,名词代码n和z并在一起。 

o
拟声词
取英语拟声词onomatopoeia的第1个字母。 

ba 介词 把、将  
bei 介词 被  
p
介词
取英语介词prepositional的第1个字母。 

q
量词
取英语quantity的第1个字母。 

r
代词
取英语代词pronoun的第2个字母,因p已用于介词。 

s
处所词
取英语space的第1个字母。 

Tg
时语素
时间词性语素。时间词代码为t,在语素的代码g前面置以T。 

t
时间词
取英语time的第1个字母。 

dec 助词 的、之  
deg 助词 得  
di 助词 地  
etc 助词 等、等等  
as 助词 了、着、过  
msp 助词 所  
u
其他助词
取英语助词auxiliary 

Vg
动语素
动词性语素。动词代码为v。在语素的代码g前面置以V。 

v
动词
取英语动词verb的第一个字母。 

vd
副动词
直接作状语的动词。动词和副词的代码并在一起。 

vn
名动词
指具有名词功能的动词。动词和名词的代码并在一起。 

w
其他标点符号 

x
非语素字
非语素字只是一个符号,字母x通常用于代表未知数、符号。 

y
语气词
取汉字“语”的声母。 

z
状态词
取汉字“状”的声母的前一个字母。

 



无觅相关文章插件,快速提升流量

标签:,

实在不堪垃圾评论的骚扰,还是禁止了吧,有事微博联系吧。