2.2.2 专利主题网络爬虫系统

2.2.2 专利主题网络爬虫系统

2.2.2.1 网络爬虫技术的发展现状

面对海量的专利知识,如果采用传统人工方式进行专利数据采集,不仅大大增加了人力和时间成本,延长了创新设计的周期,而且可能不利于所需专利的筛选,从而降低了创新设计的效率。对于专利数据快速采集并有效筛选的研究,可以降低人工和时间成本。通过计算机自动处理的方式进行专利数据爬取,并基于设计人员的需求进行有效过滤,可以减轻人工劳动在专利数据采集工作中的强度。计算机专利文本处理及知识获取技术随着计算机科学的发展正在走向成熟,计算机辅助创新设计平台可以对专利知识进行自动提取,减少了设计人员花费在阅读、处理专利上的时间,突出了专利设计方案的细节特征,并与创新设计方法进行了有机结合。

进入互联网时代,面对爆炸式增长的网络信息资源,传统的搜索引擎已经不能满足人们对于信息的获取,为了快速、高效、准确地采集并筛选所需数据,网络爬虫应运而生。专利数据采集是专利知识辅助产品创新设计中最基础的步骤,是专利文本分类、专利知识提取及推送、产品创新设计等后续工作的前提。网络爬虫可以在专利数量急剧增长的情况下,抓取客户所需的专利数据,为后续工作提供数据信息支持。

通用网络爬虫是在给定统一资源定位符(URL)下,爬虫对指定页面进行采集。通用网络爬虫的目标是在不关注页面采集顺序和页面与主题是否相关的情况下,尽可能多地爬取新的页面。主题爬虫在爬行过程中,基于预先给定的主题,结合算法分析页面的主题相关性,保留并爬取与主题相关的页面。主题网络爬虫只爬取与主题相关的页面,且按照一定的优先级进行爬取。主题网络爬虫包括以下3个关键技术。

(1)目标主题定义。对主题进行准确描述有利于主题爬虫发现与主题相关的页面。阿加沃尔(Aggarwal)等人提出了用关键词表示主题的方法,客户可以通过关键词来描述自己感兴趣的主题。张睿涵等设计了一种基于主题定制的专利网络爬虫,利用客户给定的关键词来获取主题,提高了专利爬取的准确率。埃里格(Ehrig)等人通过利用本体构建主题,用于解决爬取过程中自然语言的一词多义问题。已有研究设计并实现了一个分布式语义“Web爬虫”,其中一个页面分析器的组件被用来理解页面内容的主题和页面中锚标签的上下文,可以指导爬虫进行特定领域的爬行。

(2)爬行策略,即页面的爬取优先级序列。主题爬虫在工作时,将与主题相关的链接放入待爬行队列中,并在传递子链接时将相关度递减。对链接进行二次爬行时,爬虫按照链接与主题的相关度高低进行爬行,因此如何计算待爬行URL的先后顺序是不同主题爬虫之间的区别。网络爬虫的爬行策略主要包括广度优先(Breath-first)、深度优先(Depth-first)及最佳优先(Best-first)3种。

(3)主题相关度计算。主题爬虫对已经爬取的页面,通过采集页面文本内容来判断页面的主题相关性。不同主题爬虫采用不同方法来计算页面主题的相关度,包括以下3种页面主题相关度计算方法:第一种是基于页面内容的算法,其中Fish-search(鱼式搜索)算法和Shark-search(鲨鱼式搜索)算法最具代表性。此外,拉克马(Lakma)等人提出了一种基于产品-消费者问题的网页变化检测的多线程爬虫方法,实验结果表明,该方法能够有效地减少对网页进行检测的时间。张(Zhang)等人使用基于朴素贝叶斯的主题爬虫算法,对特定的网页进行分类和整合,大大提高了网页的检索能力。为了检验网络页面的相似度,使用了一个相似度函数,提取出链接的优先级,对基于元数据和主题网络爬虫生成的结果页面进行计算,该技术还使用了一种方法来全面检验那些在爬行过程中遇到的不相干的页面,以提高特定主题的覆盖率。

