处理扫描PDF时,OCR产生的错别字如何自动纠正,以免污染嵌入向量?

文本清洗实战:金融医疗政务场景下的保真对齐降噪三维平衡 文本清洗是NLP工程落地的关键前置环节,其本质并非简单去除标点或统一格式,而是围绕下游任务目标,在保真性、语义对齐与噪声抑制之间动态权衡的技术决策过程。在金融舆情、医疗病历、政务工单等强领域约束场景中,股票代码、药品名称、法律条款等标识符必须原样保留;感叹号、‘疑似’‘略微’等强度修饰符承载关键业务信号;而微博口语、OCR错字、多源混杂等噪声需按类型精准治理。本文基于17个垂直领域真实项目经验,系统拆解从源数据诊断、编码治理、结构化解析到语义增强的六步工作流,并提供可复用的工具链选型指南与避坑清单,助力工程 阅读详情

你是否遇到过这样的情况:兴致勃勃地用大模型分析一份扫描版的年报或合同,结果AI给出的答案里,金额错位、日期乱码、专业术语被替换成毫无意义的字符?当你试图构建基于RAG(检索增强生成)的知识库时,原本应该精准匹配的“嵌入向量”,因为OCR(光学字符识别)产生的错别字,导致检索结果驴唇不对马嘴。

核心痛点在于:扫描PDF本质上是图片。OCR将其转为可读文本时,极易产生三类“污染源”:

● 视觉噪声污染:弯曲的书页、模糊的印章、不均匀的光照,导致“0”被识别成“O”,“1”被识别成“l”。

● 结构逻辑污染:无线表格、跨页段落、合并单元格被粗暴拆解,行列对应关系丢失。当这些错乱的数据被转化为向量时,原本应该聚集在一起的语义信息会变得离散,导致检索时无法召回正确的文档块。

● 实体完整性污染:日期、金额、票据号码等关键实体被拆散或误读,例如把“2026年5月12日”识别成“2026年5月1Z日”,直接摧毁了精确匹配的准确性。

如果你喂给大模型/向量数据库的是一堆带有OCR错别字的“毒数据”,那么无论下游模型多强大,输出的都只能是“垃圾”。

一. 工具介绍

为了解决扫描PDF中的OCR错别字问题,避免“垃圾进、垃圾出”,你需要的不再是简单的OCR文字提取,而是一套具备纠错能力和结构还原能力的智能文档解析方案。

推荐使用合合信息TextIn文档解析工具。它不仅是一个OCR工具,更是一个专为AI与大模型设计的数据“清洁工”。它通过以下核心能力,从源头保障数据质量:

1.  智能图像预处理:在OCR之前,自动进行弯曲矫正、切边增强、去水印、低光照增强,从根本上减少因采集质量差而引发的“错别字”和“漏字”。

2.  高精度结构还原:精准识别并保留标题层级、表格结构(含合并单元格/无线表)、跨页段落、印章与手写体位置,输出带有明确结构信息的Markdown或JSON格式。

3.  语义理解辅助纠错:依靠合合信息自研的垂类大模型,即使原文存在部分污损或模糊,也能通过上下文语义关联推断出正确的文字,而非机械地输出OCR原始结果。

二. 操作步骤讲解

下面,我们以一份容易产生OCR错别字的医疗化验单扫描件为例,演示如何通过TextIn自动纠正错误,确保进入向量数据库的数据是干净的。

步骤一:准备一份“问题”扫描PDF

找一份带有轻微弯曲、手写标记或打印不清晰的扫描PDF(例如手机拍摄的化验单)。如果你直接将它上传到通用大模型,要求提取某几项指标,极大概率会出现数值错误(例如将“PH”识别为“PH1”,将“↓”识别为数字“1”)。

步骤二:使用TextIn进行“纠正式解析”

1.  打开TextIn在线网页(web端即可使用,无需下载软件)。

2.  选择“通用文档解析”工具

