我正在尝试使用我的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)......