我正在分析skype屏幕截图。手头的任务是从可用的聊天截图中找出谁在当前对话中说了什么以及在什么时间说了什么。
如果我只是在图像上运行ocr引擎,它没有给我关于谁从可用的文本中说了什么的值。
img = requests.get(url)
if img.status_code == 200:
img = Image.open(StringIO(img.content))
img = process_image(img)
img = img.resize((int(img.size[0] * 2), int(img.size[1] * 2)),Image.ANTIALIAS)
text = pytesseract.image_to_string(img)
这里的文本只会给我skype窗口的所有文本内容,但我无法识别谁说了什么。
唯一可观察到的突出的独特细节是我的消息在蓝色矩形中突出显示,而我收到的消息是灰色的。
我如何识别谁发送了什么消息,在什么时间发送的?
让更有意义的一点,我为什么这样做;我进一步计划分析从截图中提取的文本,并将其分类为两种不同类型的对话(无论是我开始的对话,还是其他人)。
例如:-如果这是skype截图:https://drive.google.com/open?id=0B-oewG7CW8ozTWx4U280bEFqY1E
根据最后一条消息和时间戳,我发送了一条消息,开始了一段对话。
对于这个例子:-如果这是截图https://drive.google.com/open?id=0B-oewG7CW8ozaE1kS3dKUU4wMHc
另一个人开始了谈话。
[编辑]:我真的很抱歉,我忘了说我没有访问skype聊天记录。我只是有一大堆skype截图需要分析。
你宁愿使用skype的数据库文件
main.db
文件实际上包含了这些对话,并且包含了您想要的所有信息。
使用一个简单的sql查询,你会得到你想要的在任何时间。
sqlite3 path/to/main.db "select * from messages where dialog_partner="partnerusername";"
我相信skype会自动在你电脑的某个地方保存聊天记录。您可以打开文件并解析它以找到与您相关的信息。
我的电脑上没有任何聊天记录,因为我在工作,我的电脑上没有安装skype,但我知道,如果你复制并粘贴你的聊天内容到一个文本文件中,它会看起来像这样:
[0:00:00 AM] user1: xxxxxxx
[0:00:00 AM] user2: xxxxxxx
我不能100%确定,如果这就是它到底会是什么样子,因为我现在正在内存工作。当然,这只是一个模板。它将显示消息的时间戳、用户名和他们的消息。
要确定谁开始了对话,您可以读取文件并解析行,特别是查看时间戳。我相信你可以通过这种方式找到帮助你的东西。也许你可以找到两个消息之间有很大时间间隔的例子,哪个消息先出现就可以确定是谁开始了对话。