WordHelper

command module
v0.0.0-...-67d91c4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 2, 2022 License: MIT Imports: 4 Imported by: 0

README

文本语言相关处理服务

分词, OCR, 翻译, 加密解密, 文本内容的领域信息, 文本相似度, 彩票开奖, 拼音, 标签提取, PDF提取

提供 http/s, grpc api

配置说明

  • app.runType 运行模式; dev:开发模式; prod:生产模式; test:测试模式;
  • httpServer.open 是否启动http服务
  • httpServer.prod http服务端口
  • grpcServer.open 是否启动grpc服务
  • grpcServer.prod grpc服务端口
app:
  name: WordHelper
  runType: dev

httpServer:
  open: true
  prod: 1271

grpcServer:
  open: true
  prod: 1272
  log: true

tesseract-ocr 安装

# Ubuntu、Debian和Deepin
$ sudo apt-get install -y tesseract-ocr libtesseract-dev libleptonica-dev

# CentOS、Red Hat
$ yum install -y tesseract

# 查看支持的语言:
$ tesseract --list-langs

# Ubuntu、Debian和Deepin 安装语言包
$ git clone https://github.com/tesseract-ocr/tessdata.gitsudo mv tessdata/* /usr/share/tesserac t-ocr/tessdata

# 在CentOS和Red Hat系统下的迁移命令如下:
$ git clone https://github.com/tesseract-ocr/tessdata.gitsudo mv tessdata/* /usr/share/tesseract/tessdata
  

libreoffice 安装与使用

主要实现文本格式转换, word, xls, ppt 转pdf, html, txt, jpg 的功能

https://www.libreoffice.org/download/download/ 官方下载地址

RMP

解压: tar -xvf LibreOffice_6.4.2_Linux_x86-64_rpm.tar.gz 安装:cd LibreOffice_6.4.2_Linux_x86-64_rpm/RPMS && yum localinstall *.rpm

## 依赖
$ yum install cairo -y
$ yum install cups-libs -y
$ yum install libSM -y

DEB

tar -zxvf LibreOffice_6.1.5_Linux_x86-64_deb.tar.gz /解压安装包/ sudo dpkg -i ./LibreOffice_6.1.5_Linux_x86_deb/DEBS/.deb / 安装主安装程序的所有deb包 */

使用:

## word
$ libreoffice  --headless --convert-to pdf(html,jpg,txt) '/home/总结.docx'
$ libreoffice  --invisible --convert-to pdf '/home/总结.docx'
$ libreoffice  --invisible --convert-to :writer_pdf_Export '/home/总结.docx'
$ libreoffice  --invisible --convert-to "html:XHTML Writer File:UTF8" *.doc
$ libreoffice  --invisible --convert-to "txt:Text (encoded):UTF8" *.doc

## xls
$ libreoffice  --invisible --convert-to pdf *.xls

## ppt
$ libreoffice  --invisible --convert-to pdf *.ppt

Http接口文档

[get] /fenci/jieba

结巴分词

参数

  • str 文本
  • type 分词类型,如下
type 值 类型
1 全模式
2 精确模式
3 搜索引擎模式
4 词性标注
5 Tokenize 搜索引擎模式
6 Tokenize 默认模式
7 Extract

返回

{
  "code":0,
  "timestamp":1636424481,
  "msg":"succeed",
  "data":[
    {"Word":"日本京都大学","Weight":13.2075304714},
    {"Word":"计算所","Weight":11.7034530746},
    {"Word":"小明","Weight":11.1280889297},
    {"Word":"深造","Weight":9.0884932966},
    {"Word":"硕士","Weight":8.87023973058}
  ]
}

[get] /ocr/version

查看tesseract版本

返回

{"code":0,"timestamp":1636439749,"msg":"succeed","data":"4.0.0"}

[get] /ocr/languages

查看tesseract支持的词语库

返回

{"code":0,"timestamp":1636428427,"msg":"succeed","data":["chi_sim","chi_tra","deu","eng","jpn","osd"]}

[post] /ocr

tesseract进行识别

注意:宿主机需要安装tesseract与chi_sim.traineddata词语库

参数(from-data)

  • file 被识别的图片
  • lang 识别的词语库,默认是chi_sim

返回

{
    "code": 0,
    "timestamp": 1636428522,
    "msg": "succeed",
    "data": "预 分 配 切 片 和 际 射 #\n\n尝 试 皑 终 预 免 分 配 切 片 和 映 射 。 如 果 您 知 遵 要 兆 骋 放 置 的 元 素 数 春 , 请 使 用 诚 知 识 ! 这 春 着 改 善 了 武 类 代 团 的 运 迟 。\n将 此 视 为 微 化 , 但 是 , 始 终 这 样 做 是 一 积 很 好 的 横 式 , 因 为 它 不 会 增 加 太 多 复 杂 伯 。 性 能 方 面 , 它 仅 与 具 有 大 数 组\n的 关 镰 代 团 路 径 根 关 。\n\n注 意 ; 这 是 团 为 , 在 非 常 简 单 的 视 图 中 ,Go 运 行 时 分 配 当 前 大 小 的 2 俘 。 因 此 , 如 果 您 期 望 有 数 百 万 个 元 袁 ,Go\n将 ppend 在 两 者 之 闰 进 行 多 次 分 配 , 而 不 是 在 您 迹 行 预 分 配 时 只 进 行 一 次 分 配"
}

