知识点的爬取方法及装置、存储介质、终端与流程

文档序号:19251172发布日期:2019-11-27 20:15阅读:273来源:国知局
知识点的爬取方法及装置、存储介质、终端与流程

本发明涉及数据处理技术领域,具体地涉及一种知识点的爬取方法及装置、存储介质、终端。



背景技术:

随着智能客服机器人的广泛应用,越来越多的用户开始重视知识点的建设。

现有技术在实施知识点建设时,普遍做法是由人工先准备好固定文档模板,然后往模板里面填写知识点的标准问、标准答案、答案维度等信息。这样的处理方式虽然可以精准的填写数据,但人工工作量极大,一人一天整理的极限不超过200条知识。

对于知识点较少的目标用户而言,这样的建设速度和工作量尚且还能接受。但是,对于知识点庞大的目标用户而言,现有人工提取知识点的处理方式就显得无能为力,导致知识点数量庞大的目标用户无法建设知识点,或者致电建设速度极慢、人工工作量巨大。



技术实现要素:

本发明解决的技术问题是如何实现对知识点的自动爬取。

为解决上述技术问题,本发明实施例提供一种知识点的爬取方法,所述知识点至少包括标准问和标准答案,所述爬取方法包括:确定目标爬取内容;根据待爬取的知识分类确定对应的爬虫条件,所述爬虫条件至少用于指示第一位置以及第二位置,所述第一位置为所述标准问在所述目标爬取内容中的位置,所述第二位置为所述标准答案在所述目标爬取内容中的位置;根据所述爬虫条件遍历所述目标爬取内容,以至少在所述目标爬取内容的第一位置和第二位置提取信息并生成所述知识点。

可选的,所述确定目标爬取内容包括:接收爬虫指令,所述爬虫指令包括所述待爬取的知识分类;根据所述待爬取的知识分类确定关联的预设知识分类集合,所述预设知识分类集合包含至少一个目标爬取网页的网页地址、开始页和结束页,不同的预设知识分类集合关联不同的候选知识分类,所述待爬取的知识分类选取自所述候选知识分类;根据所述预设知识分类集合确定所述目标爬取内容。

可选的,所述待爬取的知识分类与所述爬虫条件的对应关系是通过预设知识分类集合指示的,不同的预设知识分类集合关联不同的候选知识分类,对于每一预设知识分类集合,所述预设知识分类集合指示关联的候选知识分类对应的爬虫条件,所述待爬取的知识分类选取自所述候选知识分类。

可选的,当多个所述候选知识分类对应同一爬虫条件时,所述多个候选知识分类各自关联的所述预设知识分类集合包括第一预设知识分类集合以及第二预设知识分类集合,其中,所述第一预设知识分类集合指示所述爬虫条件,所述第二预设知识分类集合包含沿用指示,所述沿用指示用于指示沿用所述第一预设知识分类集合指示的爬虫条件。

可选的,当多个所述候选知识分类具有上下级从属关系时,上级候选知识分类关联的所述预设知识分类集合包含下级候选知识分类关联的所述预设知识分类集合,以及所述下级候选知识分类对应的爬虫条件。

可选的,所述知识点还包括所述标准问和/或所述标准答案的属性信息,所述爬虫条件还用于指示第三位置,所述第三位置为所述标准问和/或所述标准答案的属性信息在所述目标爬取内容中的位置;所述根据所述爬虫条件遍历所述目标爬取内容,以至少在所述目标爬取内容中的第一位置和第二位置分别提取信息并生成所述知识点包括:在所述目标爬取内容中的第一位置提取信息作为所述标准问;在所述目标爬取内容中的第二位置提取信息作为所述标准答案;在所述目标爬取内容中的第三位置提取信息作为所述标准问和/或所述标准答案的属性信息;将提取得到的所述标准问、所述标准答案以及为所述标准问和/或所述标准答案的属性信息封装得到所述知识点。

