企业智能专家考试与试题库管理平台建设技术方案_第1页
企业智能专家考试与试题库管理平台建设技术方案_第2页
企业智能专家考试与试题库管理平台建设技术方案_第3页
企业智能专家考试与试题库管理平台建设技术方案_第4页
企业智能专家考试与试题库管理平台建设技术方案_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

企业智能专家考试与试题库管理平台建设技术方案

目录

第一章、项目解决方案4

1.1项目概述4

1.1.1项目背景4

1.1.2项目目标4

1.1.3服务原则4

1.2项目需求分析5

1.2.1项目服务内容5

1.2.2系统建设需求6

1.2.2.1试题自动获取功能6

1.2.2.2试题解析功能7

1.2.2.3智能试题归档及分类功能7

1.2.3服务支撑要求7

1.2.4服务响应要求8

1.2.5其他要求8

1.3系统技术方案8

13.1系统功能设计8

1.3.1.1试题自动采集8

1.3.1.2自动试题解析8

1.3.1.3试题智能分类9

1.3.2系统关键技术11

1.3.2.1爬虫技术11

1.3.2.2内容识别20

1.3.2.3语义黝军20

1.3.2.4分词算法21

1.3.2.5相似度统计算法29

1.4信息安全方案36

1.4.1保密承诺36

1.4.2安全保障措施36

1.4.2.1总体措施36

1.4.2.2系统安全37

1.4.2.3数据安全38

1.4.2.4应用安全39

第二箕项目实施方案41

2.1项目实施期限41

2.1.1项目实施计划41

第三箕项目服务方案42

3.1服务支撑能力42

3.1.1服务技术支撑42

3.1.1.1系统应用升级42

3.1.1.2系统优化分析46

3.1.1.3应用健康检查46

3.1.1.4用户支持中心47

3.1.1.5系统安装和升级47

3.1.1.6现场咨询和支持47

3.1.1.7其它服务48

3.1.2服务流程支撑48

3.1.3服务组织支撑49

3.1.3.1项目领导小组49

3.1.3.2领域专家组49

3.1.3.3项目管理组49

3.1.3.4对外协作组50

3.1.3.5质量保证组50

3.1.3.6项目工作组50

3.1.3.7项目支持组52

3.1.4服务培训支撑52

3.1.4.1培训对象及目的52

3.1.4.2培训形式52

3.1.4.3培训内容53

3.1.4.4培训计划53

3.2服务响应时间承诺53

3.3服务质量控制保障54

3.3.1质量管理保障措施54

3.3.2技术质量保障措施55

第一章、项目解决方案

1.1项目概述

1.1.1项目背景

根据集团公司《技术专家考试与试题库管理平台项目》的建设需求,为提高运维专

家平台的自动化、智能化的水平和能力,需建设运维专家试题库能力,实现试题采集、

试题答案解析、试题智能分类功能。

1.1.2项目目标

项目拟针对运维专家平台试题库功能,切实提高系统自动化、智能化水平,具体包

括:

1、针对题库依赖人工整理收集和分类,流程繁琐且耗时耗力的现状,试题库系统的

建设预期可以极大提升试题获取的效率,同时自动进行分类整理。

2、针对试题答案匹配率低的问题,通过模型算法实现自动化答案匹配。

3、试题库系统上线后,可以显著提升试题量并有助于题库分类标准化。

4、可为其他类似功能的系统开发建设作技术支撑。

1.1.3服务原则

项目方案需符合科学性,研究方案合理有效,具备创新性。

1.2项目需求分析

1.2.1项目服务内容

本项目的建设目标是结合互联网采集,自动答案匹配,智能文本识别能力,打造完

整运维专家题库。具体,本次项目的服务内容与主要研究内容包括:

1)通过开发自动化采集工具和人工结合的方式,批量获取多个网络平台海量试题

数据。

2)通过开发解析模块,将试题与答案进行一一匹配,同步提供试题可靠性评估数

据,为后续选题提供依据。

3)通过开发智能试题分类算法,将从各来源获取的试题按照主机、数据库、存储、

网络等运维专业进行分类存储。

运维专家试题库需包括以下试题类别:

专业大类专业小类

主机及操作系统管理

网络接入及管理

基础设施类

存储及备份

机房动力及环境

虚拟化技术

容器化技术

平台组件类

数据库类

中间件类

分布式架构类

业务质量管理

业务连续性管理

业务服务类

私有云运营管理

流程管理类

监控技术类

测试验收类

DevOps类

发布变更类

运维工具及研发类

数据处理类

数据仓库类

智能分析类

训练学习平台类

AI算法类

1.2.2系统建设需求

为了完成项目的建设目标,完成项目服务内容,在企业技术专家考试与试题库平台

建设项目中需要建设如下内容:

1.2.2.1试题自动获取功能

试题采集功能采用互联网自动采集方法,自动批量获取试题,并获取试题文件,内

