当前位置:文档之家› 句子关键词提取算法设计

句子关键词提取算法设计

句子关键词提取算法设计 李明浩1(厦门大学 计算机科学系,福建 厦门 361005)

摘 要:本文从网络答疑系统的设计与开发的需要出发,讨论了句子关键词提取的总体思路,即“先分解再综合,遵循组句规律,抽取特征,降低难度,提高速度”,并具体提出一个算法,从理论上,该算法能完成一般语句的关键词提取,而且通过引入独立字、固定词的概念,加快了关键词提取的速度。同时也指出了算法存在的不足。 关键词:句子 关键词 提取

1 引言 网络答疑系统的设计与开发是目前的一个研究热点,其中涉及到的关键技术是如何从用户输入的问题中提取主要意思,并且由计算机根据相关度从答案数据库中查询并给出答案。要从用户输入的问题中提取主要意思,即需要解决如何从一句话中提取关键词然后逐级匹配的问题。本文就如何从一句话中提取关键词提出一个不成熟的算法。

2 平台(知识库) 要进行关键词的提取,首先要有完整的语义分析库。万幸的是,董振东先生在《知网》上给出了一个完整的库,包括了词性、词义等等,可供给我们研究人员免费使用。纵观该库,分类科学、分析精到,经我国汉语言研究权威机构认证通过,非常适用。我们将其选作关键词提取的支持库,即知识平台。

3 关键词提取的总体思路 总体思路是“先分解再综合,遵循组句规律,抽取特征,降低难度,提高速度”。 首先,要对句子进行划分,判断该句是简单句还是复合句(具体内涵与汉语研究略有不同,见算法部分),将复合句划分为简单句,然后以简单句为单位进行提取。复合句关键词在此基础上进行连接。这样将极大地简化关键词提取的复杂度。 简单句提取关键词时先进行字词判定,这时应用许多汉语字词组成特点以加快判断速度。这是核心部分。在其中,我引入独立字、固定词概念。所谓独立字,就是指一般情况下不能组词的字。固定词即该词最后一个汉字不可能与其后面的汉字组词的词。这两个概念仅

1 李明浩(1975-),男,福建连城人,讲师,龙岩市成人中专学校教务处主任,厦门大学在职研究生,主要

研究领域为信息安全保障。

1

_________________________________________________________________________www.paper.edu.cn为本算法所用,不作一般研究用。 判定字词后,根据词性结合常见的独立字作用(如“是”作判断谓语、“的”做定语连接部分)提取出主谓宾,即所谓的关键词。

4 关键词提取的算法描述 关键词的提取,最终落实到句子成份的划分,即划分出主谓宾并提取出来。下面是具体算法。 4.1 利用标点符号判断一句话 主要的标点符号有句号、问号、感叹号等,只要出现它们,就表明是一句话。 引号内的部分是不是一句话的判断:若引号前有冒号,则肯定是一句话。若引号前没有冒号,则将其看作是句子的相对独立部分。 省略号是不是一句话的结束的判断:若省略号后面立即回车,则一定是一句话的结束;若后面紧跟汉字,则先将其当作不是一句话的结束,在后面利用标点符号判断一句话中的相对独立部分时再进行判定。 接下来的判断均以此时划定的一句话为单位进行。 4.2 划分简单句和复合句 根据句子中标点符号的个数来判断,一句话不止一个标点符号,则判断为复合句。注意,此处的简单句复合句与汉语上的定义略有不同,仅是为方便算法设计而定。 4.3 简单句关键词的提取 首先是如何将词语划分出来。汉语的所有词汇直接连在一起,而没有空格隔开,且词语的字数不确定,这些都增加了划分词语的难度。针对这情况,我设计算法如下: 4.3.1 常见的独立字和固定词取出 最常见的独立字有“是”、“为”、“不”、“和”、“与”、“或”、“了”、“的”、“地”、“得”、“有”、“中”、“将”等。取词时先判断它前后的汉字是否与它连成一个词。以“是”字为例,一句话为“这是不能否认的”,先判断“这”与“是”不是一个词,再判断“是不”,它可以作为一个词,因为“不”字后面还有汉字,这时又要先判断“不能”是不是一个词,是一个词,则“是不”就不是一个词。又如“是否可以判断呢”这句话中,“是否”可以是一个词,应判断“否可”是不是一个词,在此处显然不是,这时就可以判定“是否”在这句话中是一个词。再如“通信双方是互相信任的”这句话,“是”字与其前其后的汉字都不能组成词,那么很容易判断它是一个独立字,先取出。 最常见的固定词有“我们”、“你们”、“他们”、“那么”、“最终”等,但“介绍”不是,如“向您推介绍兴的黄酒”,此处的“介绍”就不是。当然,根据其出现的概率,可以将“介绍”当作一个准固定词语。然后,按独立字判断的方法进行判断。这将会有效地加速关键词

