在我的代码中
from PIL import Image
import pytesseract
print(pytesseract.image_to_string(Image.open('test.png')))
我从here得到的结果(仅来自问题和答案)是:
Which team surrendered
the biggest lead in Super
Bowl history?
Atlanta Falcons
Denver Broncos
Buffalo Bills
有没有办法说第1,第2和第3行是问题,然后第5行是答案1等等?
答案 0 :(得分:1)
根据图像之间的数据差异,这应该有效。如果你总是有'?'拆分。
image_text=pytesseract.image_to_string(Image.open('test.png'))
text_list=image_text.split('?')
这将为您提供包含2个元素的列表。首先是在所有人之前?之后的第二个。如:
print(text_list)
['Which team surrendered\nthe biggest lead in Super\nBowl history',
'\n\nAtlanta Falcons\n\nDenver Broncos\n\nBuffalo Bills']
从这里你可以定义q和a。作为问答。
q = text_list[0]
a = [a for a in text_list[1].split('\n') if a]
上面的逻辑将保留问题的新行,将其格式化为:
Which team surrendered
the biggest lead in Super
Bowl history?
然后变量a
将填充一个答案列表,列表中没有任何空行。所以print(a)
会返回:
['Atlanta Falcons', 'Denver Broncos', 'Buffalo Bills']
请记住,此修复程序取决于其中包含?
的文本,以定义字符串的哪一半是问题,哪个是答案。