容包括:

1.针对试题列表页面,下载页面,答案页面,进行自动数据采集。

2.支持定期数据采集,例如每月、每季度数据采集更新。

3.部分高质量题目稀缺性高,质量高网站进行人工采集。

1.2.2.2试题解析功能

针对采集的试题进行解析,将试题与答案进行一一匹配,同步提供试题可靠性评估

数据,为后续选题提供依据,包括以下内容:

1.离线文档编码格式预处理,包括文字编码转化及文档格式转换,支持PDF、word、

txt多种格式转换。

2.试题与答案匹配:支持多种文件排版的解析,并将试题与答案进行准确匹配。

3.试题与答案匹配率评估:针对试题答案匹配结果进行数据评估,找出无法匹配

答案,或答案匹配错误的情况。

1.2.2.3智能试题归档及分类功能

通过开发智能试题分类算法,将从各来源获取的试题按照主机、数据库、存储、网

络等运维专业进行分类存储。

1.提取试题中的特征词,建立试题的知识点与分类字典,用于试题知识点归类及

试题分类。

2.采用分词算法,对试题进行分词并构建试题的词频矩阵

3.采用合适的算法,实现试题与分类字典相似度统计

4.确认试题分类。

123服务支撑要求

服务供应商需配备专业的技术团队支撑服务,必要时能够提供现场服务支撑。

1.2.4服务响应要求

需要为采购人提供7*24小时服务支撑。

1.2.5其他要求

需要积极做好试题库的质量校验,保障试题可用性和质量要求。

1.3系统技术方案

在企业技术专家考试与试题库平台建设项目中,我们将结合互联网采集,自动答案

匹配,智能文本识别等能力,打造完整运维专家题库。

1.3.1系统功能设计

1.3.1.1试题自动采集

在本项目中,我们将开发自动化采集工具,支持采购人通过自动工具,批量获取多

个网络平台海量试题数据,大大提高试题获取的效率与数量。

试题采集功能将采用互联网自动采集方法,自动批量获取试题,并获取试题文件。

具体,试题自动采集将提供如下功能:

•支持自动在互联网上自动检索与采集试题相关数据,包括:试题列表页面,下

载页面,答案页面等;

•支持定期的数据采集,例如每月、每季度数据采集更新;

•提供人工试题采集、录入功能,针对部分高质量题目稀缺性高,质量高的网站

支持人工进行采集。

1.3.1.2自动试题解析

在本项目中,我们将开发试题解析功能模块,支持将试题与答案进行一一匹配,同

步提供试题可靠性评估数据,为后续选题提供依据。

提供试题解析功能,对所采集到的试题内容进行全面的解析,并将试题与答案进行

一一匹配,以此提供试题可靠性评估数据,为后续选题提供充分依据。具体,试题解析

模块将提供如下功能:

•支持对离线文档编码格式进行预处理,包括文字编码转化及文档格式转换,支

持PDF、word、txt多种格式转换;

•提供试题与答案匹配功能,支持多种文彳书非版的解析,并将试题与答案进行准

确匹配;

•提供试题与答案匹配率评估功能,可针对试题答案匹配结果进行数据评估,找

出无法匹配答案,或答案匹配错误的情况。

1.3.1.3试题智能分类

在本次项目中,我们将通过开发智能试题分类算法,提供试题分类功能,将从各来

源获取的试题按照主机、数据库、存储、网络等运维专业进行自动的分类并存储。具体,

试题解析模块X各提供如下功能:

•支持根据提取试题中的特征词,建立试题的知识点与分类字典,用于试题知识

点归类及试题分类;

•采用分词算法,对试题进行分词并构建试题的词频矩阵;

•采用合适的算法,实现试题与分类字典相似度统计;

•确认试题分类并进行归档。

1.11.11试题分类类型

在本次项目中,所建设的运维专家试题库将包括以下试题类别:

专业大类专业小类

主机及操作系统管理

网络接入及管理

基础设施类

存储及备份

机房动力及环境

虚拟化技术

容器化技术

平台组件类数据库类

中间件类

分布式割勾类

业务质量管理

业务连续性管理

业务服务类

私有云运营管理

淘呈管鳏

监控技术类

测试验收类

DevOps类

发布变更类

运维工具及研发类

数据处理类

智能分析类数据仓库类

训练学习平台类

AI算法类

1.3.2系统关键技术

在本次企业技术专家考试与试题库平台建设项目中,为了实现项目建设内容,开发

出符合需求的系统功能,我们将使用爬虫、内容识别与语义理解,以及分词等算法技术。

1.3.2.1爬虫技术

