zdocument_text 是压缩包/文档/图片转文本的工具, 是 ZSPAM 的一个模块
解出的文本不关注样式, 不适合展示, 适用于机器学习, 分词等 效果演示
联系 eli960@qq.com 获取免费版
如果只使用 "文档转文本服务", 可以删除 milter.cf, spamd.cf
/home/spam/etc/service/document.cf
document_text_license = # 每个进程最多分配内存限制 # max-memory = 4G server-command = /home/spam/bin/document_text # 服务端口 server-service = 0:25065 # server-service = var/socket/document_text # 启用 fork 运行不稳定的模块 document_text_robust_enable = yes # 处理多少文档后, 进程退出; 0 不限制 server-service-max-use = 1000000 # 一个文档最多处理多少秒, 超时后, 进程退出 server-request-max-run-time = 10 # 进程退出前, 等待多少秒; 0 立即退出 server-stop-on-softstop-after = 10 # 日志, syslog 模式 server-log = syslog,mail # 日志, 输出到标准出错输出 # server-log = # 并发进程数 server-proc-count = 3 # 每进程并发线程数 document_text_concurrency_limit = 10 # 资源大小限制, 超过这个限制则不处理 document_text_resource_size_limit = 100M # 除了 txt, 这些格式的文件作为文本处理, 逗号分割 # document_text_extra_text_formats = js,css,cpp # 处理资源个数限制 document_text_resource_count_limit = 1024 # 深度限制 document_text_depth_limit = 3 # 处理文档个数限制 document_text_office_convert_count_limit = 12 # 每个子文档, 返回文本最多字节数 document_text_office_text_size_limit = 0 # 缓存目录, 空表示禁用缓存, 目前只缓存图片处理结果 # 目录 (/home/spam/dt_cache_dir_image/) 下需要创建子目录 00,01,...,fe,ff document_text_cache_pathname = /home/spam/dt_cache_dir_image/ # 一个 pdf, 处理时间限制 document_text_pdf_time_limit = 3 # 一个图片, 处理时间限制 document_text_image_time_limit = 3 # 一个图片, 大小限制 document_text_image_size_limit = 10M # 一个图片, 限制 (width + height) document_text_image_width_height_sum_limit = 20000 # 是否启用图片文字识别(OCR), 请注意: 图片文字识别速度很慢 document_text_ocr_enable = no # 一个图片, OCR处理时间限制(秒) # document_text_ocr_time_limit = # OCR文件个数限制 document_text_ocr_file_count_limit = 3 # OCR文字数量限制 document_text_ocr_char_count_limit = 1024 # OCR太慢, 图片宽度限制 # document_text_ocr_width_limit = 0 # OCR太慢, 按高分片处理, 最多分多少片 # document_text_ocr_height_slice_limit = 3 # OCR太慢, 分片后, 每片处理的高度为 # document_text_ocr_height_per_slice = 100 # document_text_tesseract_lang = chi_sim # document_text_tesseract_psm = 6 # document_text_tesseract_config_TESSERACT_CONFIG_NAME = TESSERACT_CONFIG_VALUE # 是否启用图片二维码识别(QRCODE) document_text_qrcode_enable = yes # 二维码识别有的时候会有点慢, 限制 (width + height) document_text_qrcode_width_height_sum_limit = 10000 # QRCODE文件个数限制 document_text_qrcode_file_count_limit = 12
1, 客户端 连接(2种方法): 1) socket 文件 ./var/socket/document_text 2) 端口 0:25065 ### 默认配置 2, 客户端 输入(3种方法): ### 请注意, 服务在docker内运行 1) tree[一个空格]文件路径\r\n 2) tree[一个空格]文件名后缀[一个空格]文件路径\r\n 3) tree[一个空格]文件名后缀[一个空格]{数据长度}\r\n文件数据\r\n 3, 服务端 返回(2个情况): 1) OK[一个空格]{数据(JSON)的长度}\r\nJSON数据\r\n 2) ERR[一个空格]error_msg\r\n 4, 客户端 继续(2种): 1)关闭连接 2)回到 2
{ "childs": [], # 子节点(嵌套) "confused_file_format": "exe", # 混淆的文件类型, 如 a.pdf.gz 实际是 a.exe的压缩 "content": "文本", # 文本结果, 本系统主要结论,免费版只返回前1024个字节 "detected": 0, # 文件类型是自动识别的, 如 rar 实际是 zip "encrypted": 0, # 是否加密文件 "error": "OK", # 错误信息, OK表示成功 "file_format": "pdf", # 文件类型, 一般是后缀 "file_type": "regular", # 文件类别, dir/regular/other "resource_type": "office", # 资源类型 office/archive/image "height": 0, # 如果是图片, 高度 "width": 0 # 如果是图片, 宽度 "size": 0, # 资源大小 "urls": ["url1", "url2"], # URL 数组, # 如果资源是图片, url是二维码地址 "malicious": 0, # 是否含有(恶意)脚本, 如doc中的宏 "name": "1.doc", # 资源名 }
命令 /home/spam/bin/test_document_text.sh 用于在线测试 document_text 服务
可以在容器外执行
# docker cp container_name:/home/spam/bin/test_document_text.sh /somepath/ ./test_document_text.sh [ 127.0.0.1:25065 ] [ file_type(doc/ppt/zip/...) ] file [ file1 [ ... ] ] [ dir [ ...] ]