塞伊菲和帕特尔(Seyfi & Patel)使用页面的特定超文本标记语言(HTML)元素来预测当前页面中具有未访问链接的所有页面的主题焦点,然后将已识别的页面根据它们与爬虫的主题相关性进行排序,以获得进一步的实际下载。第二种是基于链接结构的算法。第三种是基于综合因素判断的算法,如刘(Liu)等人提出了一种主题网络爬虫,该爬虫采用最大熵马尔科夫模型进行主题相关度计算,文献对基于文本内容的算法和基于链接结构的算法进行了分析比较。

2.2.2.2 网络爬虫系统架构

为了给专利知识辅助产品创新设计提供知识来源,针对美国专利商标局的专利信息,学者们设计并开发了一种专利主题网络爬虫,给出主题爬虫的总体设计和实现流程。该主题网络爬虫包括系统结构框架、系统关键技术。在专利主题相关性判别上,提出基于句向量(Doc2vec)的专利短文本相似度计算方法,有效筛选所需专利数据。试验结果表明,该主题网络爬虫具有较高的获取效率和适用性。面对海量的专利知识,减少人工劳动在获取专利数据集工作中的比例,从而快速、高效、准确地采集并筛选所需数据已经成为一个重要的研究方向。网络爬虫是信息获取中不易获取的一部分,因此可构建有效和稳健的爬虫来进行专利资源的获取。传统的网络爬虫使用关键词检索的方式来定位所需主题,然而利用关键词检索得到的大量专利文献中,往往只有一部分满足设计人员的需求。因此,需要设定专利筛选方法,改进传统的网络爬虫架构,从而高效快速地从专利数据库中采集与设计需求有一定相似度的专利。本章将介绍一种专利主题网络爬虫,通过稳健的爬取流程与页面解析技术,结合提出的专利筛选算法,以提高专利数据获取的效率和准确率。

网络爬虫是IO(输入输出)密集型任务。本书采用异步IO的方法来解决长时间的IO等待。若爬虫执行的IO请求比较耗时,它会在不等待IO返回结果的情况下继续执行其他IO请求;当这个IO请求返回结果时,爬虫通知CPU进行处理。

专利筛选的主要功能是计算待爬取专利的主题相关度,筛选出符合客户设计需求的专利。传统的主题爬虫相关度计算的方法主要有基于内容评价的搜索策略和基于链接分析的搜索策略,但这两种方法都不适用于专利主题网络爬虫。因此,本章提出一种适用于专利主题网络爬虫的主题相关度计算方法:首先爬虫进行一次爬行,爬取包含专利URL、专利标题、专利申请号等字段的专利初始信息并存入数据库,然后针对第一次爬取获得的结果开始第二次爬取。其主要特点体现在,对第一次爬取获得的全部专利标题利用Doc2vec模型训练向量,同时结合客户给定的设计需求进行文本相似度的计算,按照设定的阈值大小将符合条件的专利URL依次添加到待爬取专利URL集合当中。

传统的基于网页内容的相关度计算方法,每遇到一个新的URL,就计算该网页内容与主题的相关度,如果将这种方法应用在专利主题爬虫中,只能利用单篇专利与主题之间的相关度,准确度较低,而且会造成爬取效率的下降;如果将初始专利信息集合内的全部专利爬取下来后再进行主题相关度的计算,虽然可以大幅提高准确率,但已经不符合主题爬虫的定义和初衷。因此,本书提出一种折中的主题相关度计算方法,将第一次爬行的结果作为全局专利信息指导第二次爬行,于是第二次爬行不用再分析网页内容,效率和准确度都得到了提升。本书设计的专利主题网络爬虫架构如图2-13所示。

图2-13 专利主题网络爬虫架构

专利主题网络爬虫架构如下:

(1)客户提供爬取关键词。

(2)将关键词作为参数封装成种子URL,解析初始页面获得爬取总量,结合异步IO进行专利URL集合的爬取并存入本地数据库,同时对URL集合进行去重。

(3)从本地专利数据库查询专利URL,结合专利筛选、页面解析及异步IO,对专利信息进行采集和解析,并存入本地数据库。整个爬虫系统的关键模块为页面采集、页面解析和专利筛选,下文将进一步进行详细讨论。