3.  上传你的扫描PDF文件。系统会依次执行:图像增强 → 版面分析 → 文字识别 → 结构还原 → 输出结果。整个过程对于100页以内的文档通常在1.5秒内完成。

步骤三:获取“干净”的结构化数据

解析完成后,下载Markdown格式的结果。你会发现:

● 错别字被纠正:模糊的“葡萄糖”指标被正确识别,方向箭头(↑/↓)被精准保留而非识别成数字。

● 表格结构完整:即使原始报告没有明确的表格线,TextIn也能将“项目名称”、“结果”、“参考范围”三列对齐,形成大模型友好的结构化文本。

步骤四:用干净数据刷新你的RAG索引

将这份Markdown文件作为新的知识文档,导入你的向量数据库或直接喂给大模型。你会发现,大模型能够精准定位到某个具体指标,并给出包含正常范围、上下箭头在内的完整答案,而不再“胡诌”。

4. 优势亮点

相较于手动校对或使用普通OCR软件,合合信息TextIn在处理扫描PDF时的优势是革命性的:

● 向量质量“守卫者”:通过输出结构完整、无错字的Markdown,确保文本块在嵌入向量空间时有明确的语义聚集。检索时,用户问“血糖”,能精准命中“葡萄糖”块,而不会因为OCR错字导致漏召回。

● “零样本”抗噪能力:无需针对每个新版式(如不同医院的化验单)重新训练,内置的垂类大模型能直接根据语义推断污损处的正确文字。

● 极致的长文处理能力:支持处理长达1000页的扫描文档,单表支持2000行、100列,不会因文档过长或表格过大而产生截断错位。

● 源端可溯:所有输出均支持坐标回显,如果对某个识别结果有疑虑,可以快速定位到原PDF位置进行复核,形成“自动纠错+人工复核”的闭环。

5. 客户案例

背景:某大型金融科技企业在构建内部合同RAG系统时,面临严重的数据污染问题。其语料库中包含大量2005-2015年间的扫描版PDF合同,纸张泛黄、部分文本模糊。使用传统OCR工具解析时,金额、日期、甲乙双方公司名的平均错误率高达12%,导致向量检索的命中率(Recall@5)不足60%,经常检索出毫不相关的合同条款。

解决方案:引入合合信息TextIn文档解析方案,对所有历史扫描合同进行重新解析与清洗。

核心数据效果:

● OCR错别字率:从12%大幅降至1.5%以下。特别是对于数字与单位(如“10000元”不会识别为“1OOOO元”)、专业术语的纠正效果显著。

● 向量检索命中率:基于清洗后的数据重建向量索引,Top-5命中率从不足60%提升至94%。业务人员询问“股权回购条款中关于违约利息的计算方式”,系统能够精准召回对应条款,而非其他无关条款。

● 人工复核成本:原先需要3人团队逐页校对关键字段,现在仅需1人抽检,人力成本降低70%,且系统建设周期从预计的3个月缩短至2周。

该案例证明:处理扫描PDF时,不能跳过“自动纠错”环节。 使用像合合信息TextIn这样具备语义理解与结构还原能力的专业工具,是确保嵌入向量不被污染、RAG应用真正可靠的前提。

LLM底层原理:概率预测、数据压缩与高维语义空间 大语言模型(LLM)并非神秘黑箱,其核心是基于海量文本学习条件概率分布P(wₙ|w₁,…,wₙ₋₁),本质是一种超大规模数据的统计建模与高效压缩。通过Transformer架构在高维潜在空间中构建词向量关系,实现语义相似性度量与上下文感知生成。这种‘猜下一个词’机制虽简单,却因参数规模、上下文长度与训练数据量的指数级增长,涌现出推理、类比与风格迁移等能力。然而,压缩过程会固化数据中的统计偏差,导致幻觉与偏见;而高维语义空间的导航依赖于训练数据的分布质量,缺乏显式逻辑规划能力。理解这些原理,是构建可解释、可治 阅读详情

相关推荐

