利索能及
我要发布
收藏
专利号: 2020104392426
申请人: 淮阴工学院
专利类型:发明专利
专利状态:已下证
更新日期:2026-06-16
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种基于数据挖掘的工程国家标准数据库自适应构建方法,其特征在于,具体步骤如下:(1)首先使用网络爬虫技术从预设的初始链接start_URL数据集开始广度遍历,获取与预设的start_URL相关联的建筑标准规范链接数据集standard_URL;

(2)设已爬取的数据集为visited_URL,通过BloomFilter自适应算法选取最优的哈希函数个数,将数据集standard_URL中的数据与已爬取过的数据集visited_URL进行比对,去除重复的链接,获得待爬取的数据集update_URL;

(3)对数据集update_URL中的网页进行解析,并分析得到纯文本数据集Text和图像形式的“文本+表格”混合数据集img;

(4)对混合数据集img进行识别分析,分别提取出其中的文本数据集text和表格数据集table;

(5)将text文本数据集按照顺序加入到Text数据集中,得到新的Text数据集,通过正则表达式提取其中的规范条例,存入item_text数据集中。

(6)采用数据封装的方式,将用户输入的搜索信息Input和已构建的数据库中的内容进行匹配,得到搜索结果Search_container返回给Web服务接口,提供给建筑审图专家以及数字化审图系统使用。

2.根据权利要求1所述的一种基于数据挖掘的工程国家标准数据库自适应构建方法,其特征在于,所述步骤(1)中获取与预设的start_URL相关联的建筑标准规范链接数据集standard_URL的具体步骤如下:(1.1)输入初始链接数据集start_URL,定义headers表示定制的HTTP请求头;

