SegWord中需要讨论的问题(1)

来源:互联网 发布:壳牌网络大学 编辑:程序博客网 时间:2024/05/22 17:10

 

项目SegWord中存在许多问题,简要叙述如下,供以后讨论参考。

首先需要说明的是,三个既定目标是不能在同一个阶段内完成的,否则任务将过于艰巨,不利于项目的开展。对于传统的分词算法,一般有两大步骤,一是分词,二是词性标注,其中的难点在于歧义的发现与处理,未登录词的识别,新词发现以及兼类处理。这些也同样是SegWord所面对的问题,只不过由于其目标略有不同,在SegWord中的处理时机需要仔细考虑。

我们大致确定本项目第一阶段的基本问题如下:

1.         不同编码的转化

主要是GBK码与BIG5Unicode码之间的文本的相互转化。

2.         中文字符串的hash函数

目标是获得:

Hash_value = hash ( Unicode_key )

其中Unicode_keyunicode编码的中文词汇字符串。

设计此函数的目的是,词库的主结构争取以散列表来建立。若该散列表的填充因子能大于70%,则散列词库是可以成功使用的,而以中文词汇串作为key来访问词库的速度也是与词库规模无关的。(将是O1)或者与Okey.length),如果是开散列,则需要另外考虑碰撞期望,我们不在此讨论)

然而有两个学术性质的问题需要讨论:

(1)       通用中文词汇字符串(Unicode编码)是否存在一个散列效果比较好的散列函数?

(2)       领域对中文词汇字符串的散列效果是否存在不可忽视的影响?相关参数能否确定?

除此之外,我们需要讨论这个hash函数如何进行设计?(我们知道,英文字符串有一些散列效果比较好的hash函数,如ELFhash算法。我们可以做一定的参考。)

本来,一个类似于Trie结构的堆结构访问速度也是比较快的,但对于SegWord的第三个目标来讲,词库设计成这种结构却是一个根本性的障碍:一旦词库发生更新,则速度会大大的受影响。所以我们将尝试寻找这种hash函数。

3.         词语的标注体系与词库初始库的建立

此问题的难点更多的在于语言学方面,即采用什么样的标注体系。现有的标注体系中,大部分是落在语法(或句法)平面的,如词性是名词、动词或者形容词等,而典型如北大制定的标注标准,也包含部分语用信息,如习语、人名、地名、机构名等。但是语义信息如何进行标注,还难以有一个合理的标准,虽然这方面可以参考HowNetHNC的工作,但这两者的语义资源都是人工建立、耗费了大量的人力物力的,一方面我们没有做资源的实力,另一方面,人工建立与机器习得在思路上还是有根本性区别的。

但是我们的工作仍需要继续:

(1)       义性的选择,语法(句法)、语义、语用三平面的信息如何进行和谐标注?

(2)       标注符号是否可以进行计算?如何进行计算?(目前可以不讨论跨平面标注符号的计算问题)

(3)       是否有必要标注词语在上级语言单位中的角色?(倾向于不进行标注,问题12才是主要问题)

中国传媒大学的标注体系由北大的发展而来,他们可以同时标注语法信息和语用信息,如一个习语同时也可以标注词性(采用 词汇/标注1/标注2 的方式来进行)。这是上次参加HNC与语言学研讨会所得到的一个信息,对我们有所启发。

在标注体系确定以后,我们可以考虑词库初始库的建立。

4.         通用组合结构

通常来讲,字、词、短语以及句子(甚至篇章)都是文本中的不同的语言单位。对于汉语,人们习惯性认为分词是第一步的工作,要把串进行切词。我们认为,更广泛的来看,分词的实质是“组合”,即有小语言单位实体组合为大语言单位的实体,同时对语言结构的属性进行变换与组合。

比如输入串:

      一个高大的身影

分词需要处理的是:

      一个[+] 高大[+] 身影[+]

而短语处理需要处理的是:

          [一个 [高大 身影]]

它们有共同的、抽象的东西。

    基于这种认识,我们需要设计一种通用组合结构(数据结构),可以适应于任何级别的语言单位的计算。当然,这种数据结构不仅要适应各种语言单位的计算,也需要适应于各种语言知识的表达;这也是我们需要深入讨论的一个问题。

原创粉丝点击