如何在Alpine Linux中安装Tesseract标准英文(eng)语言包?
在Alpine Docker镜像中安装Tesseract现代英语语言包的问题
我正在基于Alpine构建依赖Tesseract进行OCR的Docker镜像。Tesseract官网显示有两种英文语言包:eng(现代英语)和enm(中世纪英语),但我无法在Alpine上安装eng版本。
我的Dockerfile内容如下:
FROM eclipse-temurin:17-jre-alpine as tesseract-master RUN apk update && apk add tesseract-ocr RUN apk update && apk add tesseract-ocr-data-eng
构建时提示找不到eng语言包,查看Alpine官方仓库后确认确实没有这个包。我能安装enm包,但担心它在现代英语场景下的识别效果会有问题。有人成功在Alpine上安装过eng包吗?
解决办法
Alpine的官方软件源里确实没有收录tesseract-ocr-data-eng包,不过有两种可行的方案:
1. 手动下载官方语言包
直接从Tesseract的官方训练数据仓库下载eng语言包,放到Alpine镜像中Tesseract默认读取的tessdata目录即可:
FROM eclipse-temurin:17-jre-alpine as tesseract-master RUN apk update && apk add tesseract-ocr wget # 确保tessdata目录存在 RUN mkdir -p /usr/share/tessdata/ # 下载现代英语训练数据 RUN wget -O /usr/share/tessdata/eng.traineddata https://github.com/tesseract-ocr/tessdata/raw/main/eng.traineddata # 可选:验证文件是否成功下载 RUN test -f /usr/share/tessdata/eng.traineddata && echo "eng语言包安装完成"
2. 使用第三方预构建镜像
如果你不想手动处理下载步骤,可以选择一些第三方提供的、预装好完整Tesseract语言包的Alpine镜像作为基础镜像,不过这种方式会依赖第三方镜像的维护情况,不如手动下载稳定可控。
另外需要注意:enm包是专门针对中世纪英语训练的,其字符集和拼写规则与现代英语差异较大,用来识别现代文本会出现大量错误,完全不适合替代eng包使用。
内容的提问来源于stack exchange,提问作者Rodrigo Diaz
相关产品推荐
相关产品推荐