Deepseek V4真实场景压力测试:长上下文、多轮纠错与结构化输出实战指南

大模型推理稳定性不再仅由MMLU分数定义,而取决于其在噪声输入、链式任务和强约束条件下的实际表现。本文聚焦长上下文处理能力与多轮纠错能力两大核心维度,解析模型如何应对中英混排、错别字、跨页表格、附件依赖等真实业务干扰;阐明结构化输出保真度对金融研报、合同审查、客服坐席等关键场景的决定性影响;并提供可落地的预处理策略、strict_mode启用方法与vLLM部署调优方案,助力技术团队跨越benchmark幻觉,构建高可用AI生产系统。

weixin_33863087的博客 301

OCRmyPDF终极纠偏指南:一键校正歪斜扫描件

你是否曾经因为扫描的PDF文档歪歪扭扭而烦恼?用手机拍摄的文件因为角度问题导致OCR识别率大幅下降?OCRmyPDF的智能纠偏功能正是为此而生,让你只需简单几步就能获得完美对齐的文档。📄✨ 无论你是处理办公文档、学习资料还是历史档案,歪斜的页面都会严重影响阅读体验和搜索效率。本文将为你展示如何利用OCRmyPDF的自动校正系统,快速解决各种倾斜问题,显著提升OCR识别准确率。 ## 一键校正

gitblog_00823的博客 379

GPT-4o全模态实时交互:人机交互范式迁移的技术解析

多模态AI正从‘模块拼接’走向‘感知融合’,其核心是视觉、语音、文本在统一嵌入空间中的联合表征与流式协同推理。GPT-4o作为首个实现低延迟全链路实时响应的商用模型,依托统一嵌入空间、流式注意力与情感状态建模三大架构创新,显著降低端到端时延并提升跨模态理解鲁棒性。该技术突破不仅支撑语音中断响应、微表情适配、图像热区聚焦等新交互范式,更推动AI从任务执行工具升级为具备情境感知能力的认知协作者,在无障碍服务、工业诊断、教育辅助等真实场景中释放工程化价值。

weixin_33735077的博客 472

DeepSeek-OCR-2效果展示:检测框可视化叠加原图,精准定位错别字与漏识别区

本文介绍了如何在星图GPU平台上自动化部署DeepSeek-OCR-2智能文档解析工具镜像,实现文档图片的精准文字识别与结构化转换。该工具能将检测框可视化叠加于原图,直观定位错别字与漏识别区域,特别适用于合同、报告等关键文档的数字化校对与归档,显著提升处理效率与准确性。

weixin_31486261的博客 57

【信息科学与工程学】【审计学】第一篇 招投标领域审计算法01

在每个关键流程节点(如文件上传、开标唱标、评标结束), 计算该环节所有电子文件的数字指纹(如SHA-256哈希值), 并将指纹和元数据(时间、操作人)上链存证。:从发票、合同中提取材料品名、规格、采购价、时间、地点。:对每个供应商, 提取其在历史投标中的行为序列特征, 如:中标率、与特定伙伴同时投标率、自身高报价次数、在伙伴中标项目中的“弃标”或“无效标”次数。:监控开标、评标现场音视频, 识别异常情绪(激烈争吵)、敏感关键词(“打点”、“关照”)、异常物品传递、私下交流等违规行为。

weixin_49199313的博客 812

HTTPS接口测试翻车实录:为什么浏览器能访问而curl报证书错误?

本文深入分析了HTTPS接口测试中浏览器访问正常而curl报证书错误的典型问题。通过对比浏览器、Postman和curl的工具行为差异,结合Nginx日志与Wireshark抓包,揭示了问题根源在于网络架构中HTTPS请求被意外“降级”为HTTP传输,导致SSL握手失败。文章重点探讨了curl工具严格验证机制暴露的`Peer's Certificate issuer is not recognized`错误,并提供了网络配置修正方案与标准化测试流程。

u9v0w的博客 278