可选的,所述第一位置和所述第二位置是基于所述目标爬取内容的文本字符串确定的。

为解决上述技术问题,本发明实施例还提供一种知识点的爬取装置,所述知识点至少包括标准问和标准答案,所述爬取装置包括:第一确定模块,用于确定目标爬取内容;第二确定模块,用于根据待爬取的知识分类确定对应的爬虫条件,所述爬虫条件至少用于指示第一位置以及第二位置,所述第一位置为所述标准问在所述目标爬取内容中的位置,所述第二位置为所述标准答案在所述目标爬取内容中的位置;生成模块,用于根据所述爬虫条件遍历所述目标爬取内容,以至少在所述目标爬取内容的第一位置和第二位置提取信息并生成所述知识点。

为解决上述技术问题,本发明实施例还提供一种存储介质,其上存储有计算机指令,所述计算机指令运行时执行上述方法的步骤。

为解决上述技术问题,本发明实施例还提供一种终端,包括存储器和处理器,所述存储器上存储有能够在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行上述方法的步骤。

与现有技术相比,本发明实施例的技术方案具有以下有益效果:

本发明实施例提供一种知识点的爬取方法,所述知识点至少包括标准问和标准答案,所述爬取方法包括:确定目标爬取内容;根据待爬取的知识分类确定对应的爬虫条件,所述爬虫条件至少用于指示第一位置以及第二位置,所述第一位置为所述标准问在所述目标爬取内容中的位置,所述第二位置为所述标准答案在所述目标爬取内容中的位置;根据所述爬虫条件遍历所述目标爬取内容,以至少在所述目标爬取内容的第一位置和第二位置提取信息并生成所述知识点。

较之现有纯人工进行知识点提取和建设的方式,本发明实施例的方案能够实现对知识点的自动爬取,并且数据抓取精度高,利于解决针对知识点数量庞大的网站无法提取知识点或知识点提取速度慢、人工工作量巨大的问题。具体而言,基于爬虫条件指示组成知识点的标准问和标准答案各自在目标爬取内容中的具体位置,使得基于爬虫工具自动从目标爬取内容中爬取得到知识点成为可能。进一步地,爬虫条件与知识分类可以存在一一对应的关系,使得根据当前待爬取的知识分类能够确定较为合适的爬虫条件,以提高对知识点的爬取精准度。

进一步,所述待爬取的知识分类与所述爬虫条件的对应关系是通过预设知识分类集合指示的,不同的预设知识分类集合关联不同的候选知识分类,对于每一预设知识分类集合,所述预设知识分类集合指示关联的候选知识分类对应的爬虫条件,所述待爬取的知识分类选取自所述候选知识分类。由此,根据待爬取的知识分类从多个预设知识分类集合中选择关联的预设知识分类集合,进而基于选取的预设知识分类集合确定对应的爬虫条件。采用本实施例的方案,爬虫条件和预设知识分类集合可以独立记录和存储,便于对其中任一内容进行更新,并且,能够充分利用存储空间。进一步地,在实际使用过程中,可以根据需要灵活调整预设知识分类集合与候选知识分类的关联关系,无需删除原始的预设知识分类集合后再替换成新的。

附图说明

图1是本发明实施例的一种知识点的爬取方法的流程图;

图2是图1中步骤s101的一个具体实施方式的流程图;

图3是本发明实施例的一种知识点的爬取装置的结构示意图;

图4是本发明实施例的一个典型应用场景的示意图。

具体实施方式

如背景技术所言,现有技术在进行知识点建设时,仍采用人工提取的方式,无法满足知识点数量庞大的目标用户的知识点建设需求。