2.2.2.3 系统关键技术

2.2.2.3.1 页面采集和页面解析

页面采集和页面解析模块的工作是对于已经存入数据库的URL实现专利详情页提取与专利信息清洗和抽取,使得网页上用于展示的专利内容变成结构化、易于分析的文本信息。页面采集流程的设计既能够保障爬虫的稳健性,保证整个爬行过程完整,又能够确保本章提出的专利筛选的可行性。整个采集流程分为两部分:首先由种子URL爬取全部包含专利URL、专利标题、专利申请号等字段的专利初始信息,并存入数据库;然后针对数据库中的专利标题进行主题相关度分析,将符合要求的URL添加到待爬取URL集合中,爬取专利信息并存入数据库。

Web页面解析的对象为专利名、申请号、摘要、说明书和权利要求等专利字段,其中专利说明书分为技术领域、背景技术、发明总览、附图说明和实施方案五部分。目前常用的网页解析方法有正则表达式、BeautifulSoup模块和PyQuery。其中正则表达式的优点在于能适应网页内容的变化;BeautifulSoup能够正确解析缺损的HTML,但存在解析速度较慢的问题;PyQuery能够通过选择器精确定位DOM树中的目标并进行操作,语法简单且功能强大。

2.2.2.3.2 专利筛选

深度学习掀开机器学习的新篇章,目前深度学习在图像和自然语言处理等方面的应用已经产生了突破性的研究进展。其中自然语言处理研究中最基本的产物就是词向量Word2vec及类似的Doc2vec。Doc2vec又称为paragraph2vec、sentence embeddings,是一种非监督式算法,可以获得句子(sentences)/段落(paragraphs)/文档(documents)的向量表达,是Word2vec的拓展,已应用于文本相似度分析及情感分析推荐系统等领域。Doc2Vec有Distributed Memory(DM)和Distributed Bag of Words(DBOW)两种训练模型。对于大多数任务,DM模型有较好表现。

2.2.2.3.3 专利文本特征提取方法

信息增益是文本分类中常用的特征选择算法,信息增益是特征重要性的体现,信息增益与特征的重要程度呈正相关关系。总的信息增益公式如下:

其中,表示某类专利文本占所有类别专利文本总数的比例,NCi是某类专利文本的数量,N是总专利文本数;表示当特征t出现时该特征属于类别Ci的条件概率,NCi∩t是Ci类中出现特征t的专利数,

Nt是全部专利中出现特征t的专利数;表示当特征t不出现时该特征属于类别Ci的条件概率,是Ci类中没有出现特征t的专利数,是全部专利中没有出现特征t的专利数。

信息增益的缺点在于它只体现了特征对整个系统的贡献,而不能细化到某个类别,从而忽略了特征对单个类别的区分作用。专利文本存在一些对特定类别专利具有较大区分作用而对其他类别专利区分作用不大的词,这类词往往得到较低的综合信息增益评估值,因此应想办法提高这类词的信息增益值。参考Shang、石慧等人的研究,本章提出如下权重系数计算方法,对类别间分布极不均匀的词,赋予更高的权重。

其中,tf表示特征t出现的频数;表示特征t出现在类别Ci的概率,Nt∩Ci是包含特征t的专利文本出现在Ci类中的数量,NCi是Ci类专利文本的数量;表示特征t出现在除类别Ci外的其他类别的概率,是包含特征t的专利文本出现在除类别Ci外的其他类别的数量,是除类别Ci外其他类别的数量。

分子加1是为了避免当为0时整体为0,导致不存在。a的作用在于使得整体大于0,这里取a=2。考虑到不同特征值的词频差异,将式(2-12)归一化处理。

从式(2-13)中可以看出,因为tf≥1,故log2(tf)+1≥1;a=2,,故,所以Ei始终大于1,系数ξi也始终小于1,且与Ei的大小呈正相关。Ei越大,表示该特征在分类中的价值越大。

本章在传统IG算法的基础上,引入权重参数ξi,以提高对某类专利有较大区分价值的特征的信息增益值,得到改进后的信息增益计算公式如下。