主要有自动摘录,基于理解的自动文摘,信息抽取和基于结构的自动文摘4种. 其中,自动摘录(Automatic Extraction)将文本视为句子的线性序列,将句子视为词的线性序列.然后通过计算句子的权值,对原文中的所有句子按权值高低降序排列,权值最高的若干句子被确定为文摘句,然后将所有文摘句按照它们在原文中的出现顺序输出. 基于理解的自动文摘方法是以人工智能,特别是自然语言理解技术为基础而发展起来的文摘方法.这种方法与自动摘录的明显区别在于对知识的利用,它不仅利用语言学知识获取语言结构,更重要的是利用领域知识进行判断,推理,得到文摘的意义表示,最后从意义表示中生成摘要. 基于理解的文摘方法需要对文章进行全面的分析,生成详尽的语义表达,这对于大规模真实文本而言是很难实现的.与之相比,信息抽取(Information Extraction)只对有用的文本片段进行有限深度的分析,其效率和灵活性显著提高. 篇章是一个有机的结构体,篇章中的不同部分承担着不同的功能,各部分之间存在着错综复杂的关系.篇章结构分析清楚了,文章的核心部分自然能够找到.但是语言学对于篇章结构的研究还很不够,可用的形式规则就更少了,这使得基于结构的自动文摘到目前为止还没有一套成熟的方法,不同学者用来识别篇章结构的手段也有很大差别. 基于以上的介绍,我们决定使用自动摘录的文摘方法,因为其实现简单,效率较高,适用于"网际新闻快车"系统待文摘文章数目巨大,准确率要求不苛刻的应用环境. 系统流程 Hawk单文档自动文摘系统的系统流程如图1所示,包括预处理,加权,排序,文摘选取,句子重排以及后处理输出等. 图1. Hawk单文档自动文摘系统的系统流程图 预处理 预处理的主要是进行分词以及划分章节,段落句子等原文本处理工作.将输入的原文本按照其所属章节,段落和句子等信息进行标记. 其中在分词阶段,进行未登陆词的识别对于文摘的抽取,特别是关键词的标引有非常重要的作用.在此,我们主要采取识别散串的方法进行未登陆词的识别. 散串的定义为文本经过分词之后,在文本中连续出现的若干个单字或单字词构成散串,散串中不应包含"的"等高频单字虚词. 高频未登录词识别算法: 1. 将文本中的全部散串收集到一起 划分章节,段落,句子,分词等预处理 段落加权 词汇加权 句子加权 句子根据权重降序排列 根据用户需求选出权重最高的若干句子 候选句根据在原文中的出现顺序排序 润色输出 删除序数词 回避指代问题 2. 将每个散串分裂为其全部二字以上子串的集合,例如:"孙志刚"-〉"孙志","志刚","孙志刚" 3. 对全部散串的子串进行排序 4. 统计每个子串出现的频度,例如:"孙志":2次;"志刚":4次;"孙志刚":2次 5. 对每个子串进行加权计算,加权公式:Lc,L是子串的汉字个数,C是子串的频度,如上例:"孙志"的权重:4;"志刚":16;"孙志刚":9 6. 根据权重对子串降序排列 7. 高于某个阈值的子串进入临时词典 分词结果是词序列,例如:"孙志刚被杀害""孙志刚 被 杀害". 加权方法 我们主要考虑了三个部分的加权方法,分别为段落加权,词汇加权和句子加权: 段落加权的方法是: 1, 处于篇首或篇末的段落权重高 2, 包含关键词种类多的段落权重高 如果仅包含一个关键词,但该关键词在该段落中出现很多次,说明这个段落只是针对文章中的每一个分论点进行阐述,价值不大.重要的段落一定要包括多个不同的关键词,在阐述它们之间的关系. 3, 字数少的段落权重高 词汇加权的方法是: 1, 在标题里出现的词权重高 2, 在文章中多次出现的词权重高 3, 在其它文章中很少出现的词权重高 4, 跨越了多个段落的词权重高 可能一个词在一个段落里出现了很多次,但在其它段落里几乎不出现,说明这个词和该段落的相关性非常大,但是不能概括全文的中心思想 句子加权的方法是: 1, 所在段落权重高的句子其权重也高 2, 出现在段落首句或末句位置的句子权重高 3, 包含很多高权重关键词的句子权重高 4, 出现线索词,例如"总而言之","综上所述"等词汇的句子权重高 文章各部分信息加权流程如图2所示. 图2. 文章各部分信息加权流程图 其中使用的数据结构分别如表1,2和3所示 表1. 段落信息表 ID 在篇章中的位置 段落总字数 线索词 段落权重 1 2 …… 段落加权 段落信息表 词汇加权 词汇信息表 句子加权 句子信息表 表2. 句子信息表 ID 段落号 句子号 在段落中的 位置 是否为标题 词信息向量 存储为词的ID的向量 词权重之和 是否含有线索词 句子权重 1 2 …… 表3. 词信息表 ID 词 词频 tf*idf 或相对词频 是否在标题中出现 跨越 段落数 词权重 1 2 …… 通过加权步骤,我们可以获得每个词汇的权重信息和句子的权重信息,通过这些权重信息,就可以得到关键词(权重较大的词汇)以及关键句(权重较大的句子). 因此排序,文摘选取,句子重排等步骤只是一个简单的排序工作,这里就不详细赘述了. 后处理 后处理步骤的主要工作是进行指代词的消解和句首关系连词的删除,以使得文摘的结果更通顺流畅. 所谓指示代词包括人称代词(你我他),一般代词(前者,后者)等等.我们采用的方法是如果一个被抽取的文摘句中前面n个词中含有这些代词,则将改句的前一个句子也作为文摘句,依此类推.通常,n取7. 句首关系连词包括"换言之","因此"等等连词,如果其出现在文摘句句首,则显得非常突兀,句子表达也不连贯,需要删除之. 经过以上后处理步骤,基本达到了文摘润色的目的. 系统演示 为了便于调试和演示,我们开发了Hawk单文档自动文摘系统的演示界面,如图3所示. 图3. Hawk单文档自动文摘系统的演示界面 首先我们选择一个待处理的文件夹,如图4所示 图4. 选择一个待处理的文件夹 然后选择该文件夹下的一篇文章,如图5所示. 此时,用户可以设定自动标引的关键词个数 图5. 选择该文件夹下的一篇文章 以及文摘的长度,文摘长度可以有3种选择方式,分别为根据百分比提取文摘,设定文摘结果的词数和自动配置,所谓自动配置即是系统根据文章的长度,自动给出一个比较合适的文摘长度.如图6所示. 图6. 选择设置文摘长度 单击执行按钮,系统一次性给出标引的关键词以及文摘的结果.并且在原文中标识出文摘在原文中的出处和该句的权重.如图7所示. 图7. 文摘结果