[post] /ocr/base64

传入base64图片进行识别

参数(from-data)

  • base64img 被识别图片的base64
  • lang 识别的词语库,默认是chi_sim

返回

{
    "code": 0,
    "timestamp": 1636428522,
    "msg": "succeed",
    "data": "18778"
}

[get] /fanyi

翻译

参数

  • word 需要翻译的词语

返回

{"type":"ZH_CN2EN","errorCode":0,"elapsedTime":0,"translateResult":[[{"src":"你好","tgt":"hello"}]]}

[post] /pdf/txt

提取PDF,每页为一个文本

参数

  • file 被提取的pdf文件

返回

{
    "code": 0,
    "timestamp": 1636444276,
    "msg": "succeed",
    "data": [
        {
            "page": 1,
            "content": "- 65 -  附件2 普通高等学校本科专业目录 (2020年版) 说明: 1.本目录是在《普通高等学校本科专业目录(2012年)》基础上,增补近几年批准增设的目录外新专业而形成。 2.特设专业在专业代码后加T表示;国家控制布点专业在专业代码后加K表示。  序号 门类 专业类 专业代码 专业名称 学位授予门类 修业年限 增设年份 1 哲学 哲学类 010101 哲学 哲学 四年   2 哲学 哲学类 010102 逻辑学 哲学 四年   3 哲学 哲学类 010103K 宗教学 哲学 四年   4 哲学 哲学类 010104T 伦理学 哲学 四年   5 经济学 经济学类 020101 经济学 经济学 四年   6 经济学 经济学类 020102 经济统计学 经济学 四年   7 经济学 经济学类 020103T 国民经济管理 经济学 四年   8 经济学 经济学类 020104T 资源与环境经济学 经济学 四年   9 经济学 经济学类 020105T 商务经济学 经济学 四年   10 经济学 经济学类 020106T 能源经济 经济学 四年   11 经济学 经济学类 020107T 劳动经济学 经济学 四年 2016 12 经济学 经济学类 020108T 经济工程 经济学 四年 2017 13 经济学 经济学类 020109T 数字经济 经济学 四年 2018 14 经济学 财政学类 020201K 财政学 经济学 四年   15 经济学 财政学类 020202 税收学 经济学 四年   16 经济学 金融学类 020301K 金融学 经济学 四年   17 经济学 金融学类 020302 金融工程 经济学 四年   18 经济学 金融学类 020303 保险学 经济学 四年   19 经济学 金融学类 020304 投资学 经济学 四年   20 经济学 金融学类 020305T 金融数学 经济学 四年   21 经济学 金融学类 020306T 信用管理 管理学,经济学 四年   22 经济学 金融学类 020307T 经济与金融 经济学 四年   23 经济学 金融学类 020308T 精算学 理学,经济学 四年 2015 24 经济学 金融学类 020309T 互联网金融 经济学 四年 2016 "
        },
        {
            "page": 2,
            "content": "- 66 -  序号 .....

[post] /pdf/row

提取PDF,每页按行提取

参数

  • file 被提取的pdf文件

返回

{
    "code": 0,
    "timestamp": 1636444558,
    "msg": "succeed",
    "data": [
        {
            "page": 1,
            "content": [
                "附件2 ",
                "普通高等学校本科专业目录 ",
                "(2020年版) ",
                "说明: ",
                "1.(是在《普通高等学校本科专本目录业目录2012年)》基础上,增",
                "补近几年批准增设的目录外新专业而形成。 ",
                "2.特设专业在专业代码后加T表示;国家控制布点专业在专业代码后",
                "加K表示。 ",
                " ",
                "序学位授修业增设",
                "门类 专业类 专业代码 专业名称 ",
                "号 予门类 年限 年份 ",
                "1 哲学 哲学类 010101 哲学 哲学 四年   ",
                "2 哲学 哲学类 010102 逻辑学 哲学 四年   ",
                "3 哲学 哲学类 010103K 宗教学 哲学 四年   ",
                "4 哲学 哲学类 010104T 伦理学 哲学 四年   ",
                "5 经济学 经济学类 020101 经济学 经济学 四年   ",
                "6 经济学 经济学类 020102 学经济统计 经济学 四年   ",
                "7 经济学 经济学类 020103T 管理国民经济 经济学 四年   ",
                "资源与环境经济",
                "8 经济学 经济学类 020104T 经济学 四年   ",
                "学 ",
                "9 经济学 经济学类 020105T 学商务经济 经济学 四年   ",
                "10 经济学 经济学类 020106T 能源经济 经济学 四年   ",
                "11 经济学 经济学类 020107T 学劳动经济 经济学 四年 2016 ",
                "12 经济学 经济学类 020108T 经济工程 经济学 四年 2017 ",
                "13 经济学 经济学类 020109T 数字经济 经济学 四年 2018 ",
                "14 经济学 财政学类 020201K 财政学 经济学 四年   ",
                "15 经济学 财政学类 020202 税收学 经济学 四年   ",
                "16 经济学 金融学类 020301K 金融学 经济学 四年   ",
                "17 经济学 金融学类 020302 金融工程 经济学 四年   ",
                "18 经济学 金融学类 020303 保险学 经济学 四年   ",
                "19 经济学 金融学类 020304 投资学 经济学 四年   ",
                "20 经济学 金融学类 020305T 金融数学 经济学 四年   ",
                "管理学,",
                "21 经济学 金融学类 020306T 信用管理 四年   ",
                "经济学 ",
                "22 经济学 金融学类 020307T 融经济与金 经济学 四年   ",
                "理学,经",
                "23 经济学 金融学类 020308T 精算学 四年 2015 ",
                "济学 ",
                "24 经济学 金融学类 020309T 融互联网金 经济学 四年 2016 ",
                "- 65 - ",
                " "
            ]
        },
        {
            "page": 2,
            "content": [
                "序学位授修业增设",
                "门类 专业类  .....

[post] /pdf/table

提取PDF,每页提取标准表格数据, 注意: 只会提取表格数据

参数

  • file 被提取的pdf文件

返回

{
    "code": 0,
    "timestamp": 1636444640,
    "msg": "succeed",
    "data": [
        {
            "page": 1,
            "content": [
                {
                    "0": "序号 ",
                    "1": "门类 ",
                    "2": "专业类 ",
                    "3": "专业代码 ",
                    "4": "专业名称 ",
                    "5": "学位授予门类 ",
                    "6": "修业年限 ",
                    "7": "增设年份 "
                },
                {
                    "0": "1 ",
                    "1": "哲学 ",
                    "2": "哲学类 ",
                    "3": "010101 ",
                    "4": "哲学 ",
                    "5": "哲学 ",
                    "6": "四年 ",
                    "7": "  "
                },
                {
                    "0": "2 ",
                    "1": "哲学 ",
                    "2": "哲学类 ",
                    "3": "010102 ",
                    "4": "逻辑学 ",
                    "5": "哲学 ",
                    "6": "四年 ",
                    "7": "  "
                },
                {
                    "0": "3 ",
                    "1": "哲学 ",
                    "2": "哲学类 ",
                    "3": "010103K ",
                    "4": "宗教学 ",
                    "5": "哲学 ",
                    "6": "四年 ",
                    "7": "  "
                },
                {
                    "0": "4 ",
                    "1": "哲学 ",
                    "2": "哲学类 ",
                    "3": "010104T ",
                    "4": "伦理学 ",
                    "5": "哲学 ",
                    "6": "四年 ",
                    "7": "  "
                },......

[post] /aes/cbc/encrypt

AES CBC 加密

参数

  • str *
  • key * 16位
  • iv
{
	"str":"aaaaaaaaaa",
	"key":"1234567890123456"
}

返回

{
    "code": 0,
    "timestamp": 1641264306,
    "msg": "succeed",
    "data": "kV9P+njDNrC4yVBpnBYEXg=="
}

[post] /aes/cbc/decrypt

AES CBC 解密

参数

  • str *
  • key * 16位
  • iv
{
	"str":"kV9P+njDNrC4yVBpnBYEXg==",
	"key":"1234567890123456"
}

返回

{
    "code": 0,
    "timestamp": 1641264380,
    "msg": "succeed",
    "data": "aaaaaaaaaa"
}

[post] /aes/ecb/encrypt

AES ECB 加密


[post] /aes/ecb/decrypt

AES ECB 解密


[post] /aes/cfb/encrypt

AES CFB 加密


[post] /aes/cfb/decrypt

AES CFB 解密


[post] /aes/ctr/encrypt

AES CTR 加密


[post] /aes/ctr/decrypt

AES CTR 解密


[post] /des/cbc/encrypt

DES CBC 加密


[post] /des/cbc/decrypt

DES CBC 解密


[post] /des/ecb/encrypt

DES ECB 加密


[post] /des/ecb/decrypt

DES ECB 解密


[post] /des/cfb/encrypt

DES CFB 加密


[post] /des/cfb/decrypt

DES CFB 解密


[post] /des/ctr/encrypt

DES CTR 加密


[post] /des/ctr/decrypt

DES CTR 解密


[get] /md5/16

md5加密输出16位

参数

  • str

[get] /md5/32

md5加密输出32位

参数

  • str

[get] /base64/encrypt

base64 编码


[get] /base64/decrypt

base64 解码


[get] /base64url/encrypt

base64 url 编码


[get] /base64url/decrypt

base64 url 解码


[get] /hmac/md5

hmac md5 加密

参数

  • str
  • key

[get] /hmac/sha1

hmac sha1 加密


[get] /hmac/sha256

hmac sha256 加密


[get] /hmac/sha512

hmac sha256 加密


[get] doc/change/md2html

md格式字符串转html格式字符串

参数

  • str

grpc 文档

proto文件: https://github.com/mangenotwork/extras/api/WordHelper_Proto/wordhelper.proto

生成pb.go: https://github.com/mangenotwork/extras/script/wordhelper_pb.sh

rpc FenciJieba (FenciJiebaReq) returns (FenciJiebaResp);

结巴分词


rpc OCR (OCRReq) returns (OCRResp);

ocr识别


rpc OCRLanguages (OCRLangReq) returns (OCRLangResp);

ocr 语言词典列表


rpc OCRVersion (OCRVersionReq) returns (OCRVersionResp);

ocr 版本


rpc OCRBase64 (OCRBase64Req) returns (OCRBase64Resp);

ocr 识别base64图片


rpc Fanyi (FanyiReq) returns (FanyiResp);

翻译


rpc PDFTxt (PDFTxtReq) returns (PDFTxtResp);

pdf识别 - 文本


rpc PDFRow (PDFRowReq) returns (RDFRowResp);

pdf识别 - 按行识别


rpc PDFTable (PDFTableReq) returns (PDFTableResp);

pdf识别 - 标准画线的表格


rpc Md2Html (Md2HtmlReq) returns (Md2HtmlResp);

md格式字符串转html格式字符串


rpc AESCBCEncrypt (AESCBCEncryptReq) returns (AESCBCEncryptResp);

AES CBC Encrypt


rpc AESCBCDecrypt (AESCBCDecryptReq) returns (AESCBCDecryptResp);

AES CBC Decrypt


rpc AESECBEncrypt (AESECBEncryptReq) returns (AESECBEncryptResp);

AES ECB Encrypt


rpc AESECBDecrypt (AESECBDecryptReq) returns (AESECBDecryptResp);

AES ECB Decrypt


rpc AESCFBEncrypt (AESCFBEncryptReq) returns (AESCFBEncryptResp);

AES CFB Encrypt


rpc AESCFBDecrypt (AESCFBDecryptReq) returns (AESCFBDecryptResp);

AES CFB Decrypt


rpc AESCTREncrypt (AESCTREncryptReq) returns (AESCTREncryptResp);

AES CTR Encrypt


rpc AESCTRDecrypt (AESCTRDecryptReq) returns (AESCTRDecryptResp);

AES CTR Decrypt


rpc DESCBCEncrypt (DESCBCEncryptReq) returns (DESCBCEncryptResp);

DES CBC Encrypt


rpc DESCBCDecrypt (DESCBCDecryptReq) returns (DESCBCDecryptResp);

DES CBC Decrypt


rpc DESECBEncrypt (DESECBEncryptReq) returns (DESECBEncryptResp);

DES ECB Encrypt


rpc DESECBDecrypt (DESECBDecryptReq) returns (DESECBDecryptResp);

DES ECB Decrypt


rpc DESCFBEncrypt (DESCFBEncryptReq) returns (DESCFBEncryptResp);

DES CFB Encrypt


rpc DESCFBDecrypt (DESCFBDecryptReq) returns (DESCFBDecryptResp);

DES CFB Decrypt


rpc DESCTREncrypt (DESCTREncryptReq) returns (DESCTREncryptResp);

DES CTR Encrypt


rpc DESCTRDecrypt (DESCTRDecryptReq) returns (DESCTRDecryptResp);

DES CTR Decrypt


rpc HmacMd5 (HmacMd5Req) returns (HmacMd5Resp);

Hmac Md5


rpc HmacSha1 (HmacSha1Req) returns (HmacSha1Resp);

Hmac Sha1


rpc HmacSha256 (HmacSha256Req) returns (HmacSha256Resp);

Hmac Sha256


rpc HmacSha512 (HmacSha512Req) returns (HmacSha512Resp);

Hmac Sha512


编译

直接编译: go build main.go

编译为docker: https://github.com/mangenotwork/extras/build/shortlink_build.sh

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
宿主机 需要安装 tesseract
宿主机 需要安装 tesseract
pdf
Package pdf implements reading of PDF files.
Package pdf implements reading of PDF files.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL