本发明涉及一种论坛文本的提取,特别涉及一种通用的论坛文本提取。
背景技术:
模式识别:模式识别是指对表征事物或现象的各种形式的(数值的、文字的和逻辑关系的)信息进行处理和分析,以对事物或现象进行描述、辨认、分类和解释的过程。
论坛文本提取:论坛文本提取指的是去除网页中的冗余部分,只对论坛中最核心的内容进行提取,其中包括发帖者和回复者的所发的个人信息、文字内容、以及内容发表的时间。现有的论坛文本提取技术只能针对某个特定的网页进行提取。
最小编辑距离:其目的是找出两个字符串之间需要改动多少个字符后变成一致。该方法使用了动态规划的算法策略,该问题具备最优子结构,最小编辑距离包含子最小编辑距离,有下列的公式:
d[i,j]:表示字符串x[0,1,2,3,i]与字符串x[0,1,2,3,j]之间的距离
xi:表示字符串x[0,1,2,3,i]中的第i个元素
xj:表示字符串x[0,1,2,3,i]中的第j个元素
技术实现要素:
本发明的目的在于克服现有技术的缺点与不足,提供一种基于块、模式识别以及行文本的通用论坛提取方法。通过处理后的html文本匹配生成一个模式库,然后依据时间对网页进行分块并在块中利用模式对文本进行提取,同时模式是可以利用现有模式生成新的模式来达到高正确率的效果,因此这种算法具有通用性以及自我学习的特点。使用时间以及行文本密度对网页进行分块对论坛的html文件进行分块,利用html文本匹配生成模式对分块正文内容进行提取。模式可以在匹配的过程中进行自我更新。
本发明克服了传统论坛文本提取方法不具通用性或通用性极低的缺点,本发明的通用性使得无需针对不同论坛的而设计不同的方法进行内容的提取。而且克服了传统基于dom树通用提取文本方法处理速度慢的问题。论坛文本提取的通用性提升了了10%~30%;性能相对传统文本的提取提升了约20%。
附图说明
图1方法流程图。
具体实施方式
下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。
基于块,模式识别以及行文本的通用论坛提取方法,如图1所示,具体包括如下步骤:
第一步:利用正则表达式去掉所有的网页标签,脚本函数以及空行。
第二步:根据已经提供的目标数据,不断进行模式匹配,找出目标字段的前面和后面的文本,找出的前后字符串就是该目标字段的模式。
第三步:保存模式以及目标网站url到文件中。
第四步:根据输入的url匹配到模式库中最小编辑距离最短的url,同时找到这种模式。
第五步:根据时间以及行文本密度进行分块,并根据模式提取论坛网页中的正文,同时找到日期。
第六步:判断每个块中的正文内容,发表作者是否为空,如果两项一项为空,则为错误,计算总的错误率。
第七步:如果错误率高于用户输入的阈值,回到模式库中,找到模式库中海明距离仅短于上一个模式的url。回到第四步。如果重新匹配次数等于四次,执行第八步。如果重新匹配次数少于四次,回到第九步。
第八步:对前四次模式的不同目标字段的子模式的错误率进行排序,分别选取错误率最低的子模式生成一个新的模式,url为输入url。回到第四步。
第九步:输出提取正文信息到文件。
生成的模式库可保存在一个文件当中,利用python以及urllib、re、jsonlevenshtein、http库按照算法流程图一步一步编写即可。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。