处理扫描 PDF 时,OCR 产生的错别字如何自动纠正,以免污染嵌入向量?

修复结果校验:对模型输出的修复文本,比对原始 OCR 文本与上下文,确认纠正合理性(如 “卷积神经网络” 误为 “卷机神经网络”,模型纠正为 “卷积”,需确认上下文是否涉及 “CNN” 等相关术语,避免误纠正)。将 “ReLU” 误为 “ReLu”,通过术语库统一为 “ReLU”;表格数据校验:对 “table” 字段的数值类文本,通过 “逻辑一致性检查”(如 “准确率” 字段数值应在 0-100 之间,若识别为 “1000”,则修正为 “100”)。

TextIn智能文档云平台的官方博客 1135

从零开始利用MATLAB进行FPGA设计(一):建立脉冲检测模型的Simulink模型2

上一期分析了MATLAB的黄金算法原理,这一期进行Simulink模块分析。

WZT725的博客 2086

大语言模型人性化理解:从指令执行到场景化意图建模

大语言模型(LLM)正经历从‘文本生成’到‘意图理解’的关键演进。其核心原理在于突破传统关键词匹配范式,通过长上下文建模、多模态对齐训练与双轨反馈优化(RLHF+RHLF),实现对用户身份、使用场景与隐含诉求的动态推演。这一技术跃迁显著提升了指令遵循率、上下文承接稳定性与风格适配准确性,直接支撑智能客服单轮解决率、报告关键字段完整率等可量化业务指标。在制造业合规审查、医疗文档解析、教育作文批改等垂直场景中,‘人性化理解’已不再依赖黑箱能力,而是可通过最小理解单元(MUU)、结构化提示工程(如SCORP法)与

dieqiao8331的博客 470

VS2022如何兼容老项目?.NET Framework 4.0/4.5安装避坑指南

本文提供了在Visual Studio 2022中兼容和维护.NET Framework 4.0/4.5等老旧项目的完整解决方案。针对VS2022无法直接识别旧框架的核心问题,文章详细剖析了原因,并重点推荐通过官方NuGet包安全获取引用程序集的方法,给出了从下载、解压到部署至标准目录的详细步骤。同时,文章还深入探讨了项目文件格式过旧、NuGet包还原失败等进阶问题的排查与解决策略,旨在帮助开发者高效、稳定地在现代开发环境中维护历史代码库。

weixin_27734811的博客 514

从生成到检测:全面解析Deepfake技术的演进与对抗策略

本文全面解析了Deepfake技术的演进与对抗策略,从GAN生成技术到先进的检测手段,探讨了其在娱乐与安全领域的双重影响。文章详细介绍了Deepfake的核心原理、技术迭代关键节点以及最新的检测方法,揭示了AI生成与识别的激烈博弈。同时,展望了量子计算和生物特征认证在未来攻防战中的潜在应用。

jenkins8butler的博客 255

生成式AI驾驭指南:从能力编织到最小可行闭环

生成式AI不是黑箱工具,而是需被系统化理解与工程化调度的新型能力单元。其核心原理在于概率建模与上下文注意力机制,技术价值体现在将模糊业务逻辑转化为可验证的token级决策链。典型应用场景包括智能客服、设备维修SOP生成、医疗文献初筛与合规话术构建等,关键挑战在于业务语义与模型统计行为之间的映射断层。真正有效的落地不依赖大模型微调,而始于对信息抽取、语义检索、逻辑推理等原子能力的解耦设计,以及贯穿始终的最小可行闭环(MVC)验证。本文聚焦‘驾驭’而非‘调用’,深入解析提示词作为认知接口的本质、上下文窗口的注意

weixin_30542079的博客 401

Python 实现生命游戏及进化模拟完整指南

生命模拟是进化计算的一个特定子集,模拟了自然界中所观察到的自然过程,例如粒子或鸟群的聚集方式。生命模拟只是用来探索和优化问题的模拟形式之一,还有很多其他形式的模拟,可以更好地建模各种过程,但它们都源于康威生命游戏 (Conway’s Game of Life)。在本节中,我们将介绍生命模拟的基本概念,并使用 Python 实现康威生命游戏。