网络爬虫(又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追

逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常

使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。

1.X2.1.1爬虫技术分类

网络爬虫按照系统结构和实现技术,大致可以分为以下几种类型:通用网络爬虫

(GeneralPurposeWebCrawler1聚焦网络爬虫(FocusedWebCrawler\增量

式网络爬虫(IncrementalWebCrawler\深层网络爬虫(DeepWebCrawler\实

际的网络爬虫系统通常是几种爬虫技术相结合实现的。

/通用网络爬虫

通用网络爬虫又称全网爬虫(ScalableWebCrawler),爬行对象从一些种子URL

扩充到整个Web,主要为门户站点搜索引擎和大型Web服务提供商采集数据。由于

商业原因,它们的技术细节很少公布出来。这类网络爬虫的爬行范围和数量巨大,对于

爬行速度和存储空间要求较高,对于爬行页面的顺序要求相对较低,同时由于待刷新的

页面太多,通常采用并行工作方式,但需要较长时间才能刷新一次页面。虽然存在一定

缺陷,通用网络爬虫适用于为搜索引擎搜索广泛的主题,有较强的应用价值。

通用网络爬虫的结构大致可以分为页面爬行模块、页面分析模块、链接过滤模块、

页面数据库、URL队列、初始URL集合几个部分。为提高工作效率,通用网络爬虫会

采取一定的爬行策略。常用的爬行策略有:深度优先策略、广度优先策略。

1)深度优先策略:其基本方法是按照深度由低到高的顺序,依次访问下一级网页链

接,直到不能再深入为止。爬虫在完成一个爬行分支后返回到上一链接节点进一步搜

索其它链接。当所有链接遍历完后,爬行任务结束。这种策略比较适合垂直搜索或站

内搜索,但爬行页面内容层次较深的站点时会造成资源的巨大浪费。

2)广度优先策略:此策略按照网页内容目录层次深浅来爬行页面,处于较浅目录层

次的页面首先被爬行。当同一层次中的页面爬行完毕后,爬虫再深入下一层继续爬行。

这种策略能够有效控制页面的爬行深度,避免遇到一个无穷深层分支时无法结束爬行的

问题,实现方便,无需存储大量中间节点,不足之处在于需较长时间才能爬行到目录层

次较深的页面。

/聚焦网络爬虫

聚焦网络爬虫(FocusedCrawler),又称主题网络爬虫(TopicalCrawler),是指

选择性地爬行那些与预先定义好的主题相关页面的网络爬虫[8]。和通用网络爬虫相比,

聚焦爬虫只需要爬行与主题相关的页面,极大地节省了硬件和网络资源,保存的页面也

由于数量少而更新快,还可以很好地满足一些特定人群对特定领域信息的需求。

聚焦网络爬虫和通用网络爬虫相比,增加了链接评价模块以及内容评价模块。聚焦

爬虫爬行策略实现的关键是评价页面内容和链接的重要性,不同的方法计算出的重要性

不同,由此导致链接的访问顺序也不同。

1)基于内容评价的爬行策略:DeBra将文本相似度的计算方法引入到网络爬虫中,

提出了FishSearch算法,它将用户输入的查询词作为主题,包含查询词的页面被视为

与主题相关,其局限性在于无法评价页面与主题相关度的高低。Herseovic对

FishSearch算法进行了改进,提出了Sharksearch算法,利用空间向量模

型计算页面与主题的相关度大小。

2)基于链接结构评价的爬行策略:Web页面作为一种半结构化文档,包含很多

结构信息,可用来评价链接重要性。PageRank算法最初用于搜索引擎信息检索中对

查询结果进行排序,也可用于评价链接重要性,具体做法就是每次选择PageRank值

较大页面中的链接来访问。另一个利用Web结构评价链接价值的方法是HITS方法,

它通过计算每个已访问页面的Authority权重和Hub权重,并以此决定链接的访问

顺序。

3)基于增强学习的爬行策略:Rennie和McCallum将增强学习引入聚焦爬虫,

利用贝叶斯分类器,根据整个网页文本和链接文本对超链接进行分类,为每个链接计算

出重要性,从而决定链接的访问111页序。

4)基于语境图的爬行策略:Diligenti等人提出了一种通过建立语境图(Context

Graphs)学习网页之间的相关度,训练一个机器学习系统,通过该系统可计算当前页面

到相关Web页面的距离,距离越近的页面中的链接优先访问。印度理工大学(HT)和

IBM研究中心的研究人员开发了一个典型的聚焦网络爬虫。该爬虫对主题的定义既不

是采用关键词也不是加权矢量,而是一组具有相同主题的网页。它包含两个重要模块:

一个是分类器,用来计算所爬行的页面与主题的相关度,确定是否与主题相关;另一个

是净化器,用来识别通过较少链接连接到大量相关页面的中心页面。

/增量式网络爬虫

增量式网络爬虫(IncrementalWebCrawler)是指对已下载网页采取

增量式更新和只爬行新产生的或者已经发生变化网页的爬虫,它能够在一定程度上保

证所爬行的页面是尽可能新的页面。和周期性爬行和刷新页面的网络爬虫相比,增量