为解决上述技术问题,本发明实施例提供一种知识点的爬取方法,所述知识点至少包括标准问和标准答案,所述爬取方法包括:确定目标爬取内容;根据待爬取的知识分类确定对应的爬虫条件,所述爬虫条件至少用于指示第一位置以及第二位置,所述第一位置为所述标准问在所述目标爬取内容中的位置,所述第二位置为所述标准答案在所述目标爬取内容中的位置;根据所述爬虫条件遍历所述目标爬取内容,以至少在所述目标爬取内容的第一位置和第二位置提取信息并生成所述知识点。

本发明实施例的方案能够实现对知识点的自动爬取,并且数据抓取精度高,利于解决针对知识点数量庞大的网站无法提取知识点或知识点提取速度慢、人工工作量巨大的问题。具体而言,基于爬虫条件指示组成知识点的标准问和标准答案各自在目标爬取内容中的具体位置,使得基于爬虫工具自动从目标爬取内容中爬取得到知识点成为可能。进一步地,爬虫条件与知识分类可以存在一一对应的关系,使得根据当前待爬取的知识分类能够确定较为合适的爬虫条件,以提高对知识点的爬取精准度。

为使本发明的上述目的、特征和有益效果能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。

图1是本发明实施例的一种知识点的爬取方法的流程图。本实施例的方案可以应用于用户侧,如由用户侧的服务器执行。例如,所述服务器可以安装有爬虫工具,所述爬虫工具的爬虫引擎通过执行本实施例的方案来实现对知识点的自动爬取。

具体地,所述知识点至少可以包括标准问和标准答案。

在一个具体实施中,知识点可以是由标准问和标准答案组成的对(pair),一组标准问和标准答案可以形成一个知识点。相应的,采用本实施例的方案,所述爬虫引擎可以从目标爬取内容中自动提取出能够组成对的标准问和标准答案,并将两者形成知识点进行存储和记录。

当所述目标爬取内容中包括多个标准问和多个标准答案时,采用本实施例所述方案的所述爬虫引擎可以确定每一标准问对应的标准答案,进而自动爬取得到多个知识点。

在一个具体实施中,知识点还可以包括属性信息,例如,目标爬取内容针对知识点的编辑时间、编辑者等附加信息。相应的,采用本实施例的方案,所述爬虫引擎可以从所述目标爬取内容中自动提取出能够组成对的标准问和标准答案,以及所述标准问和/或标准答案的属性信息,并将这些信息形成知识点进行存储和记录。

进一步地,参考图1,本实施例所述知识点的爬取方法可以包括如下步骤:

步骤s101,确定目标爬取内容;

步骤s102,根据待爬取的知识分类确定对应的爬虫条件,所述爬虫条件至少用于指示第一位置以及第二位置,所述第一位置为所述标准问在所述目标爬取内容中的位置,所述第二位置为所述标准答案在所述目标爬取内容中的位置;

步骤s103,根据所述爬虫条件遍历所述目标爬取内容,以至少在所述目标爬取内容的第一位置和第二位置提取信息并生成所述知识点。

在一个具体实施中,所述目标爬取内容可以包括网站维度的内容,如网站的一个或多个页面上发布的信息。

所述网站可以具有较固定的知识规则,换言之,所述网站的结构较清晰,利于所述爬虫引擎按照对应的爬虫条件精准爬取知识点。例如,政府官网等具有多级知识分类的网站的结构通常较清晰,所述知识分类可以包括热点、实事、查询等,每一知识分类均可以包括多级目录,采用本实施例的方案,所述爬虫引擎可以爬到最底层的子目录以提取该分类的所有知识点。其中,多级目录可以理解为具有上下级从属关系的多个知识分类。

在一个具体实施中,参考图2,所述步骤s101可以包括如下步骤:

步骤s1011,接收爬虫指令,所述爬虫指令包括所述待爬取的知识分类;

步骤s1012,根据所述待爬取的知识分类确定关联的预设知识分类集合,所述预设知识分类集合包含至少一个目标爬取网页的网页地址、开始页和结束页,不同的预设知识分类集合关联不同的候选知识分类,所述待爬取的知识分类选取自所述候选知识分类;

