合合信息TextIn服务使用心得

2024-01-30 17:36

本文主要是介绍合合信息TextIn服务使用心得,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

    • 一、前言
    • 二、TextIn简介
      • 2.1、通用文字识别
      • 2.2、国内通用票据识别
      • 2.3、通用表格识别
    • 三、项目案例
      • 3.1、application.yml
      • 3.2、TextInService
      • 3.3、TextInController
      • 3.4、测试
    • 四、总结

一、前言

智能图像处理、文字表格识别、文档内容提取产品的背景源自于人工智能技术的快速发展和广泛应用。随着计算机视觉和自然语言处理技术的不断进步,人工智能在图像处理和文字识别领域取得了巨大的突破,使得这些产品能够实现更加精准和高效的功能。

  • 在图像处理方面,智能图像处理产品能够识别图像中的各种物体、场景和特征,并进行自动标注和分类。这使得用户能够快速找到他们需要的信息,提高工作效率。同时,这些产品还能够对图像进行修复和增强,提高图像的质量和清晰度。
  • 在文字表格识别方面,这些产品能够识别图像中的文字和表格,并将其转换为可编辑的文档。这使得用户能够方便地提取图像中的文字信息,编辑和分享文档内容。同时,这些产品还能够识别表格中的数据,并将其转换为可编辑的电子表格,方便用户进行数据分析和处理。
  • 在文档内容提取方面,这些产品能够自动提取文档中的关键信息和内容,并进行分类和整理。这使得用户能够快速找到他们需要的信息,节省时间和精力。同时,这些产品还能够将文档内容转换为可编辑的电子文档,方便用户进行编辑和分享。

二、TextIn简介

合合信息是一家人工智能及大数据科技企业,基于自主研发的领先的智能文字识别及商业大数据核心技术,为全球C端用户和多元行业B端客户提供数字化、智能化的产品及服务。C端业务主要为面向全球个人用户的APP产品,包括扫描全能王(智能扫描及文字识别APP)、名片全能王(智能名片及人脉管理APP)、启信宝(企业商业信息查询APP)3款核心产品;公司B端业务为面向企业客户提供以智能文字识别、商业大数据为核心的服务,形成了包括基础技术服务、标准化服务和场景化解决方案的业务矩阵,满足客户降本增效、风险管理、智能营销等多元需求,助力客户实现数字化与智能化的转型升级。凭借领先的自主研发技术、成熟的产品落地能力、优质的用户体验及服务质量,公司的C端产品覆盖了全球百余个国家和地区的亿级用户,B端服务覆盖了近30个行业的企业客户。在B端业务方面,公司智能文字识别与商业大数据服务已覆盖了银行、证券、保险、政府、物流、制造、地产、零售等近30个行业的众多头部客户。《财富》杂志2022年发布的世界500强公司名单中,公司客户已覆盖超过125家。

TextIn是上海合合信息科技股份有限公司旗下智能文字识别云服务平台
官网地址:https://www.textin.com
为全球用户提供智能图像处理、文字表格识别、文档内容提取产品
其提供的服务及其丰富,几乎可以满足多有开发者关于智能图像处理、文字识别等的需求。
在这里插入图片描述
关键的是TextIn提供的API控制台简洁易用,对于资历不深的开发者十分友好。
下面我来列举几个其公司提供的产品服务。

2.1、通用文字识别

基于自研的文字识别技术,覆盖文字、文档、表格、印章、二维码、公式等多种通用场景,提供全球50+主流语言的印刷体、手写体的高精度识别能力。可用于纸质文档电子化、办公文档/报表识别、教育类文本识别、快递面单识别等场景。

识别普通文字:

在这里插入图片描述

效果如下:
可以看到每种文字都被准确的识别出来,
在这里插入图片描述

除了普通文字识别,同时支持印刷体、手写体、倾斜、折叠、旋转等

识别印刷体:

在这里插入图片描述

效果如下:

在这里插入图片描述

识别手写体:
在这里插入图片描述
效果如下:
在这里插入图片描述
可以看到无论是普通文字、印刷体、手写体,识别效果都十分的好。

2.2、国内通用票据识别

支持对多种票据类型(多票据)票据切分、票据分类、票据识别,包括增值税普通发票、增值税普通发票(卷票)、增值税专用发票、增值税电子专用发票、增值税电子普通发票、货物运输业增值税专用发票(仅支持分类不做识别)、机动车销售统一发票、二手车销售统一发票、通用机打发票、通用定额发票、旅客运输普票、公路客运发票、船运客票、出租车发票、停车费发票、过路过桥费发票、教育费收据(仅支持分类不做识别)、行程单、火车票、增值税销货清单和其他可报销票据。

