将pdf转换为文本时的Python多处理

时间:2017-02-03 21:40:44

标签: python python-multiprocessing apache-tika pdftotext

我正在尝试使用我的pdf到文本转换器实现多处理,以跨多种语言并行运行转换器。对于文本转换,我使用pyca的tika端口,因为它似乎非常可靠地转换pdf(优于pdfminer3k等)。 我使用以下代码

import tika
from tika import parser

def parse_pdf(file):
    path_to_pdf = directory + "/" + file
    # Convert PDF to text
    parsed = parser.from_file(path_to_pdf,'http://tika:9998/tika')
    text = str(parsed["content"]).strip('\n')
    return text

#List of languages
languages=["English", "Finnish", "French"]

def pdf_to_text(lang):
    for file in os.listdir(directory):
        if lang in file:
            nr_docs+=1
            print(lang,file)
            text=parse_pdf(file) 
            ...
#Multiprocessing
if __name__ == '__main__':
    pool=mp.Pool()
    results = [pool.map(readability, languages)]
    print(results)

不幸的是,似乎有一个带有tika的瓶颈,因为我收到以下错误:

  

requests.packages.urllib3.exceptions.MaxRetryError:HTTPConnectionPool(host ='tika',port = 9998):使用url:/ rmeta / text超出了最大重试次数(由NewConnectionError引起(':无法建立新连接: [Errno 11004] getaddrinfo'失败',))

有没有人知道如何解决这个问题?我的系统应该足够强大(32核,64 RAM)......

0 个答案:

没有答案