gpt4 book ai didi

python |从屏幕抓取应用程序中整理出冗余文本

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:09:24 26 4
gpt4 key购买 nike

我正在编写一个屏幕抓取应用程序来监控纯文本聊天窗口。文本被添加到窗口的底部。

应用程序截取聊天窗口的屏幕截图。如果自上次截屏以来发生了更改 (new_screenshot != old_screenshot),则会保存截屏。

X 次后,所有图像合并为一张图像,其中最旧的图像在顶部。这个大图像被发送到服务器进行 OCR,并返回一串文本。

问题:如何整理多余的文字?

示例:

  • 聊天窗口高 5 行,最初是空的。
  • 解决方案必须适用于空的和非空的初始聊天窗口。
  • 可以在每个屏幕截图中添加多行。同一行可以出现多次,但绝不会连续出现两次所以仅仅去重是不够的(所以使用 sorted(set(text.split('\n'))) 是不够的)

算法输入:

1 Lorem ipsum dolor sit amet,
1 Lorem ipsum dolor sit amet,
2 conectetur adipiscing elit
1 Lorem ipsum dolor sit amet,
2 conectetur adipiscing elit
3 Mauris porttitor enim sed tincidunt interdum.
1 Lorem ipsum dolor sit amet,
2 conectetur adipiscing elit
3 Mauris porttitor enim sed tincidunt interdum.
4 Morbi elementum erat nec nulla auctor, eget porta odio aliquet.
1 Lorem ipsum dolor sit amet,
2 conectetur adipiscing elit
3 Mauris porttitor enim sed tincidunt interdum.
4 Morbi elementum erat nec nulla auctor, eget porta odio aliquet.
5 Nam aliquet velit vel elementum tristique.
2 conectetur adipiscing elit
3 Mauris porttitor enim sed tincidunt interdum。
4 Morbi elementum erat nec nulla auctor, eget porta odio aliquet。
5 Nam aliquet velit vel elementum tristique。
6 Donec ac tincidunt urna。
3 Mauris porttitor enim sed tincidunt interdum.
4 Morbi elementum erat nec nulla auctor, eget porta odio aliquet.
5 Nam aliquet velit vel elementum tristique.
6 Donec ac tincidunt urna.
7 Proin pretium, metus non porttitor lobortis, tortor sem rhoncus urna
4 Morbi elementum erat nec nulla auctor, eget porta odio aliquet.
5 Nam aliquet velit vel elementum tristique.
6 Donec ac tincidunt urna.
7 Proin pretium, metus non porttitor lobortis, tortor sem rhoncus urna
8 quis finibus leo lorem sed lacus.
5 Nam aliquet velit vel elementum tristique.
6 Donec ac tincidunt urna.
7 Proin pretium, metus non porttitor lobortis, tortor sem rhoncus urna
8 quis finibus leo lorem sed lacus.
1 Lorem ipsum dolor sit amet,

预期结果:

1 Lorem ipsum dolor sit amet,
2 conectetur adipiscing elit
3 Mauris porttitor enim sed tincidunt interdum。
4 Morbi elementum erat nec nulla auctor, eget porta odio aliquet。
5 Nam aliquet velit vel elementum tristique。
6 Donec ac tincidunt urna。
7 Proin pretium, metus non porttitor lobortis, tortor sem rhoncus urna
8 quis finibus leo lorem sed lacus。
1 Lorem ipsum dolor sit amet,

最佳答案

这是我理解您想要的代码(添加看到的新行但保留 5 行的历史记录以避免重复):

history = 5
lastSeen = dict()
result = []
for idx, line in enumerate(text.split('\n')):
if line not in lastSeen:
result.append(line)
else:
if lastSeen[line] + history < idx:
result.append(line)
lastSeen[line] = idx

关于 python |从屏幕抓取应用程序中整理出冗余文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52118889/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com