(1.2)在解析链接时添加定制的HTTP头部,headers={'user-agent':'Mozilla/5.0(Windows NT 10.0;WOW64)AppleWebKit/537.36(KHTML,like Gecko)Chrome/

63.0.3239.26Safari/537.36Core/1.63.6823.400QQBrowser/10.3.3117.400'};

(1.3)定义最长等待时间timeout,表示爬取网站时等待的最长时间,timeout∈N;

(1.4)定义解析网页编码encoding,用于定制解析网页所用的编码格式,encoding=“UTF-8”;

(1.5)定义网站响应状态码status,用于接收网站返回的响应状态码信息;

(1.6)定义计数器count1,令count1=0;

(1.7)若status≠200,表示服务器发生错误,则执行步骤(1.8),否则表示服务器响应正常,执行步骤(1.10);

(1.8)令count1=count1+1,执行步骤(1.9);

(1.9)若count1≥5,则抛出网站访问异常;否则执行步骤(1.2);

(1.10)定义解析后的标准列表页链接为standard_list,定义国家标准类别为category,category={category1,category2,…,categorycategoryNum},categoryn为category中第n个类别,categoryNum为数据集categoryNum中类别的总个数,n∈[1,categoryNum],standard_list,standard_list={standard_list1,standard_list2,…,standard_liststandard_listNum},standard_listn为standard_list中第n个,standard_listNum为数据集standard_list中链接的总个数,n∈[1,standard_listNum];

(1.11)定义循环变量i1用于遍历standard_list,定义len(standard_list)为standard_list集合的长度,i1∈[1,len(standard_list)],i1赋初值为1;

(1.12)如果i1≤len(standard_list),则进入步骤(1.13),否则进入步骤(1.16);

(1.13)由于国家标准在网页上是分不同类别分别存储的,通过广度遍历,standard_list记录下每一个分类下的所有国家标准规范链接;

(1.14)对每个standard_list中的链接进行完整性检查,由于部分网站源代码中的链接用的是相对路径,在浏览器中需要对链接进行拼接为绝对路径,才能正常访问该链接,对不符合HTTP规范的链接standard_listn,将standard_listn进行链接拼接后存入standard_URL数据集中standard_URL={[category1,standard_list1],[category2,standard_list2],…,[categorycategoryNum,standard_liststandard_listNum]};

(1.15)i1=i1+1,进入步骤(1.12);

(1.16)初始start_URL数据集解析完毕,得到国家标准信息standard_URL集合。

3.根据权利要求1所述的一种基于数据挖掘的工程国家标准数据库自适应构建方法,其特征在于,所述步骤(2)中获得待爬取的数据集update_URL的具体步骤如下:(2.1)通过在发送请求之前判断这个URL是不是之前爬取过,以此来判断该国家标准是否已经获取过,BloomFilter自适应算法可以通过计算来判断某项数据是否存在于集合中,定义BF是一个包含m位的数组,每一位都置为0,BF={BF1,BF2,…,BFm};

(2.2)定义循环变量i2用于遍历standard_URL,定义len(standard_URL)为standard_URL集合的长度,i2∈[1,len(standard_URL)],i2赋初值为1;

(2.3)如果i2≤len(standard_URL),则进入步骤(2.4),否则进入步骤(2.20);

(2.4)为了表达standard_URL={[category1,standard_list1],[category2,standard_list2],…,[categorycategoryNum,standard_liststandard_listNum]},standard_URLn为standard_URL中第n个,这样一个n个元素的集合,BloomFilter使用k个相互独立的哈希函数,它们分别将集合中的每个元素映射到{BF1,BF2,…,BFm}的范围中;

(2.5)BloomFilter在判断一个元素是否属于它表示的集合时会有一定的错误率,为了简化公式,用S代替standard_URL集合,用x表示集合S中的元素;

(2.6)当集合S={x1,x2,…,xn}的所有元素都被k个哈希函数映射到m位的数组中时,这个数组中某一位还是0的概率是p′,p′=(1-1/m)kn≈e-kn/m其中1/m表示任意一个哈希函数选中这一位的概率,上述公式用到了计算e时常用的近似值:(2.7)令ρ为数组中0的比例,则ρ的数学期望E(ρ)=p′,在ρ已知的情况下,要求的错误率为:(1-ρ)k≈(1-p′)k≈(1-p)k;

-kn/m k

(2.8)对上述公式进行求导可得 f=(1-e )=(1-

p)k;

(2.9)f=exp(kln(1-e-kn/m)),令g=k ln(1-e-kn/m),g取得最小值时,f也取到最小值。由于p=e-kn/m,(2.10)当p=1/2,也就是k=ln2(m/n)时,g取得最小值;

(2.11)通过爬取的S数据集个数n和预设的数组位数长度m,得出最合适的哈希函数个数k;

(2.12)定义哈希函数为h(x),x为所要判定的值,哈希函数的个数为k;

(2.13)定义循环变量j2用于遍历所有哈希函数,j2∈[1,k],j2赋初值为1;

(2.14)如果j2≤k,则进入步骤(2.15),否则进入步骤(2.17);

(2.15)对任意一个元素BFn,第i个哈希函数映射的位置hi(n)就会被置为1,i∈[1,k]。

如果一个位置多次被置为1,只有第一次会起作用,后面几次将没有作用,执行步骤((2.16);

(2.16)j2=j2+1,进入步骤(2.14);

(2.17)在判断standard_URLn是否属于这个集合时,对standard_URLn应用了k次哈希函数,如果hi(standard_URLn)的所有位置都是1,则执行步骤(2.18);

(2.18)standard_URLn存在于集合visited_URL中,执行步骤(2.19),standard_URLn不是visited_URL集合中的元素,将standard_URLn添加到update_URL中,执行步骤(2.19);

(2.19)i2=i2+1,进入步骤(2.3);

(2.20)通过BloomFilte去重完成,得到待更新数据集update_URL。

4.根据权利要求1所述的一种基于数据挖掘的工程国家标准数据库自适应构建方法,其特征在于,所述步骤(3)中得到纯文本数据集Text和图像形式的“文本+表格”混合数据集img的具体步骤如下:(3.1)定义循环变量i3用于遍历update_URL,定义len(update_URL)为update_URL集合的长度,i3∈[1,len(update_URL)],i3赋初值为1;

(3.2)如果i3≤len(update_URL),则进入步骤(3.3),否则进入步骤(3.20),i3=i3+1;

(3.3)定义source_code为网站上国家标准的源代码,通过对update_URL数据集中链接的解析获得到源代码source_code;

(3.4)对获取到的source_code进行xpath提取,获得国家标准的标准名standardname、标准编号standardnum、更新日期standarddate以及国家标准每章的链接集合chapter_URL;

(3.5)对每个chapter_URL中的链接进行完整性检查,对不符合HTTP规范的链接进行链接拼接后重新存入chapter_URL数据集中;

(3.6)定义循环变量j3用于遍历chapter_URL,定义len(chapter_URL)为chapter_URL集合的长度,j3∈[1,len(chapter_URL)],j3赋初值为1;

(3.7)如果j3≤len(chapter_URL),则进入步骤(3.8),否则进入步骤(3.2),j3=j3+1;

(3.8)通过对chapter_URL集合中链接的解析获得到国家标准每个章下的源代码chapterSC;

(3.9)定义section_URL为每节下的国家标准链接数据集,对获取到的chapterSC进行xpath提取,获得国家标准每节的链接集合section_URL;

(3.10)对每个section_URL中的链接进行完整性检查,对不符合HTTP规范的链接进行链接拼接后重新存入section_URL数据集中;

(3.11)定义循环变量k3用于遍历section_URL,定义len(section_URL)为section_URL集合的长度,k3∈[1,len(section)],k3赋初值为1;

(3.12)如果k3≤len(section_URL),则进入步骤(3.13),否则进入步骤(3.7),k3=k3+

1;

(3.13)通过对section_URL集合中链接的进行解析获得到国家标准每节的源代码sectionSC,并将该链接加入到已爬取数据集visited_URL中;

(3.14)对源代码sectionSC进行xpath提取,获得每节下的国家标准文本数据Text,以及图片地址imgURL数据集;

(3.15)定义循环变量l3用于遍历imgURL,定义len(imgURL)为imgURL集合的长度,l3∈[1,len(imgURL)],l3赋初值为1;

(3.16)如果l3≤len(imgURL),则进入步骤(3.13),否则进入步骤(3.12),l3=l3+1;

(3.17)对获得imgURL中的链接进行判断,若图片格式为jpg格式,则执行步骤(3.18),否则执行步骤(3.19);

(3.18)爬取imgURL中的图片存入本地文件添加到img数据集中;

(3.19)爬取imgURL中的图片存入本地文件后,将图片格式转换为jpg格式,添加到img数据集中;

(3.20)数据更新完毕,得到纯文本数据集Text和图片数据集img。

5.根据权利要求1所述的一种基于数据挖掘的工程国家标准数据库自适应构建方法,其特征在于,所述步骤(4)中提取出文本数据集text和表格数据集table的具体步骤如下:(4.1)将得到的图片数据集img先进行灰度化得到灰度化后的图片数据集gray_img;

(4.2)将灰度化后的gray_img是图片数据集进行二值化,得到二值化后的数据集bin_img;

(4.3)纵向腐蚀获取横向线条数据集img_transverse;

(4.4)横向腐蚀获取纵向线条数据集img_vertical;

(4.5)对分别对两次腐蚀后的线条进行加粗,进行膨胀处理,得到纵向腐蚀膨胀后的线条数据集dilate_transverse和横向腐蚀膨胀后线条数据集dilate_vertical;

(4.6)将纵向腐蚀膨胀后的线条和横向腐蚀膨胀后的线条重叠,获取表格的交点数据集points;

(4.7)循环遍历这些交点数据集,判断是否为表格顶点,如果是执行步骤(4.8),否则执行(4.11);

(4.8)将得到的顶点数据存入顶点数据集peaks={peaks1,peaks2,peaks3,peaks4};

(4.9)定义table为图像中的表格数据集,通过得到的顶点数据坐标,将图片表格部分切割开来,得到表格数据集table;

(4.10)定义text为图像中的文本数据集,去掉表格后剩下的部分利用文字识别提取出文本数据,添加到text中;

(4.11)保存在原有数据集points中。通过points与peaks计算得到每个单元格坐标,还原出表格信息,转化为excel格式。

6.根据权利要求1所述的一种基于数据挖掘的工程国家标准数据库自适应构建方法,其特征在于,所述步骤(5)中得到item_text数据集的具体步骤如下:(5.1)将图像中的文本数据集text添加到Text中;

(5.2)对Text数据集中的数据进行预处理,去掉空格和换行符得到预处理后的文本数据集clean_text;

(5.3)定义item_text,用于存放从clean_text提取出来的国家标准的条目;

(5.4)定义循环变量i5用于遍历clean_text,定义len(clean_text)为clean_text集合的长度,i5∈[1,len(clean_text)],i5赋初值为1;

(5.5)如果i5≤len(clean_text),则进入步骤(5.6),否则进入步骤(5.7),i5=i5+1;

(5.6)由于国家标准规范编写有特定的规范样式,所以通过一系列的正则表达式,能够快速准确的识别提取出每一节的每一条标准,将提取出的规范条目存入item_text;

(5.7)将得到的item_text数据集,存储到数据库中,生成建筑国家标准规范数据库。

7.根据权利要求1所述的一种基于数据挖掘的工程国家标准数据库自适应构建方法,其特征在于,所述步骤(6)中采用数据封装的方式,将用户输入的搜索信息Input和已构建的数据库中的内容进行匹配,得到搜索结果Search_container返回给Web服务接口,提供给建筑审图专家以及数字化审图系统使用的具体步骤如下:(6.1)采用数据封装方式,开放Web服务接口,提供给数字化审图系统;

(6.2)创建线程池ThreadPool;

(6.3)判断线程池ThreadPool中所有子线程是否都结束,如果结束则进入步骤(6.9),否则进入步骤(6.4);

(6.4)定义Input,用于存放用户通过Web服务接口提交的查询内容;

(6.5)定义子线程ChildThread,获取到用户查询内容Input;

(6.6)定义result_container,用于存放在数据库中查询到有关Input的结果;

(6.7)调用国家标准数据库接口API,得到查询结果数据集result_container;

(6.8)结束该子线程ChildThread,进入步骤(6.3);

(6.9)关闭线程池ThreadPool;

(6.10)将查询到的数据集result_container返回给Web接口。