文本过滤(智能信息处理重点实验室)

原文出处: http://www.iipl.fudan.edu.cn/research/tf.html

文本过滤

文本过滤指的是从大量的文本数据流中寻找满足特定用户需求的文本的过程。预先给定一个用户需求和一个输入文本流,文本过滤系统必须首先根据用户需求建立一个初始的用户模板(称为Profile),然后判断流中的每一文本是否符合用户需求,并将符合用户需求的文本提交给用户,由用户对文本作是否需要的评判,再根据评判结果自适应地修改用户模板,以更好地符合用户的需求。


文本过滤和文本检索及文本分类有很大的相似之处。判断文本是否符合用户需求是一个两类(是/否)的分类问题;而它和给定检索需求,从文本库中搜索相关文本的检索过程也是非常相似的;所不同的是文本检索有相对固定的文本库和千变万化的检索需求,而文本过滤则有着相对固定的用户需求和动态变化的文本流。可以说,文本过滤和文本检索是同一硬币的正反两面。


文本过滤对大规模文本信息处理具有很重要的意义。从信息处理的角度上看,文本过滤有如下几个应用领域:

①提供选择性信息服务的企事业单位可以根据用户的信息需求过滤新闻信息,并且把用户可能感兴趣的内容发送给用户。这类似于图书馆和科技情报机构等提供的定题服务。


②在档案管理领域,文本过滤系统可自动地确定档案所属的类别。


③对终端用户而言,可以用具有文本过滤功能的代理程序来接受原始文本流(如Email和Newsgroup),并从中选择用户可能感兴趣的内容。


虽然文本过滤和文本检索几乎是一样重要,但比起文本检索,文本过滤开展得较晚,研究得也相对较少。究其原因,是因为文本过滤要求有一个大规模的、真实而又权威的语料库,并且需要有完备客观的人工评价结果,以进行反馈和自适应,同时可对不同的过滤方法进行比较。而由于缺乏必要的人力、物力,上述环境在实验室是非常难以模拟的。


九十年代以来,情况有了很大的改善,著名的文本检索会议(Text Retrieval Conference,简称TREC)和主题检测和跟踪会议(Topic Detection and Tracking,简称TDT)都把文本过滤作为很重要的研究内容。这就在很大程度上促进了文本过滤的发展。下面将重点介绍文本检索会议及其在文本过滤方面所做的工作。


文本检索会议是由美国国家技术标准局(National Institute of Standard and Technology)组织召开的一年一度的国际会议,从1992年至今已经召开了11届。旨在促进大规模文本检索领域的研究,加速研究成果向商业应用的转化,促进学术研究机构、商业团体和政府部门之间的交流和协作。参加单位包括著名的Cornell大学、CMU大学、加州大学伯克利分校、Microsoft公司、IBM公司和公司等。另外,还有不少美国以外的文本检索领域的研究团体也提交了他们的研究成果,它们基本代表了当今世界文本检索领域的最高水平。


TREC提供了一个标准文档库,而且还提出了一套较为科学的测试评价方法,为各种方法和系统提供了一个公平竞争的舞台,使TREC成为文本检索领域最权威的国际会议。文档库包括5张光盘,总计文本作为训练文档集和测试文档集。所用文档有的来自财经报道,如华尔街日报,也有的来自新闻报道,如美联社新闻,还有来自计算机领域的文章,如Computer Selects articles,还有公文,如Federal Register等,内容十分广泛。所有的文档都用SGML语言进行标记。