式爬虫只会在需要的时候爬行新产生或发生更新的页面,并不重新下载没有发生变化

的页面,可有效减少数据下载量,及时更新已爬行的网页,减小时间和空间上的耗费,

但是增加了爬行算法的复杂度和实现难度。增量式网络爬虫的体系结构[包含爬行模块、

排序模块、更新模块、本地页面集、待爬行URL集以及本地页面URL集。

增量式爬虫有两个目标:保持本地页面集中存储的页面为最新页面和提高本地页面

集中页面的质量。为实现第一个目标,增量式爬虫需要通过重新访问网页来更新本地

页面集中页面内容,常用的方法有:1)统一更新法:爬虫以相同的频率访问所有网页,

不考虑网页的改变频率;2)个体更新法:爬虫根据个体网页的改变频率来重新访问各页

面;3)基于分类的更新法:爬虫根据网页改变频率将其分为更新较快网页子集和更新较

慢网页子集两类,然后以不同的频率访问这两类网页。

为实现第二个目标,增量式爬虫需要对网页的重要性排序,常用的策略有:广度优

先策略、PageRank优先策略等。IBM开发的WebFountain是Y功能强大的增量式

网络爬虫,它采用一个优化模型控制爬行过程,并没有对页面变化过程做任何统计假设,

而是采用一种自适应的方法根据先前爬行周期里爬行结果和网页实际变化速度对页面

更新频率进行调整。北京大学的天网增量爬行系统旨在爬行国内Web,将网页分为变

化网页和新网页两类,分别采用不同爬行策略。为缓解对大量网页变化历史维护导致

的性能瓶颈,它根据网页变化时间局部性规律,在短时期内直接爬行多次变化的网页,

为尽快获取新网页,它利用索引型网页跟踪新出现网页。

DeepWeb爬虫