步骤s1013,根据所述预设知识分类集合确定所述目标爬取内容。

本文中出现的“候选知识分类”可以指,可供选择的知识分类。例如,可以预先遍历网站并将所述网站包括的知识分类确定为所述候选知识分类,确定每一候选知识分类关联的预设知识分类集合。用户可以从所述多个候选知识分类中选择一个或多个作为所述待爬取的知识分类。响应于接收到所述待爬取的知识分类的爬虫指令,所述爬虫引擎可以根据用户本次指示的待爬取的知识分类确定关联的预设知识分类集合,进而确定目标爬取内容。

在一个具体实施中,可以预先确定多个候选知识分类,以及每一候选知识分类关联的预设知识分类集合,每一预设知识分类集合可以存储为.json格式的文件。

例如,可以将多个所述预设知识分类集合,以及每一预设知识分类集合与候选知识分类的关联关系存储于所述服务器的预设存储空间。在获取所述待爬取的知识分类后,可以访问所述预设存储空间以获取与所述待爬取的知识分类关联的预设知识分类集合。

在一个具体实施中,所述不同的预设知识分类集合可以指示同一网站的不同知识分类下的网页。

在一个变化例中,当同一网站的同一知识分类具有多级从属的知识分类时,也即,当同一知识分类下具有多级目录时,所述多级从属的知识分类中的每一知识分类可以对应一预设知识分类集合。

在一个变化例中,所述不同的预设知识分类集合可以指示多个网站的不同知识分类下的网站,不同网站的相同知识分类下的网页可以合并在同一预设知识分类集合中。

在一个具体实施中,所述待爬取的知识分类与所述爬虫条件的对应关系可以是通过预设知识分类集合指示的。

例如,所述预设知识分类集合可以包括所述爬虫条件的标识,其中,所述标识可以用于指示所述预设知识分类集合关联的候选知识分类对应的爬虫条件。

例如,所述爬虫条件可以存储为.js格式的文件,所述标识可以为所述爬虫条件的文件名称。

在一个具体实施中,所述爬虫条件也可以存储于所述预设存储空间。

在一个具体实施中,所述爬虫条件和预设知识分类集合可以分别存储于所述预设存储空间的不同位置。

在一个具体实施中,对于网站维度,所述目标爬取内容可以是开始页至结束页的所有网页上的所有文本信息。所述文本信息可以是网页的源代码。

在一个具体实施中,所述第一位置和所述第二位置可以是基于所述目标爬取内容的文本字符串确定的。

具体地,对于网站维度的目标爬取内容,从源代码的角度而言,所述网站可以包括多个html标签和/或java名称,不同的html标签或不同的java名称对应不同的页面内容。相应的,所述爬虫条件可以指示从所述网站的特定html标签或java名称下可以提取得到标准问,此特定html标签或java名称即为所述第一位置;以及,从所述网站的特定html标签或java名称下可以提取得到对应的标准答案,此特定html标签或java名称即为所述第二位置。

例如,所述目标爬取内容为目标爬取网页的源代码,所述第一位置可以是源代码中标题(title)标签后的内容,所述第二位置可以是源代码中文本(text)标签后的内容。

在一个具体实施中,不同的候选知识分类下网页的页面结构可能存在差异,因而,本实施例的方案针对每一候选知识分类确定对应的爬虫条件,使得针对特定待爬取的知识分类的知识点爬取精度得到有效保障。

在一个具体实施中,当多个所述候选知识分类对应同一爬虫条件时,所述多个候选知识分类各自关联的所述预设知识分类集合可以包括第一预设知识分类集合以及第二预设知识分类集合,其中,所述第一预设知识分类集合可以指示所述爬虫条件,所述第二预设知识分类集合可以包含沿用指示,所述沿用指示可以用于指示沿用所述第一预设知识分类集合指示的爬虫条件。

