Sign inSign up

nn200433/tika-server

By nn200433

•Updated almost 3 years ago

简单的 tika 服务,实现上传文档文件返回文档内容

Image
0

1.0K

nn200433/tika-server repository overview

⁠tika-server

⁠前言

简单的 tika 学习项目,主要实现了上传文档文件返回文档内容

源码:https://github.com/nn200433/tika-server⁠

⁠快速开始

version: '3'
services:
  tika-server:
    image: nn200433/tika-server:latest
    container_name: tika-server
    environment:
      - JAVA_OPTS=-Xmx2048m -Xms1024m
#      # 图像外接白框,用于提升识别率,文字框没有正确框住所有文字时,增加此值。默认50。
#      - TIKA_PADDLE_PADDING=50
#      # 按图像长边进行总体缩放,放大增加识别耗时但精度更高,缩小减小耗时但精度降低,maxSideLen为0表示不缩放
#      - TIKA_PADDLE_MAX_SIDE_LEN=0
#      # 文字框置信度门限,文字框没有正确框住所有文字时,减小此值
#      - TIKA_PADDLE_BOX_SCORE_THRESH=0.5
#      # 值越大,文字部分会越小
#      - TIKA_PADDLE_BOX_THRESH=0.3
#      # 单个文字框大小倍率,越大时单个文字框越大
#      - TIKA_PADDLE_UN_CLIP_RATIO=1.6
#      # 启用(true)/禁用(false) 文字方向检测,只有图片倒置的情况下(旋转90~270度的图片),才需要启用文字方向检测,默认关闭
#      - TIKA_PADDLE_DO_ANGLE=false
#      # 启用(1)/禁用(0) 角度投票(整张图片以最大可能文字方向来识别),当禁用文字方向检测时,此项也不起作用,默认关闭
#      - TIKA_PADDLE_MOST_ANGLE=false
    ports:
      - 19390:9090

⁠测试

curl --location --request POST 'http://127.0.0.1:19390/upload' \
--header 'User-Agent: Apifox/1.0.0 (https://apifox.com)' \
--header 'Accept: */*' \
--header 'Host: 192.168.0.126:19390' \
--header 'Connection: keep-alive' \
--header 'Content-Type: multipart/form-data; boundary=--------------------------705711992768855419607600' \
--header 'Cookie: JSESSIONID=B5908F33E99F483510C63A7AC5566F40' \
--form 'file=@"/home/test/file1.docx"' \
--form 'file=@"/home/test/file1.pdf"'

⁠问题

由于依赖的 so 库,部分 Linux 无法正常运行。

Tips:目前用 onnx 在 Docker 容器中尝试成功了

⁠特别鸣谢

感谢以下主要项目(还有一些未列出的,也十分感谢!)及参考文章,排名不分先后。

  • Hutool⁠ 是一个Java工具包,让Java语言也可以“甜甜的”。
  • Apache Tika⁠ 是一个开源的 Java 库和工具,用于从各种文档类型中提取文本内容和元数据。
  • docx4j⁠ 是一个开源(Apache v2)库,用于创建、编辑和保存 OpenXML "包",包括 docx、pptx 和 xslx。
  • Tesseract⁠ 是一个开源的光学字符识别(OCR)引擎,由 Google 开发和维护。它的主要功能是将图像或扫描的文档中的文字内容识别为可编辑的文本。Tesseract 可以处理多种语言和文本格式,并且在 OCR 领域有着广泛的应用。
  • ImageMagick⁠ 是一套功能强大、稳定而且开源的工具集和开发包,可以用来读、写和处理超过 89 种基本格式的图片文件。
  • RapidOCR⁠ 基于 PaddleOCR、OnnxRuntime 和 OpenVINO 的跨平台 OCR 库。
  • RapidOcr-Java⁠ Java代码实现调用RapidOCR
  • tika-source-code-interpretation⁠ Tika源码解读(上古版本)
  • 思通数科 StoneDT/多模态NLP自然语言处理引擎⁠ 免费的自然语言处理、情感分析、实体识别、.....
  • PaddleNLP⁠ PaddleNLP是一款简单易用且功能强大的自然语言处理和大语言模型(LLM)开发库。

Tag summary

Content type

Image

Digest

sha256:bc06dfd0a…

Size

615.7 MB

Last updated

almost 3 years ago

docker pull nn200433/tika-server