【问题标题】:Extracting text written in hindi from pdf in python [duplicate]从python中的pdf中提取用印地语编写的文本[重复]
【发布时间】:2016-06-25 09:03:53
【问题描述】:

我想从 pdf 文档中提取以印地语输入的文本。我已附上我正在处理的 image of the sample page

我尝试使用 pdfminer 从中获取文本,但文本是乱码(可能是由于印地语字体)

现在我正在考虑将页面分成三部分,然后将每个部分分成两部分(分隔英文和印地文文本),然后在每一半上运行 ocr 以获取文本,但唯一的问题是我不知道使用的字体印地语,所以我可能会再次收到乱码。

我的问题是,有没有更好的方法来处理印地语字体?如何找到字体名称?

【问题讨论】:

  • 能否添加指向原始 PDF 的链接?
  • @Gaurav : 你有没有机会得到上述问题的解决方案?
  • @NiksJain 不,我没有
  • 提取字体可以使用pdfminer for python2pdfminer.six for python3,如下所示:extracting font name

标签: python pdf ocr hindi pdfminer


【解决方案1】:

我在您的 PDF 上尝试了以下内容,它似乎提取了很多文本,我猜它可能不是最好的布局,但我无法判断。

from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from pdfminer.pdfpage import PDFPage
from cStringIO import StringIO

def convert_pdf_to_txt(path):
    rsrcmgr = PDFResourceManager()
    retstr = StringIO()
    codec = 'utf-8'
    laparams = LAParams()
    device = TextConverter(rsrcmgr, retstr, codec=codec, laparams=laparams)

    with open(path, 'rb') as fp:
        interpreter = PDFPageInterpreter(rsrcmgr, device)
        password = ""
        caching = True
        pagenos = set()

        for page in PDFPage.get_pages(fp, pagenos, password=password,caching=caching, check_extractable=True):
            interpreter.process_page(page)

        text = retstr.getvalue()

    device.close()
    retstr.close()
    return text

print convert_pdf_to_txt("Electoral roll - Faizabad.pdf")

它显示为utf-8,因此您必须确保您的输出控制台能够使用它进行显示。

例如:

भभग ससखखभककल मतदभतभ 11 1.रजजरभ आसशशकपपथममक ववददपलद रजजरप - सपमपनद779 420 359 0 779ननरभरचक नभमभरलल 2014 0S24उततर पददशवरधभन सभभ कदत कक ससखखभ ,नभम र आरकण सससनत:ललक सभभ कदत कक ससखखभ ,नभम र आरकण सससनत: 1 . पकनरलकण कभ वरररणपकनरलकण कभ ररर : 2014अहतभर कक नतथस: 01.01.2014पकनरलकण कभ सररप: ससककपत पकनरलकणपकभशन कक नतथस: 01.10.2013पकनरमकदण कक नतथस : 15.03.2014

要确定它正在使用的字体列表,您只需将 PDF 加载到 PDF 阅读器中,例如 Adobe ReaderFoxit Reader,然后从“文件”菜单中选择 Properties。从这里您应该可以选择Fonts。当我用Foxit Reader 尝试这个时,它显示了以下字体:

Mangal-Bold
Arial
Mangal
Arial Bold
Times-New-Roman-Bold

【讨论】:

  • 我也试过这个。但是提取的文本不正确,甚至 60-70%
  • 我也面临同样的问题。还有其他相关的解决方案吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-18
  • 1970-01-01
  • 2013-06-29
  • 1970-01-01
  • 1970-01-01
  • 2019-06-26
相关资源
最近更新 更多