盼小辉丶的博客 7万+

PDF 不止装文字:用 Python 给 PDF 添加和提取内嵌附件

一份完整的项目报告,往往不只有 PDF 正文,还包括用于计算的 Excel 表格、原始图片或补充说明。如果这些文件分开发送,接收者就需要逐一下载、整理,还可能遗漏其中某一份材料。例如,在财务报告中附上原始工作簿,在产品手册中附上示例文件,或者在合同中附上补充材料。本文介绍如何使用完成两项操作:向 PDF 添加附件,以及从 PDF 中提取附件。

asdzx67的博客 91

《MySQL 入门教程》第 03 篇 管理数据库

本篇主要介绍 MySQL 数据库的创建、查看、选择和删除操作,包括使用 mysql 命令行和 MySQL Workbench 图形工具两种方式。

Tony.Dong的专栏 3522

74、刀具磨损监测与寿命预测分析

本文综述了刀具磨损监测与寿命预测的研究现状,分析了力信号、功率信号、振动信号和声发射信号在刀具状态监测中的应用及其优缺点。介绍了当前常用的刀具寿命模型及故障诊断流程,并总结了基于不同信号的监测方法。文章指出,尽管已有多种方法在理论上取得进展,但在实际应用中仍面临挑战。未来研究方向包括采用更先进的神经网络、深入探索多信号融合技术以及有效利用工业大数据,以提升刀具状态识别的准确性与可靠性。

lstm7chronicler的博客 275

Java PDF 报表开发:一条逾期数据从 Map 到气泡再到评级报告 PDF 的完整链路

摘要(meta description):气泡图是散点图的加料版——x、y 定位置,size 定敞口,颜色定等级,一条数据同时编码四个维度。本文以 jquick-pdf 气泡图为例,跟着"客户C:账龄 9 个月、逾期率 6.8%、敞口 410、高风险"这条数据走完全程:从 Map 组装、轴配置、图例挂载,到 renderChart 出 SVG、绑定占位符、模板落版成 PDF,每一站都有代码和渲染结果对照。附完整 Java 源码与模板(jquick-pdfx 4.7.0+,Apache-2.0)。标签:、、、

PaoHaiJiao的博客 512

XRoboToolkit —— 基于 PICO 4 Ultra 的机器人遥操作方案(一)

视觉-语言-动作模型(Vision-Language-Action models)的快速发展催生了对大规模、高质量机器人演示数据集的迫切需求。尽管遥操作是数据采集的主要方法,但现有方法存在可扩展性有限、设置流程复杂以及数据质量不佳等问题。本文提出XRoboToolkit,这是一个基于OpenXR标准的跨平台扩展现实(XR)机器人遥操作框架。该系统具备低延迟立体视觉反馈、基于优化的逆运动学算法,并支持多种跟踪模态,包括头部、控制器、手部及辅助运动追踪器。

2506_90492529的博客 3306

PDF解析器代码详解:从文件结构到交叉引用表解析

本文详解了PDF解析器的代码实现,重点分析了PDF文件结构和交叉引用表解析过程。首先介绍了PDF文件的四部分结构:文件头、对象体、交叉引用表和文件尾。然后详细讲解了代码如何定位文件头、解析版本号,以及如何通过回溯搜索定位"startxref"关键字。最后深入分析了传统XRef表链的加载过程,包括处理增量更新、遍历Prev链以及防止循环引用等关键步骤。整个解析过程严格遵循PDF规范,确保了文件解析的准确性和兼容性。

C++ 是一门不原谅粗心的语言,而我恰好喜欢这种不原谅。 我是 x,正在成为更严谨的 C++ 开发工程师的路上。 518

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

2026医学教材资料合集pdf电子版完整齐全