Web页面按存在方式可以分为表层网页(SurfaceWeb芹口深层网页(DeepWeb,

也称InvisibleWebPages或HiddenWeb1表层网页是指传统搜索引擎可以索引

的页面,以超链接可以到达的静态网页为主构成的Web页面。DeepWeb是那些大

部分内容不能通过静态链接获取的、隐藏在搜索表单后的,只有用户提交一些关键词才

能获得的页面。例如那些用户注册后内容才可见的网页就属于

WebDeepWebo

2000年BrightPlanet指出:DeepWeb中可访问信息容量是SurfaceWeb的几

百倍,是互联网上最大、发展最快的新型信息资源。

DeepWeb爬虫体系结构包含六个基本功能模块(爬行控制器、解析器、表单分析器、

表单处理器、响应分析器、LVS控制器)和两个爬虫内部数据结构(URL列表、LVS表X

其中LVS(LabelValueSet)表示标签/数值集合,用来表示填充表单的数据源。

DeepWeb爬虫爬行过程中最重要部分就是表单填写,包含两种类型:

1)基于领域知识的表单填写:此方法一般会维持一个本体库,通过语义分析来选取

合适的关键词填写表单。YiyaoLu[25]等人提出一种获取Form表单信息的多注解方

法,将数据表单按语义分配到各个组中,对每组从多方面注解,结合各种注解结果来预

测一个最终的注解标签;郑冬冬等人利用一个预定义的领域本体知识库来识别Deep

Web页面内容,同时利用一些来自Web站点导航模式来识别自动填写表单时所需

进行的路径导航。

2)基于网页结构分析的表单填写:此方法一般无领域知识或仅有有限的领域知识,

将网页表单表示成DOM树,从中提取表单各字段值。Desouky等人提出一种

LEHW方法,该方法将HTML网页表示为DOM树形式,将表单区分为单属性表单和

多属性表单,分别进行处理;孙彬等人提出一种基于XQuery的搜索系统,它能够模

拟表单和特殊页面标记切换,把网页关键字切换信息描述为三元组单元,按照一定规则

排除无效表单,将Web文档构造成DOM树,利用XQuery将文字属性映射到表单

字段。

Raghavan等人提出的HIWE系统中,爬行管理器负责管理整个爬行过程,分析

下载的页面,将包含表单的页面提交表单处理器处理,表单处理器先从页面中提取表单,

从预先准备好的数据集中选择数据自动填充并提交表单,由爬行控制器下载相应的结果

页面。

1.X2JJ网页搜索策略

网页的抓取策略可以分为深度优先、广度优先和最佳优先三种。深度优先在很多情

况下会导致爬虫的陷入(trapped)问题,目前常见的是广度优先和最佳优先方法。

/广度优先搜索

广度优先搜索策略是指在抓取过程中,在完成当前层次的搜索后,才进行下一层次

的搜索。该算法的设计和实现相对简单。在目前为覆盖尽可能多的网页,一般使用广度

优先搜索方法。也有很多研究将广度优先搜索策略应用于聚焦爬虫中。其基本思想是认

为与初始URL在一定链接距离内的网页具有主题相关性的概率很大。另外一种方法是将

广度优先搜索与网页过滤技术结合使用,先用广度优先策略抓取网页,再将其中无关的

网页过滤掉。这些方法的缺点在于,随着抓取网页的增多,大量的无关网页将被下载并

过滤,算法的效率将变低。

最佳优先搜索

最佳优先搜索策略按照一定的网页分析算法,预测候选URL与目标网页的相似度,

或与主题的相关性,并选取评价最好的一个或几个URL进行抓取。它只访问经过网页分

析算法预测为"有用”的网页。存在的一个问题是,在爬虫抓取路径上的很多相关网页

可能被忽略,因为最佳优先策略是一种局部最优搜索算法。因此需要将最佳优先结合具

体的应用进行改进,以跳出局部最优点。将在第4节中结合网页分析算法作具体的讨论。

研究表明,这样的闭环调整可以将无关网页数量降低30%~90%。

/深度优先搜索

深度优先搜索策略从起始网页开始,选择一个URL进入,分析这个网页中的URL,

选择一个再进入。如此一个链接一个链接地抓取下去,直到处理完一条路线之后再处理

下一条路线。深度优先策略设计较为简单。然而门户网站提供的链接往往最具价值,

PageRank也很高,但每深入一层,网页价值和PageRank都会相应地有所下降。这暗示

了重要网页通常距离种子较近,而过度深入抓取到的网页却价值很低。同时,这种策略

抓取深度直接影响着抓取命中率以及抓取效率,对抓取深度是该种策略的关键。相对于

其他两种策略而言。此种策略很少被使用。

i:i.±i:i网页分析算法

网页分析算法可以归纳为基于网络拓扑、基于网页内容和基于用户访问行为三种类

型。

/拓扑分析算法

基于网页之间的链接,通过已知的网页或数据,来对与其有直接或间接链接关系的

对象(可以是网页或网站等)作出评价的算法。又分为网页粒度、网站粒度和网页块粒

度这三种。

1网页(Webpage)粒度的分析算法

PageRank和HITS算法是最常见的链接分析算法,两者都是通过对网页间链接度的

递归和规范化计算,得到每个网页的重要度评价。PageRank算法虽然考虑了用户访问

行为的随机性和Sink网页的存在,但忽略了绝大多数用户访问时带有目的性,即网页和

链接与查询主题的相关性。针对这个问题,HITS算法提出了两个关键的概念:权威型网

页(authority)和中心型网页(hub\

基于链接的抓取的问题是相关页面主题团之间的隧道现象,即很多在抓取路径上偏

离主题的网页也指向目标网页,局部评价策略中断了在当前路径上的抓取行为。文献[21]

提出了一种基于反向链接(BackLink)的分层式上下文模型(ContextModel),用于

描述指向目标网页一定物理跳数半径内的网页拓扑图的中心Layer。为目标网页,将网页

依据指向目标网页的物理跳数进行层次划分,从外层网页指向内层网页的链接称为反向

链接。

2网站粒度的分析算法

网站粒度的资源发现和管理策略也比网页粒度的更简单有效。网站粒度的爬虫抓取

的关键之处在于站点的划分和站点等级(SiteRank)的计算。SiteRank的计算方法与

PageRank类似,但是需要对网站之间的链接作一定程度抽象,并在一定的模型下计算

链接的权重。

网站划分情况分为按域名划分和按IP地址划分两种。文献[18]讨论了在分布式情况

下,通过对同一个域名下不同主机、服务器的IP地址进行站点划分,构造站点图,利用

类似PageRank的方法评价SiteRank。同时,根据不同文件在各个站点上的分布情况,

构造文档图,结合SiteRank分布式计算得到DocRank。文献[18]证明,利用分布式的

SiteRank计算,不仅大大降低了单机站点的算法代价,而且克服了单独站点对整个网络

覆盖率有限的缺点。附带的一个优点是,常见PageRank造假难以对SiteRank进行欺骗。

3网页块粒度的分析算法

在一个页面中,往往含有多个指向其他页面的链接,这些链接中只有一部分是指向

主题相关网页的,或根据网页的链接锚文本表明其具有较高重要性。但是,在PageRank

和HITS算法中,没有对这些链接作区分,因此常常给网页分析带来广告等噪声链接的干

扰。在网页块级别(Block?level)进行链接分析的算法的基本思想是通过VIPS网页分割算

法将网页分为不同的网页块(pageblock),然后对这些网页块建立page?to?block和

block?to?page的链接矩阵,?分别记为Z和X。于是,在page?to?page图上的网页块级

另!J的PageRank为?W?p=XxZ;?^block?to?block|S|_bfi^Blocl<Rank^j?W?b=ZxXo

已经有人实现了块级别的PageRank和HITS算法,并通过实验证明,效率和准确率都比

传统的对应算法要好。

/网页内容分析算法

基于网页内容的分析算法指的是利用网页内容(文本、数据等资源)特征进行的网

页评价。网页的内容从原来的以超文本为主,发展到后来动态页面(或称为HiddenWeb)

数据为主,后者的数据量约为直接可见页面数据(PIW,PubliclyIndexableWeb)的

400~500倍。另一方面,多媒体数据、WebService等各种网络资源形式也日益丰富。

因此,基于网页内容的分析算法也从原来的较为单纯的文本检索方法,发展为涵盖网页

数据抽取、机器学习、数据挖掘、语义理解等多种方法的综合应用。本节根据网页数据

形式的不同,将基于网页内容的分析算法,归纳以下三类:第一种针对以文本和超链接

为主的无结构或结构很简单的网页;第二种针对从结构化的数据源(如RDBMS)动态

生成的页面,其数据不能直接批量访问;第三种针对的数据界于第一和第二类数据之间,

具有较好的结构,显示遵循一定模式或风格,且可以直接访问。

基于文本的网页分析算法

1)纯文本分类与聚类算法

很大程度上借用了文本检索的技术。文本分析算法可以快速有效的对网页进行分类和聚

类,但是由于忽略了网页间和网页内部的结构信息,很少单独使用。

2)超文本分类和聚类算法