样本数据:
在这里插入图片描述

识别效果:

在这里插入图片描述

2.3、通用表格识别

通用表格识别适用于带有表格的文档图像
上传图片返回表格区域分析后的文字识别结果以及表格外区域的其他文字识别结果

样本数据:

在这里插入图片描述

识别效果:

在这里插入图片描述

三、项目案例

在我们的项目中,需要将用户上传的图片中的文字交给大模型来处理,这样就需要用到文字识别技术,合合信息TextIn服务正好满足我们的需求,并且合合信息TextIn服务的通用文字识别服务API调用简单,有详细的API说明文档和示例代码,在开发过程中极大的节省了我们的时间。
在这里插入图片描述

在示例代码中,支持多种主流的语言:Java、C#、python、Node.js、PHP以及HTML

在这里插入图片描述

合合信息TextIn服务还支持在线调试功能

  • 实时监控和分析API请求和响应数据,帮助开发人员快速定位和解决问题。
  • 可以模拟不同的请求参数和环境,方便开发人员测试和调试API接口

在这里插入图片描述

下面我来用Java语言举一个使用合合信息TextIn服务的例子

我们以通用文字识别为例

我们创建一个SpringBoot项目,在配置文件中写入一下信息:

3.1、application.yml

# 应用服务 WEB 访问端口
server:port: 8888# TextIn服务参数
textin:appid: 你的appidsecretcode: 你的secretcode

3.2、TextInService

接下来我们编写通用文字识别的逻辑代码,其本质是调用TextInAPI代码如下:

package com.csust.medicalassistant.service.impl;import cn.hutool.core.io.FileUtil;
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.csust.medicalassistant.common.CommonResult;
import com.csust.medicalassistant.dto.MessageDTO;
import com.csust.medicalassistant.dto.TextDTO;
import com.csust.medicalassistant.service.TextInService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;import java.io.*;
import java.util.HashMap;
import java.util.Map;/*** @author niuben*/
@Slf4j
@Service
public class TextInServiceImpl implements TextInService {@Value("${textin.appid}")public String appId;@Value("${textin.secretcode}")public String secretCode;@Overridepublic JSONObject imgToText(String imgPath) {byte[] imgData = readfile(imgPath);// 通用文字识别String url = "https://api.textin.com/ai/service/v2/recognize";// 添加请求头信息Map<String, String> heads = new HashMap<>();// 使用json发送请求,下面的是必须的heads.put("connection", "Keep-Alive");heads.put("Content-Type", "application/octet-stream");heads.put("x-ti-app-id", appId);heads.put("x-ti-secret-code", secretCode);/**** headerMap是添加的请求头,body是传入的参数,这里选择json,后端使用@RequestBody接收ERNIE-Bot 4.0*/HttpResponse response = HttpRequest.post(url).headerMap(heads, false).body(imgData).timeout(5 * 60 * 1000).execute();// 数据解析JSONObject jsonResponse = JSONUtil.parseObj(response.body());JSONObject result = (JSONObject) jsonResponse.get("result");return result;}public static byte[] readfile(String path){String imgFile = path;InputStream in = null;byte[] data = null;try{in = new FileInputStream(imgFile);data = new byte[in.available()];in.read(data);in.close();}catch (IOException e) {e.printStackTrace();}return data;}}

3.3、TextInController

然后我们定义接口

package com.csust.medicalassistant.controller;import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.csust.medicalassistant.common.CommonResult;
import com.csust.medicalassistant.service.TextInService;
import com.csust.medicalassistant.utils.ImageUtil;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;import javax.annotation.Resource;/*** @author niuben*/
@RestController
public class TextInController {@Resourceprivate TextInService textInService;@Resourceprivate ImageUtil imageUtil;@ApiOperation("文字识别")@PostMapping("/getinfo")public CommonResult<Object> imageToJson(MultipartFile file){//上传图片String imgPath = imageUtil.uploadImgToLocal(file);//图片识别JSONObject result = textInService.imgToText(imgPath);return CommonResult.success(JSONUtil.toJsonStr(result));}}

3.4、测试

样本图片
在这里插入图片描述
识别效果:

可以看到识别效果准确率很高

在这里插入图片描述

四、总结

总的来说合合信息的TextIn服务对于开发者来说十分友好,不仅提供的服务丰富,并且使用起来简单易上手,其识别的准确率极高,几乎上可以满足有关文字和图片处理的所有需求,强烈推荐给大家使用,再放一下官网地址:
https://www.textin.com

这篇关于合合信息TextIn服务使用心得的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/661010

相关文章

C++使用栈实现括号匹配的代码详解

《C++使用栈实现括号匹配的代码详解》在编程中,括号匹配是一个常见问题,尤其是在处理数学表达式、编译器解析等任务时,栈是一种非常适合处理此类问题的数据结构,能够精确地管理括号的匹配问题,本文将通过C+... 目录引言问题描述代码讲解代码解析栈的状态表示测试总结引言在编程中,括号匹配是一个常见问题,尤其是在

Java中String字符串使用避坑指南

《Java中String字符串使用避坑指南》Java中的String字符串是我们日常编程中用得最多的类之一,看似简单的String使用,却隐藏着不少“坑”,如果不注意,可能会导致性能问题、意外的错误容... 目录8个避坑点如下:1. 字符串的不可变性:每次修改都创建新对象2. 使用 == 比较字符串,陷阱满

Python使用国内镜像加速pip安装的方法讲解

《Python使用国内镜像加速pip安装的方法讲解》在Python开发中,pip是一个非常重要的工具,用于安装和管理Python的第三方库,然而,在国内使用pip安装依赖时,往往会因为网络问题而导致速... 目录一、pip 工具简介1. 什么是 pip?2. 什么是 -i 参数?二、国内镜像源的选择三、如何

使用C++实现链表元素的反转

《使用C++实现链表元素的反转》反转链表是链表操作中一个经典的问题,也是面试中常见的考题,本文将从思路到实现一步步地讲解如何实现链表的反转,帮助初学者理解这一操作,我们将使用C++代码演示具体实现,同... 目录问题定义思路分析代码实现带头节点的链表代码讲解其他实现方式时间和空间复杂度分析总结问题定义给定

Linux使用nload监控网络流量的方法

《Linux使用nload监控网络流量的方法》Linux中的nload命令是一个用于实时监控网络流量的工具,它提供了传入和传出流量的可视化表示,帮助用户一目了然地了解网络活动,本文给大家介绍了Linu... 目录简介安装示例用法基础用法指定网络接口限制显示特定流量类型指定刷新率设置流量速率的显示单位监控多个

JavaScript中的reduce方法执行过程、使用场景及进阶用法

《JavaScript中的reduce方法执行过程、使用场景及进阶用法》:本文主要介绍JavaScript中的reduce方法执行过程、使用场景及进阶用法的相关资料,reduce是JavaScri... 目录1. 什么是reduce2. reduce语法2.1 语法2.2 参数说明3. reduce执行过程

如何使用Java实现请求deepseek

《如何使用Java实现请求deepseek》这篇文章主要为大家详细介绍了如何使用Java实现请求deepseek功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1.deepseek的api创建2.Java实现请求deepseek2.1 pom文件2.2 json转化文件2.2

python使用fastapi实现多语言国际化的操作指南

《python使用fastapi实现多语言国际化的操作指南》本文介绍了使用Python和FastAPI实现多语言国际化的操作指南,包括多语言架构技术栈、翻译管理、前端本地化、语言切换机制以及常见陷阱和... 目录多语言国际化实现指南项目多语言架构技术栈目录结构翻译工作流1. 翻译数据存储2. 翻译生成脚本

Android 悬浮窗开发示例((动态权限请求 | 前台服务和通知 | 悬浮窗创建 )

《Android悬浮窗开发示例((动态权限请求|前台服务和通知|悬浮窗创建)》本文介绍了Android悬浮窗的实现效果,包括动态权限请求、前台服务和通知的使用,悬浮窗权限需要动态申请并引导... 目录一、悬浮窗 动态权限请求1、动态请求权限2、悬浮窗权限说明3、检查动态权限4、申请动态权限5、权限设置完毕后

C++ Primer 多维数组的使用

《C++Primer多维数组的使用》本文主要介绍了多维数组在C++语言中的定义、初始化、下标引用以及使用范围for语句处理多维数组的方法,具有一定的参考价值,感兴趣的可以了解一下... 目录多维数组多维数组的初始化多维数组的下标引用使用范围for语句处理多维数组指针和多维数组多维数组严格来说,C++语言没