例如,由于页面结构类似,“时事要闻”和“政府规划”这两个候选知识分类可以对应同一爬虫条件。为降低数据存储量,可以在“时事要闻”关联的预设知识分类集合中指示所述爬虫条件,而在“政府规划”关联的预设知识分类集合中通过所述沿用指示的方式指示本预设知识分类沿用“时事要闻”候选知识分类对应的爬虫条件。此时,“时事要闻”关联的预设知识分类集合即为所述第一预设知识分类集合,“政府规划”关联的预设知识分类集合即为所述第二预设知识分类集合。

又例如,具有从属关系的多个候选知识分类可以对应同一爬虫条件。相应的,作为一级目录的候选知识分类关联的预设知识分类集合可以为所述第一预设知识分类集合,作为该一级目录下属的所有次级目录的候选知识分类关联的预设知识分类集合均可以作为所述第二预设知识分类集合。当所述目标爬取内容为次级目录的候选知识分类下的目标爬取网页时,根据包含于关联的第二预设知识分类集合中的沿用指示,可以沿用一级目录的候选知识分类对应的爬虫条件对所述目标爬取网页进行知识点爬取。

在一个具体实施中,当多个所述候选知识分类具有上下级从属关系时,上级候选知识分类关联的所述预设知识分类集合可以包含下级候选知识分类关联的所述预设知识分类集合,以及所述下级候选知识分类对应的爬虫条件。

例如,一级目录的候选知识分类(即所述上级候选知识分类)关联的所述预设知识分类集合可以包括:次级目录的候选知识分类(即所述下级候选知识分类关)关联的所述预设知识分类集合的文件名称,以及所述次级目录的候选知识分类对应的爬虫条件。

当一级目录下有多个次级目录时,类似的,次级目录下还可以具有三级、四级目录,则所述一级目录的候选知识分类关联的所述预设知识分类集合可以包括所有下属所有子目录关联的预设知识分类集合的文件名称以及各自对应的爬虫条件。

不同的下级候选知识分类可以对应不同的爬虫条件。

多个下级候选知识分类中的部分下级候选知识分类可以对应同一爬虫条件,其余部分下级候选知识分类可以共同对应另一爬虫条件。

在一个具体实施中,通过在上级候选知识分类关联的所述预设知识分类集合中记录下级候选知识分类关联的所述预设知识分类集合,以及所述下级候选知识分类对应的爬虫条件,当所述爬虫指令包含的所述待爬取的知识分类为所述上级候选知识分类时,在爬取所述一级目录的目标爬取网页后,还可以基于下级候选知识分类的相关信息,进一步爬取所述一级目录下述子目录的网页上的知识点。

在一个具体实施中,当所述知识点还包括所述标准问和/或所述标准答案的属性信息时,所述爬虫条件还可以用于指示第三位置,所述第三位置为所述标准问和/或所述标准答案的属性信息在所述目标爬取内容中的位置。例如,所述第三位置可以为所述目标爬取网页的源代码中的时间戳信息。

所述步骤s103可以包括步骤:在所述目标爬取内容中的第一位置提取信息作为所述标准问;在所述目标爬取内容中的第二位置提取信息作为所述标准答案;在所述目标爬取内容中的第三位置提取信息作为所述标准问和/或所述标准答案的属性信息;将提取得到的所述标准问、所述标准答案以及为所述标准问和/或所述标准答案的属性信息封装得到所述知识点。

在一个具体实施中,在第一位置、第二位置和第三位置上执行提取操作的顺序可以互换,三个提取操作还可以是同步执行的。

由上,采用本实施例的方案,能够实现对知识点的自动爬取,并且数据抓取精度高,利于解决针对知识点数量庞大的网站无法提取知识点或知识点提取速度慢、人工工作量巨大的问题。

具体而言,基于爬虫条件指示组成知识点的标准问和标准答案各自在目标爬取内容中的具体位置,使得基于爬虫工具自动从目标爬取内容中爬取得到知识点成为可能。