根据网页链接网页的相关类型对网页进行分类,依靠相关联的网页推测该网页的类型。

1.3.2.2内容识别

OCR文字识别能够广泛应用于委办局的日常业务处理过程,包括各种传真文件,图

片,电子证照上文字信息的自动化识别和结构化提取,提升办事效率。

文字识别服务需要具有如下功能:

支持通用表格、网络图片、文档中通用文字信息的自动化识别,可自适应分析各种

版面和表格,快速实现各种文档电子化。

支持身份证、护照、银行卡、名片、营业执照、道路运输证等卡证类图片上有效信

息的自动识别和关键字段结构化提取。支持对各类票据卡证快速定制文字识别模板,一

步完成分类与结构化。

1.3.2.3语义斯

/词法分析

提供分词、词性标注、命名实体识别三大功能,支撑自然语言的准确理解,输入中

文句子,即可获得该句的依存句法结构信息。

/多语言分词

将连续的自然语言文本,切分成具有语义合理性和完整性的词汇序列。

/DNN语言模型

输入中文句子,即可获得句子的通顺程度。

/词义相似度

依托海量优质数据和深度神经网络技术,通过词语向量化来计算两个词之间的相似

程度。

/对话情绪识别

自动检测用户对话文本中蕴含的情绪特征,帮助企业更全面的把握产品体验、监控

客户服务质量。

/评论观点抽取

自动分析客户的通话文本信息,输出客户的观点与情感极性。

/关健词标签

对文本内容进行核心关键词分析,为新闻个性化推荐、相似文章聚合、文本内容分

析等提供技术支持。

/文本纠错

识别文本中有错误的片段,进行错误提示并给出正确的建议文本内容。

1.3.2.4分词算法

NLP的底层任务由易到难大致可以分为词法分析、句法分析和语义分析。分词是词

法分析(还包括词性标注和命名实体识别)中最基本的任务,可以说既简单又复杂。说

简单是因为分词的算法研究已经很成熟了,大部分的准确率都可以达到95%以上,说复

杂是因为剩下的5%很难有突破,主要因为三点:

然而,在真实的应用中往往会因为以上的难点造成分词效果欠佳,进而影响之后的

任务。对于追求算法表现的童鞋来说,不仅要会调分词包,也要对这些基础技术有一定

的了解,在做真正的工业级应用时有能力对分词器进行调整。这篇文章不是着重介绍某

个SOTA成果,而是对常用的分词算法(不仅是机器学习或神经网络,还包括动态规划

等)以及其核心思想进行介绍。

我认为分词算法根据其核心思想主要分为两种,第一种是基于字典的分词,先把句

子按照字典切分成词,再寻找词的最佳组合方式;第二种是基于字的分词,即由字构词,

先把句子分成一个个字,再将字组合成词,寻找最优的切分策略,同时也可以转化成序

列标注问题。归根结底,上述两种方法都可以归结为在图或者概率图上寻找最短路径的

问题。接下来将以"他说的确实在理"这句话为例,讲解各个不同的分词算法核心思想。

最大匹配分词寻找最优组合的方式是将匹配到的最长词组合在一起。主要的思路是

先将词典构造成一棵Trie树,也称为字典树,如下图:

Trie树由词的公共前缀构成节点,降低了存储空间的同时提升查找效率。最大匹配

分词将句子与Trie树进行匹配,在匹配到根结点时由下一个字重新开始进行查找。比如

正向(从左至右)匹配"他说的确实在理",得出的结果为"他/说/的确/实在/理、

如果进行反向最大匹配,则为"他/说/的/确实/在理、

