句子关键词提取算法设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
句子关键词提取算法设计
李明浩1
(厦门大学 计算机科学系,福建 厦门 361005)
摘要:本文从网络答疑系统的设计与开发的需要出发,讨论了句子关键词提取的总体思路,即“先分解再综合,遵循组句规律,抽取特征,降低难度,提高速度”,并具体提出一个算法,从理论上,该算法能完成一般语句的关键词提取,而且通过引入独立字、固定词的概念,加快了关键词提取的速度。同时也指出了算法存在的不足。
关键词:句子关键词提取
1 引言
网络答疑系统的设计与开发是目前的一个研究热点,其中涉及到的关键技术是如何从用户输入的问题中提取主要意思,并且由计算机根据相关度从答案数据库中查询并给出答案。要从用户输入的问题中提取主要意思,即需要解决如何从一句话中提取关键词然后逐级匹配的问题。本文就如何从一句话中提取关键词提出一个不成熟的算法。
2 平台(知识库)
要进行关键词的提取,首先要有完整的语义分析库。万幸的是,董振东先生在《知网》上给出了一个完整的库,包括了词性、词义等等,可供给我们研究人员免费使用。纵观该库,分类科学、分析精到,经我国汉语言研究权威机构认证通过,非常适用。我们将其选作关键词提取的支持库,即知识平台。
3 关键词提取的总体思路
总体思路是“先分解再综合,遵循组句规律,抽取特征,降低难度,提高速度”。
首先,要对句子进行划分,判断该句是简单句还是复合句(具体内涵与汉语研究略有不同,见算法部分),将复合句划分为简单句,然后以简单句为单位进行提取。复合句关键词在此基础上进行连接。这样将极大地简化关键词提取的复杂度。
简单句提取关键词时先进行字词判定,这时应用许多汉语字词组成特点以加快判断速度。这是核心部分。在其中,我引入独立字、固定词概念。所谓独立字,就是指一般情况下不能组词的字。固定词即该词最后一个汉字不可能与其后面的汉字组词的词。这两个概念仅
1李明浩(1975-),男,福建连城人,讲师,龙岩市成人中专学校教务处主任,厦门大学在职研究生,主要研究领域为信息安全保障。
为本算法所用,不作一般研究用。
判定字词后,根据词性结合常见的独立字作用(如“是”作判断谓语、“的”做定语连接部分)提取出主谓宾,即所谓的关键词。
4 关键词提取的算法描述
关键词的提取,最终落实到句子成份的划分,即划分出主谓宾并提取出来。下面是具体算法。
4.1 利用标点符号判断一句话
主要的标点符号有句号、问号、感叹号等,只要出现它们,就表明是一句话。
引号内的部分是不是一句话的判断:若引号前有冒号,则肯定是一句话。若引号前没有冒号,则将其看作是句子的相对独立部分。
省略号是不是一句话的结束的判断:若省略号后面立即回车,则一定是一句话的结束;若后面紧跟汉字,则先将其当作不是一句话的结束,在后面利用标点符号判断一句话中的相对独立部分时再进行判定。
接下来的判断均以此时划定的一句话为单位进行。
4.2 划分简单句和复合句
根据句子中标点符号的个数来判断,一句话不止一个标点符号,则判断为复合句。注意,此处的简单句复合句与汉语上的定义略有不同,仅是为方便算法设计而定。
4.3 简单句关键词的提取
首先是如何将词语划分出来。汉语的所有词汇直接连在一起,而没有空格隔开,且词语的字数不确定,这些都增加了划分词语的难度。针对这情况,我设计算法如下:
4.3.1 常见的独立字和固定词取出
最常见的独立字有“是”、“为”、“不”、“和”、“与”、“或”、“了”、“的”、“地”、“得”、“有”、“中”、“将”等。取词时先判断它前后的汉字是否与它连成一个词。以“是”字为例,一句话为“这是不能否认的”,先判断“这”与“是”不是一个词,再判断“是不”,它可以作为一个词,因为“不”字后面还有汉字,这时又要先判断“不能”是不是一个词,是一个词,则“是不”就不是一个词。又如“是否可以判断呢”这句话中,“是否”可以是一个词,应判断“否可”是不是一个词,在此处显然不是,这时就可以判定“是否”在这句话中是一个词。再如“通信双方是互相信任的”这句话,“是”字与其前其后的汉字都不能组成词,那么很容易判断它是一个独立字,先取出。
最常见的固定词有“我们”、“你们”、“他们”、“那么”、“最终”等,但“介绍”不是,如“向您推介绍兴的黄酒”,此处的“介绍”就不是。当然,根据其出现的概率,可以将“介绍”当作一个准固定词语。然后,按独立字判断的方法进行判断。这将会有效地加速关键词
的提取过程。
4.3.2双字词的判断
汉语里面最常见的是双字词,所以以独立字和固定词为界,分别向前向后以两个字为单位判断它们是不是一个词。若不是,则将第一个字独立出来。若是,再判断独立字第二第三个字是不是一个词。若不是,则可以肯定第一第二个字是一个词;若是,则再判断第二第三个字是不是一个词。依此类推。若结束句子时只剩一个字,则可断定为它是单字词(其实大部分已经由独立字取出)。
4.3.3进行三字词、四字词等多字词的判断
首先要根据三字词的特点,如常见的“性”字作为结尾,将它与其前的两字词连在一起判断是否为一个词,如“可行性”。这里需要先找出作为三个词的结尾的常见字加入一个知识库。四字以上的多字词一般情况下是连续的多个独立字,只要对出现连续的多个独立字进行判断即可。
4.3.4关键词的提取
对于独立字“是”可以取为关键词,其前紧靠的名词与其后紧跟的名词可直接取出作为关键词。不是紧跟的就做下一步判断。
对于独立字“的”、“地”,根据“的”、“地”取出其后紧跟的词,判断是不是对应名词(代词)、动词,若是,则将其取出。这就是关键词。若不是,再将句中所有的名词(代词)、动词取出,按先后顺序连接在一起,句子中至少有一个名词(或代词)和一个动词,那么就取出名词和动词(但不要取代词),可作为关键词。若少于一个名词(代词)和一个动词,那么,将该句舍弃,不再提取关键词。
对于多个“的”,则分别取后面的倒数第二个“的”后与最后一个“的”前的词,看它是不是同一个词。若是,则判断它是否可作形容词使用。若是可以,则最后的“的”字后面的词为关键词。若不可以,则两个“的”后的词都提取作关键词,然后再往前推,分析前面的“的”字。
若没有“的”、“地”,将句中所有的名词(代词)、动词取出,按先后顺序连接在一起,句子中至少有一个名词(或代词)和一个动词,那么就取出名词和动词(但不要取代词),可作为关键词。若少于一个名词(代词)和一个动词,那么,将该句舍弃,不再提取关键词。
4.4 复合句关键词的提取
4.4.1利用标点符号判断一句话中的相对独立部分
除了作为句子的标点符号以外,其它标点符号往往作为相对独立部分的标志。
4.4.2 对每一个相对独立的部分返回执行步骤4.3。
4.4.3 将所有独立部分关键词作为一个小单位用逗号连接起来,就是一串关键词串,它们往往是并列的,可以作为“与”关系用作判断含义。关键词提取结束。