2

中国科技论文在线_________________________________________________________________________www.paper.edu.cn的提取过程。 4.3.2双字词的判断 汉语里面最常见的是双字词,所以以独立字和固定词为界,分别向前向后以两个字为单位判断它们是不是一个词。若不是,则将第一个字独立出来。若是,再判断独立字第二第三个字是不是一个词。若不是,则可以肯定第一第二个字是一个词;若是,则再判断第二第三个字是不是一个词。依此类推。若结束句子时只剩一个字,则可断定为它是单字词(其实大部分已经由独立字取出)。 4.3.3进行三字词、四字词等多字词的判断 首先要根据三字词的特点,如常见的“性”字作为结尾,将它与其前的两字词连在一起判断是否为一个词,如“可行性”。这里需要先找出作为三个词的结尾的常见字加入一个知识库。四字以上的多字词一般情况下是连续的多个独立字,只要对出现连续的多个独立字进行判断即可。 4.3.4关键词的提取 对于独立字“是”可以取为关键词,其前紧靠的名词与其后紧跟的名词可直接取出作为关键词。不是紧跟的就做下一步判断。 对于独立字“的”、“地”,根据“的”、“地”取出其后紧跟的词,判断是不是对应名词(代词)、动词,若是,则将其取出。这就是关键词。若不是,再将句中所有的名词(代词)、动词取出,按先后顺序连接在一起,句子中至少有一个名词(或代词)和一个动词,那么就取出名词和动词(但不要取代词),可作为关键词。若少于一个名词(代词)和一个动词,那么,将该句舍弃,不再提取关键词。 对于多个“的”,则分别取后面的倒数第二个“的”后与最后一个“的”前的词,看它是不是同一个词。若是,则判断它是否可作形容词使用。若是可以,则最后的“的”字后面的词为关键词。若不可以,则两个“的”后的词都提取作关键词,然后再往前推,分析前面的“的”字。 若没有“的”、“地”,将句中所有的名词(代词)、动词取出,按先后顺序连接在一起,句子中至少有一个名词(或代词)和一个动词,那么就取出名词和动词(但不要取代词),可作为关键词。若少于一个名词(代词)和一个动词,那么,将该句舍弃,不再提取关键词。 4.4 复合句关键词的提取 4.4.1利用标点符号判断一句话中的相对独立部分 除了作为句子的标点符号以外,其它标点符号往往作为相对独立部分的标志。 4.4.2 对每一个相对独立的部分返回执行步骤4.3。 4.4.3 将所有独立部分关键词作为一个小单位用逗号连接起来,就是一串关键词串,它们往往是并列的,可以作为“与”关系用作判断含义。关键词提取结束。

3

中国科技论文在线_________________________________________________________________________www.paper.edu.cn5 本算法存在的不足 本算法有一定的普适性。如对省略句,它不会因为省略部分而产生误取;对倒装句,由于其完全不考虑词语间的逻辑关系,也不会出现漏取。但是,因时间关系,本算法只考虑了一般的句子结构,而且对句子的组成规律研究不够深入,所以对于较复杂的单句可能提取的准确率就要下降了。同时,本算法只考虑提取主谓宾作为关键词,不考虑其它的情况,也不考虑词语间的逻辑关系,也对进一步深入分析句子留下了许多问题。

说明:本文所有内容均系原创,所以没有列出任何参考文献。 Sentence Keywords Extraction Algorithm Designing Li Ming-Hao (Department of Computer Science, Xiamen University, Xiamen 361005, China)

Abstract In this paper, we discuss the thoughts of keywords extraction of a sentence, that is “decomposition and then synthesis, by the rules of sentence organized, extracting feature , decreasing difficult, raising rate”, and then propose a concrete algorithm of it. Keywords: sentence, keyword, extraction

4

中国科技论文在线_________________________________________________________________________www.paper.edu.cn

相关主题