可见,词典分词虽然可以在0(n)时间对句子进行分词,但是效果很差,在实际情况

中基本不使用此种方法。

最短路径分词算法首先将一句话中的所有词匹配出来,构成词图(有向无环图DAG),

之后寻找从起始点到终点的最短路径作为最佳组合方式,引用《统计自然语言处理》中

的图:

也实在

我们认为图中每个词的权重都是相等的,因此每条边的权重都为1。

在求解DAG图的最短路径问题时,总是要利用到一种性质:即两点之间的最短路径也包

含了路径上其他顶点间的最短路径。比如S->A->B->E为S到E到最短路径,那S->A->B

一定是S到B到最短路径,否则会存在一点C使得d(S->C->B)<d(S->A->B),那S到E的

最短路径也会变为S->C->B->E,这就与假设矛盾了。利用上述的最优子结构性质,可

以利用贪心算法或动态规划两种求解算法:

1.最短路径分词算法

基于Dijkstra算法求解最短路径。该算法适用于所有带权有向图,求解源节点到其

他所有节点的最短路径,并可以求得全局最优解。Dijkstra本质为贪心算法,在每一步

走到当前路径最短的节点,递推地更新原节点到其他节点的距离。针对当前问题,

Dijkstra算法的计算结果为:"他/说/的/确实/在理二可见最短路径分词算法可以

满足部分分词要求。但当存在多条距离相同的最短路径时,Dijkstra只保存一条,对其

他路径不公平,也缺乏理论依据。

2.N-最短路径分词算法

N-最短路径分词是对Dijkstra算法的扩展,在每一步保存最短的N条路径,并记录

这些路径上当前节点的前驱,在最后求得最优解时回溯得到最短路径。该方法的准确率

优于Dijkstra算法,但在时间和空间复杂度上都更大。

在前文的词图中,边的权重都为1。而现实中却不一样,常用词的出现频率/概率肯定

比罕见词要大。因此可以将求解词图最短路径的问题转化为求解最大概率路径的问题,

即分词结果为"最有可能的词的组合计算词出现的概率,仅有词典是不够的,还需

要有充足的语料。因此分词任务已经从单纯的"算法"上升到了"建模",即利用统计学

方法结合大数据挖掘,对"语言"进行建模。

语言模型的目的是构建一句话出现的概率p(s),根据条件概率公式我们知道:

P(他说的确实在理)=P(他2(说I他)P(的他说)P(确他说的)...p(理I他说的确实在)

而要真正计算"他说的确实在理"出现的概率,就必须计算出上述所有形如

p(w_n|w_l...w_{n-l})

n=l,...,6的概率,计算量太过庞大,因此我们近似地认为:

p(s)=\prod_{i=l}A{l}p(w_i|w_l...w_{i-l})\approx\prod_{i=l}A{l}p(w_i|w_{i-l})\\

其中

s=w_lw_2...w_l

为字或单词。我们将上述模型成为二元语言模型(2-grammodel).类似的,如果

只对词频进行统计,则为一元语言模型。由于计算量的限制,在实际应用中n一般取3。

我们将基于词的语言模型所统计出的概率分布应用到词图中,可以得到词的概率图:

_——严叫同

P(实I极)P(理I实由

小迪理A⑹P像陶"高「(在四a同呼3Q

(,)P(他卜$>;

(确实)

P(确实I的)P(gg|确益'3Jp(</s>|5®

对该词图用2.1.2中的算法求解最大概率的路径,即可得到分词结果。

与基于词典的分词不同的是,基于字的分词事先不对句子进行词的匹配,而是将分

词看成序列标注问题,把一个字标记成B(Begin),I(Inside),O(Outside),E(End),

S(Single)0因此也可以看成是每个字的分类问题,输入为每个字及其前后字所构成的特

征,输出为分类标记。对于分类问题,可以用统计机器学习或神经网络的方法求解。

统计机器学习方法通过一系列算法对问题进行抽象,进而得到模型,再用得到的模

型去解决相似的问题。也可以将模型看成一个函数,输入X,得到f(X)=Y。另外,机器

学习中一般将模型分为两类:生成式模型和判别式模型,两者的本质区别在于X和Y的生

成关系。生成式模型以"输出Y按照一定的规律生成输入X"为假设对P(X,Y)联合概率进

行建模;判别式模型认为Y由X决定,直接对后验概率P(Y|X)进行建模。两者各有利弊,

生成模型对变量的关系描述更加清晰,而判别式模型容易建立和学习。下面对几种序列

标注方法做简要介绍。

生成式模型主要有n-gram模型、HMM隐马尔可夫模型、朴素贝叶斯分类等。在分

词中应用比较多的是n-gram模型和HMM模型。如果将2.1.3中的节点由词改成字,则

可基于字的n-gram模型进行分词,不过这种方法的效果没有基于词的效果要好。

HMM模型认为在解决序列标注问题时存在两种序列,一种是观测序列,即人们显

性观察到的句子,而序列标签是隐状态序列,即观测序列为X,隐状态序列是Y,因果关

系为Y->X。因此要得到标注结果Y,必须对X的概率、Y的概率、P(X|Y)进行计算,即建

立P(X,Y)的概率分布模型。例句的隐马尔科夫序列如下图:

HMM模型是常用的分词模型,基于Python的jieba分词器和基于Java的HanLP分

词器都使用了HMM。要注意的是,该模型创建的概率图与上文中的DAG图并不同,因

为节点具有观测概率,所以不能再用上文中的算法求解,而应该使用Viterbi算法求解最

大概率的路径。

判别式模型主要有感知机、SVM支持向量机、CRF条件随机场、最大焙模型等。在

分词中常用的有感知机模型和CRF模型:

1.平均感知机分词算法

感知机是一种简单的二分类线性模型,通过构造超平面,1各特征空间(输入空间)中的

样本分为正负两类。通过组合,感知机也可以处理多分类问题。但由于每次迭代都会更

新模型的所有权重,被误分类的样本会造成很大影响,因此采用平均的方法,在处理完

一部分样本后对更新的权重进行平均。

2.CRF分词算法

CRF可以看作一个无向图模型,对于给定的标注序列Y和观测序列X,对条件概率

P(Y|X)进行定义,而不是对联合概率建模。CRF可以说是目前最常用的分词、词性标注

和实体识别算法,它对未登陆词有很好的识别能力,但开销较大。

在NLP中,最常用的神经网络为循环神经网络(RNN,RecurrentNeuralNetwork),

它在处理变长输入和序列输入问题中有着巨大的优势。LSTM为RNN变种的一种,在一

定程度上解决了RNN在训练过程中梯度消失和梯度爆炸的问题。双向(Bidirectional)

循环神经网络分别从句子的开头和结尾开始对输入进行处理,将上下文信息进行编码,

提升预测效果。

目前对于序列标注任务,公认效果最好的模型是BiLSTM+CRF。结构如图:

利用双向循环神经网络BiLSTM,相比于上述其它模型,可以更好的编码当前字等

上下文信息,并在最终增加CRF层,核心是用Viterbi算法进行解码,以得到全局最优解,

避免B,S,E这种标记结果的出现。

前文主要讲了分词任务中所用到的算法和模型,但在实际的工业级应用中,仅仅有

算法是不够的,还需要高效的数据结构进行辅助。

中文有7000多个常用字,56000多个常用词,要将这些数据加载到内存虽然容易,

但进行高并发毫秒级运算是困难的,这就需要设计巧妙的数据结构和存储方式。前文提

到的Trie树只可以在O(n)时间完成单模式匹配,识^出"的确"后到达Trie树对也节点,

句子指针接着指向"实",再识别"实在",而无法识别"确实"这个词。如果要在O(n)

时间完成多模式匹配,构建词图,就需要用到Aho-Corasick算法将模式串预处理为有限

状态自动机,如模式串是he/she/his/hers,文本为"ushers"。构建的自动机如图:

卢{h,s}码农场

这样,在第一次到叶节点5时,下一步的匹配可以直接从节点2开始,一次遍历就可

以识别出所有的模式串。

对于数据结构的存储,一般可以用链表或者数组,两者在查找、插入和删除操作的

复杂度上各有千秋。在基于Java的高性能分词器HanLP中,作者使用双数组完成了Trie

树和自动机的存储。

图作为一种常见的数据结构,其存储方式一般有两种:

1.邻接矩阵

邻接矩阵用数组下标代表节点,值代表边的权重,即仇口口]=丫代表节点i和节点j间的

边权重为V。如下图:

用矩阵存储图的空间复杂度较高,在存储稀疏图时不建议使用。

2.邻接表

邻接表对图中的每个节点建立一个单链表,对于稀疏图可以极大地节省存储空间。

第i个单链表中的节点表示依附于顶点i的边,如下图:

在实际应用中,尤其是用Viterbi算法求解最优路径时,由于是按照广度优先的策略

对图进行遍历,最好是使用邻接表对图进行存储,便于访问某个节点下的所有节点。

1.3.2.5相似度统计算法

在数据分析和数据挖掘以及搜索引擎中,我们经常需要知道个体间差异的大小,进

而评价个体的相似性和类别。常见的比如数据分析中比如相关分析,数据挖掘中的分类

聚类(K-Means等)算法,搜索引擎进行物品推荐时。

相似度就是比较两个事物的相似性。一般通过计算事物的特征之间的距离,如果距

离小,那么相似度大;如果距离大,那么相似度小。比如两种水果,将从颜色,大小,

维生素含量等特征进行比较相似性。

问题定义:有两个对象X,Y,都包含N维特征,

X=(xl,x2,x3xn),Y=(yl,y2,y3yn),计算X和Y的相似性。常

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论