TREC提出了两个主要的研究任务(称为),此外还先后提出了十多个项目(称为Track年的TREC-4开始,增加了文本过滤的项目,其目的在于研究文本过滤的基本方法,并在真实语料的基础上进行评测。从2000年的TREC-9开始,取消了全部任务,只设置了包括文本过滤在内的7个项目。

作为一个全新的研究领域,文本过滤项目的任务定义开始时是逐渐演化的,以更好地模拟真实环境。从1997年的TREC-6开始,文本过滤的主要任务逐渐固定下来。以下是TREC6~9文本过滤项目的任务定义:给定一个主题描述(即用户需求),建立一个能从文本流中自动选择最相关文本的过滤模板(Filtering Profile)。随着文本流的逐渐进入,过滤系统自动地接受或拒绝文本,并得到反馈信息(由TREC的组织评估单位提供),根据反馈信息自适应地修正过滤模板。 文本过滤项目包含三个子任务。其中一个是被称为“Routing”的子任务。它是这样被定义的:用户的检索需求固定,提供对应于该检索需求的训练文档集中的相关文档,从检索需求构造查询语句来查询测试文档集。这是一个较为次要的任务,引入它的目的是为了和过去的文本检索会议兼容。 另一个是批过滤(Batch Filtering):用户需求固定,提供对应于该用户需求较大数量的相关文档作为训练数据,构造过滤系统,对测试文档集中的全部文本逐一作出接受或拒绝的决策。 最后引入的、也是最重要的子任务是自适应过滤(Adaptive Filtering)。它要求仅仅从主题描述出发,不提供或只提供很少的训练文档,对输入文本流中的文本逐一判断。对“接受”的文本,能得到用户的反馈信息,用以自适应地修正过滤模板。而被“拒绝”的文本是不提供反馈信息的。这是最接近真实环境也是最困难的子任务。 2000年,复旦大学作为第一批来自中国大陆的研究单位参加了第九届文本检索会议。我们共参加了三个项目:文本过滤、跨语言检索和问题回答。下文将介绍TREC-9文本过滤项目所用的语料库、用户需求(称为主题)和评价方法。

语料库、主题和相关性评价

语料库:采用医学文献语料库OHSUMED。这是著名的国家医学图书馆(National Library of Medicine)的MEDLINE医学文献库的一个子集,由1987-1991年的医学文摘组成,共含文本348,566篇,来自270种医学期刊,总容量为400M。其中87年的文摘将作为训练语料,而88-91年的文摘将作为测试语料。


主题:基本由标题和描述部分构成,例如:


<title> 60 year old menopausal woman without hormone replacement therapy
<desc> Description: Are there adverse effects on lipids when progesterone is given with estrogen replacement therapy


这类主题共有63个,来自真实的用户需求,其中标题部分是一些关于病人的介绍,而描述部分则是专业人员根据病人介绍而人工编写的查询语句。


对每个主题,TREC都提供了全部训练文本的相关性评价。一共有三个级别的相关性评价:definitely,possibly,not relevant。前两者都表示相关,但程度不同。相关文本在全部文本的比例中是非常稀少的,平均相关文本数为5年61.4篇,即平均10000篇文本中只有1.76篇相关文本。由此带来的数据稀疏问题是文本过滤中的难点之一。


对于batch filtering,提供训练集中全部的相关文本作为训练数据。而对于adaptive filtering,只提供了少量的相关文本作为训练数据。


评价方法:对每个子任务,过滤系统都会检出一个文档集,然后按Utility和准确率评价。


(A) Utility


给定主题和文档,文档可能是相关的,也可能不相关;过滤系统可能检出该文档,也可能未检出。于是可以建立如下的四分表:

相关 不相关
检 出 R+ / A N+ / B
未检出 R- / C N-/ D

检出相关文本和未检出不相关文本都是过滤正确的情况。而未检出相关文本意味者遗漏,检出不相关文本意味着错检。线性utility函数对这四种情况赋相应的权重:


Linear utility = A * R+ + B * N+ + C * R- + D * N-


这里的R+/R-/N+/N-指的是每个主题四种文本的数量。参数A,B,C,D决定了每种情况的代价。显然A,D>=0, B,C<=0。Utility值越大,系统的过滤性能就越好。每次TREC会议A,B,C,D的数值都略有变化,对TREC-9则是如下:


T9U = { 2*R+ - N+ if (2*R+ - N+)> MinU
{ MinU otherwise


MinU是一个固定的下限,目前为4年-800。定义这个下限是为了防止某些过滤性能极差的主题不会对全局性能造成太大的影响。每个主题的Utility数值进行平均,就得到全局的Utility数值。


(B) 准确率评价指标


这个指标强调过滤的准确率,但要求检出的文本数不少于一个下限MinD:


T9P = R+ / max( MinD, (R+ + N+) )


这里的MinD 为4年50篇,差不多相当于每月1篇。同样对每个主题的T9P进行平均,就得到全局的平均准确率。

你可能感兴趣的:(测试,Microsoft,文档,语言,library,任务)