本文整理了一份涵盖临床、中医、护理、药学等多专业的医学生资料合集,包含本科期末复习资料、第九版临床教材(23本可复制书签)、研究生“红色生死恋”教材68本及配套PPT课件。文章强调资料使用需结合自身专业与学习阶段,以“蓝皮教材打基础、红皮教材备研考、规培教材练实战”为路径,倡导精准定位、主线唯一、避免囤积,真正实现从“收藏”到“阅读”的转化,提醒医学生:真正的成长在于读透一本好书,而非拥有全部资料。

2601_96733043的博客 1292

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

屏幕、电子书、打印档怎么选?4款免费PDF压缩工具对照

免费PDF压缩工具的档位比的是图片DPI:屏幕72、电子书150、打印300、Mac预览144;扫描件降到72dpi小字难认,300dpi扫描件选打印档几乎不变,附图映 ImgIng等4种办法实测。

2611_96826367的博客 181

gc.py 功能介绍:PDF 对象流还原工具(用于 pdfium 测试)

摘要: gc.py 是一个 PDF 对象流还原工具,用于将经过对象流压缩的 PDF 文件转换为标准交叉引用表(XRef Table)格式,为测试 pdfium 的对象流压缩功能提供纯净材料。该工具通过 podofogc 实现对象流解压,生成独立对象和交叉引用表,确保文件结构完整。用户可配置输入/输出路径、递归扫描等参数,并通过 qpdf 验证还原效果。测试流程包括压缩率、文件完整性和兼容性验证。podofogc 因其高效还原和垃圾清理功能成为首选工具。注意事项包括测试材料一致性、文件命名冲突处理和超时设置。

C++ 是一门不原谅粗心的语言,而我恰好喜欢这种不原谅。 我是 x,正在成为更严谨的 C++ 开发工程师的路上。 497

uniapp使用kkfileview在线预览ppt,excel,word,pdf类型文件

红色背景换成自己的域名。三、nginx增加配置。四、uniappp配置。预览文件是带上前缀。

FinelyYang的专栏 258

三款实用工具推荐:PDF橡皮擦、桌签打印与Excel图表生成

推荐三款实用小工具:1. PDF橡皮擦(@lizhipei78开发),绿色版,专用于图片型PDF去水印,支持亮度调节与“胶带遮挡”功能,操作简便;2. 桌签打印工具,支持批量导入姓名、自定义背景与字体,可直接打印,适合会议桌签制作;3. Excel图表生成工具(@Duni1314开发),一键生成柱状图、饼图、甘特图等多种图表,操作简单,适合新手。三款工具均高效实用,值得收藏。下载链接:https://pan.quark.cn/s/c742b5d9413c

weixin_68551689的博客 181

Markdown 转 PDF API:表格与代码块、公开链接与私有文件

Markdown 转 PDF API 接收非空 Markdown 字符串,返回排版后的 PDF。可以用 JSON 或表单提交标题、表格、代码块等内容。公开模式返回下载 URL,私有模式返回文件引用。

DevOpenClub 专栏 148

【Python】国家中小学智慧教育平台电子教材批量下载与 PDF 合成实战

成果:两本语文电子课本(一年级上册 118 页 / 23MB、三年级上册 130 页 / 30.3MB),合计 248 页、约 54MB,单本下载加合成 40~60 秒,PDF 页数校验全部通过。经验教训SPA 站点的数据接口优先从 bundle 里挖,比抓页面稳得多;资源链接要按 private/public 分组看待,只取平台公开部分;页数、目录名这类“可推断”的信息,永远用实际响应验证一次;受限环境里“能不能跑浏览器”要在方案定稿前确认。后续计划:这版 PDF 是图片版,没有文字层;

木头大左的博客 128
上一篇: 文档解析的最佳实践和基本原则有哪些?
下一篇: 当原始数据质量极低时,如何设计清洗规则筛选出有价值信息?
TextIn智能文档云平台
博客等级 码龄2年 366粉丝 363原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值