python网页文字提取算法_python正文内容提取

平时打开一个网页,除了文章的正文内容,通常会有一大堆的导航,广告和其他方面的信息。本博客的目的,在于说明如何从一个网页中提取出文章的正文内容,而过渡掉其他无关的的信息。

本方法是基于文本密度的方法,最初的想法来源于哈工大的《基于行块分布函数的通用网页正文抽取算法》,本文基于此进行一些小修改。

约定:

本文基于网页的不同行来进行统计,因此,假设网页内容是没有经过压缩的,就是网页有正常的换行的。

有些新闻网页,可能新闻的文本内容比较短,但其中嵌入一个视频文件,因此,我会给予视频较高的权重;这同样适用于图片,这里有一个不足,应该是要根据图片显示的大小来决定权重的,但本文的方法未能实现这一点。

由于广告,导航这些非正文内容通常以超链接的方式出现,因此文本将给予超链接的文本权重为零。

这里假设正文的内容是连续的,中间不包含非正文的内容,因此实际上,提取正文内容,就是找出正文内容的开始和结束的位置。

步骤:

首先清除网页中CSS,Javascript,注释,Meta,Ins这些标签里面的内容,清除空白行。

计算每一个行的经过处理的数值(1)

计算上面得出的每行文本数的最大正子串的开始结束位置

其中第二步需要说明一下:

对于每一行,我们需要计算一个数值,这个数值的计算如下:

一个图片标签img,相当于出现长度为50字符的文本 (给予的权重),x1,

一个视频标签embed,相当于出现

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提取视频的关键帧,可以使用以下算法: 1. 首先,将视频分成一些连续的帧。可以使用OpenCV这样的库来做到这一点。 2. 计算每一帧与前一帧之间的差异。可以使用像素差异或直方图差异等方法来计算帧之间的差异。 3. 根据差异值确定关键帧。如果差异值超过一个设定的阈值,则认为该帧是关键帧。可以通过试验找到一个合适的阈值。 4. 将关键帧保存下来。可以将关键帧保存为图像文件,或将其插入到视频中。 下面是一个简单的Python代码示例,演示如何使用OpenCV库提取视频的关键帧: ``` import cv2 # 打开视频文件 cap = cv2.VideoCapture('video.mp4') # 读取第一帧 ret, frame1 = cap.read() # 初始化前一帧 prev_frame = cv2.cvtColor(frame1, cv2.COLOR_BGR2GRAY) # 设置阈值 threshold = 10000 # 提取关键帧 key_frames = [] while True: # 读取当前帧 ret, frame2 = cap.read() if not ret: break # 将当前帧转换为灰度图像 curr_frame = cv2.cvtColor(frame2, cv2.COLOR_BGR2GRAY) # 计算帧之间的差异 diff = cv2.absdiff(curr_frame, prev_frame) # 检查差异是否超过阈值 if diff.sum() > threshold: key_frames.append(frame2) # 更新前一帧 prev_frame = curr_frame # 保存关键帧 for i, key_frame in enumerate(key_frames): cv2.imwrite(f'key_frame_{i}.jpg', key_frame) # 释放视频文件 cap.release() ``` 这个代码示例打开一个名为`video.mp4`的视频文件,提取其中的关键帧,并将它们保存为图像文件。关键帧的阈值设置为`10000`,可以根据需要进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值