本发明专利技术公开了一种文本数据提取方法、系统、存储介质及终端,包括:利用python程序语言读取原始文本数据;提取所述原始文本数据中的数据标签,根据所述数据标签定位相应的文本数据并计算出数据标签的索引值;通过字符串查找算法计算起始数据标签的索引位置和结束数据标签索引位置;提取所述起始数据标签的索引位置和结束数据标签索引位置之间的文本数据。本发明专利技术能够从文本文件中提取指定数据标签的内容,提高从非结构化数据中提取数据的准确性。提高从非结构化数据中提取数据的准确性。提高从非结构化数据中提取数据的准确性。
【技术实现步骤摘要】
一种文本数据提取方法、系统、存储介质及终端
[0001]本专利技术涉及数据提取
,尤其涉及一种文本数据提取方法、系统、存储介质及终端。
技术介绍
[0002]由于业务的需求,需要从文本文件中提取想要的内容,大部分想要的数据都是非结构化数据存储的,而非结构化数据由于数据结构不规则或不完整,处理门槛高。
[0003]在以往数据的处理方式中,会将text文本内容转换成HTML,利用python中xpath包对HTML标签元素进行数据提取,当数据格式不规范时使用这种方式来提取数据会造成提取出来的数据会有缺失并且准确性不高,因为xpath是靠元素定位来提取内容它会随着页面布局的改变而改变,如果页面元素被隐藏或者元素有变动的话,就会出现页面元素定位出错,导致匹配出来的数据不准确的。要想保证从非结构化数据中提取出来的数据准确性高,需要大量的人力成本去提取,这显然是不现实的。因此,有必要设计一种支持差异化匹配的数据提取来找到相关数据。
技术实现思路
[0004]本专利技术的目的在于克服现有技术中对非结构化数据提取不准确的问题,提供了一种文本数据提取方法、系统、存储介质及终端。
[0005]本专利技术的目的是通过以下技术方案来实现的:在第一方案中,提供一种文本数据提取方法,包括以下步骤:S1、利用python程序语言读取原始文本数据;S2、提取所述原始文本数据中的数据标签,根据所述数据标签定位相应的文本数据并计算出数据标签的索引值;S3、通过字符串查找算法计算起始数据标签的索引值和结束数据标签索引值;S4、提取所述起始数据标签的索引值和结束数据标签索引值之间的文本数据。
[0006]在一个示例中,一种文本数据提取方法,所述步骤S2中利用正则表达式来提取所述文本数据中的数据标签。
[0007]在一个示例中,一种文本数据提取方法,所述步骤S3包括:S31、创建一个新的变量名label_list 用来存储步骤S2提取出来的数据内容;S32、统计变量名label_list的总长度;S33、根据所述变量名label_list的总长度生成一个指定范围内的索引值;S34、根据生成的索引范围值进行for循环,循环的结果值用变量名number临时存储;S35、在for循环外面新建一个新的变量名 new_list,用来存储步骤S34中生成的值;S36、对所述变量名 new_list进行for循环,将循环的结果用variable变量名来存
储。
[0008]在一个示例中,一种文本数据提取方法,所述根据生成的索引范围值进行for循环时,将所述label_list两两分组。
[0009]在一个示例中,一种文本数据提取方法,还包括步骤:S5、将提取的文本数据,以数据标签为key做为字段名称,以提取的数据做为内容,形成json的数据格式存储在mongodb数据库中。
[0010]在一个示例中,一种文本数据提取方法,所述利用python程序语言读取原始文本数据,包括:过滤去掉文本数据中的空格、换行符以及特殊符号。
[0011]在一个示例中,一种文本数据提取方法,在所述步骤S4和步骤S5之间还包括对提取出来的文本数据进行再次过滤,去掉内容前后的空格、换行符以及特殊符号。
[0012]在第二方案中,提供一种文本数据提取系统,所述系统包括:原始文本数据读取模块,用于利用python程序语言读取原始文本数据;数据标签读取模块,用于提取所述原始文本数据中的数据标签,根据所述数据标签定位相应的文本数据并计算出数据标签的索引值;索引位置查找模块,通过字符串查找算法计算起始数据标签的索引值和结束数据标签索引值;文本数据提取模块,用于提取所述起始数据标签的索引值和结束数据标签索引值之间的文本数据。
[0013]在第三方案中,提供一种存储介质,其上存储有计算机指令,所述计算机指令运行时执行任意一项所述文本数据提取方法的步骤。
[0014]在第四方案中,提供一种终端,包括存储器和处理器,存储器上存储有可在处理器上运行的计算机指令,处理器运行计算机指令时执行任意一项所述文本数据提取方法的步骤。
[0015]需要进一步说明的是,上述各选项对应的技术特征在不冲突的情况下可以相互组合或替换构成新的技术方案。
[0016]与现有技术相比,本专利技术有益效果是:本专利技术通过提取所述原始文本数据中的数据标签,根据所述数据标签定位相应的文本数据并计算出数据标签的索引值;通过字符串查找算法计算起始数据标签的索引值和结束数据标签索引值,提取起始数据标签的索引值和结束数据标签索引值之间的文本数据,就得到需要的内容,本专利技术数据的匹配定位准确,能够从文本文件中提取指定数据标签的内容,提高从非结构化数据中提取数据的准确性。
附图说明
[0017]图1为本专利技术实施例示出的一种文本数据提取方法的流程示意图;图2为本专利技术实施例示出的托伐普坦片药品说明书;图3为本专利技术实施例示出的具体查找算法流程图;图4为本专利技术实施例示出的提取数据存储以及清洗的流程示意图。
具体实施方式
[0018]下面结合附图对本专利技术的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0019]此外,下面所描述的本专利技术不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
[0020]在给出本专利技术的具体实施例前,对其中涉及到的名词进行解释:python由荷兰数学和计算机科学研究学会的Guido van Rossum 于1990 年代初设计,作为一门叫做ABC语言的替代品。python提供了高效的高级数据结构,还能简单有效地面向对象编程。python语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的编程语言。
[0021]list也叫列表python中最常用的序列数据类型之一,列表中的元素是有序可重复的,列表中的元素可以是不同数据类型,甚至可以嵌套。
[0022]mongodb数据库是一个基于分布式文件存储的数据库,由C++语言编写,它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
[0023]参见图1,在一示例性实施例中,提供一种文本数据提取方法,包括以下步骤:S1、利用python程序语言读取原始文本数据;S2、提取所述原始文本数据中的数据标签,根据所述数据标签定位相应的文本数据并计算出数据标签的索引值;S3、通过字符串查找算法计算起始数据标签的索引值和结束数据标签索引值;S4、提取所述起始数据标签的索引值和结束数据标签索引值之间的文本数据。
[0024]具体地,以常见的药品说明书为例,药品说明书本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种文本数据提取方法,其特征在于,包括以下步骤:S1、利用python程序语言读取原始文本数据;S2、提取所述原始文本数据中的数据标签,根据所述数据标签定位相应的文本数据并计算出数据标签的索引值;S3、通过字符串查找算法计算起始数据标签的索引值和结束数据标签索引值;S4、提取所述起始数据标签的索引值和结束数据标签索引值之间的文本数据。2.根据权利要求1所述的一种文本数据提取方法,其特征在于,所述步骤S2中利用正则表达式来提取所述文本数据中的数据标签。3.根据权利要求1所述的一种文本数据提取方法,其特征在于,所述步骤S3包括:S31、创建一个新的变量名label_list 用来存储步骤S2提取出来的数据内容;S32、统计变量名label_list的总长度;S33、根据所述变量名label_list的总长度生成一个指定范围内的索引值;S34、根据生成的索引范围值进行for循环,循环的结果值用变量名number临时存储;S35、在for循环外面新建一个新的变量名 new_list,用来存储步骤S34中生成的值;S36、对所述变量名 new_list进行for循环,将循环的结果用variable变量名来存储。4.根据权利要求3所述的一种文本数据提取方法,其特征在于,所述根据生成的索引范围值进行for循环时,将所述label_list两两分组。5.根据权利要求1所述的一种文本数据提取方法,其特征在于,还包括步骤...
【专利技术属性】
技术研发人员:陈洪祥,关鑫,胡平,王中健,
申请(专利权)人:药融云数字科技成都有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。