进一步地,爬虫条件与知识分类可以存在一一对应的关系,使得根据当前待爬取的知识分类能够确定较为合适的爬虫条件,以提高对知识点的爬取精准度。

进一步地,爬虫条件和预设知识分类集合可以独立记录和存储,便于对其中任一内容进行更新,并且,能够充分利用存储空间。

进一步地,在实际使用过程中,可以根据需要灵活调整预设知识分类集合与候选知识分类的关联关系,无需删除原始的预设知识分类集合后再替换成新的。

实验表明,通过采用本实施例所述多线程爬虫技术,一台服务器上每分钟能够获取1000条左右知识点。其中,所述服务器的配置可以包括:8g内存、cpu核数为4核。

本实施例所述方案在问题-答案对的知识点爬取场景中效果更优,爬取得到的知识点可以直接入库作为机器人知识点存储。而现有技术所采用的爬虫工具由于范围太广,是无法做到这一点的。

图3是本发明实施例的一种知识点的爬取装置的结构示意图。本领域技术人员理解,本实施例所述知识点的爬取装置3(可简称为爬取装置3)可以用于实施上述图1和图2所示实施例中所述的方法技术方案。

具体地,所述知识点至少可以包括标准问和标准答案。

更为具体地,在本实施例中,参考图3,所述爬取装置3可以包括:第一确定模块31,用于确定目标爬取内容;第二确定模块32,用于根据待爬取的知识分类确定对应的爬虫条件,所述爬虫条件至少用于指示第一位置以及第二位置,所述第一位置为所述标准问在所述目标爬取内容中的位置,所述第二位置为所述标准答案在所述目标爬取内容中的位置;生成模块33,用于根据所述爬虫条件遍历所述目标爬取内容,以至少在所述目标爬取内容的第一位置和第二位置提取信息并生成所述知识点。

关于所述爬取装置3的工作原理、工作方式的更多内容,可以参照上述图1和图2中的相关描述,这里不再赘述。

在一个典型的应用场景中,参考图4,用户可以输入爬虫指令,所述爬虫指令可以包括待爬取的知识分类。

响应于接收到所述爬虫指令,所述爬虫引擎41可以执行操作s1,以根据所述待爬取的知识分类查找关联的预设知识分类集合43。

所述爬虫引擎41可以根据所述预设知识分类集合43确定目标爬取网页。

进一步地,根据所述预设知识分类集合43指示的爬虫条件42,所述爬虫引擎41可以执行操作s2,以调用所述爬虫条件42,所述爬虫条件42可以是一函数,将所述目标爬取网页上所有的文本信息输入所述爬虫条件42,由所述爬虫条件42处理输入的文本信息,将位于第一位置的文本内容提取为标准问,将位于第二位置的文本内容提取为标准答案,并封装成知识点返回至所述爬虫引擎41。

当所述目标爬取网页包含多个页面时,可以一页一页地进行提取处理。

响应于接收到包含有提取到的知识点的爬虫结果,所述爬虫引擎41可以执行操作s3,以将爬虫结果存入知识库44。

当所述爬虫指令包括多个待爬取的知识分类时,所述爬虫引擎41可以采用多线程处理的方式,获取每一待爬取的知识分类关联的预设知识分类集合43,然后并行处理各待爬取的知识分类关联的预设知识分类集合43。

进一步地,本发明实施例还公开一种存储介质,其上存储有计算机指令,所述计算机指令运行时执行上述图1和图2所示实施例中所述的方法技术方案。优选地,所述存储介质可以包括诸如非挥发性(non-volatile)存储器或者非瞬态(non-transitory)存储器等计算机可读存储介质。所述存储介质可以包括rom、ram、磁盘或光盘等。

进一步地,本发明实施例还公开一种终端,包括存储器和处理器,所述存储器上存储有能够在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行上述图1和图2所示实施例中所述的方法技术方案。优选地,所述终端可以是服务器。

虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1