档案人工智能实操全指南:从分类标注到智能检索零门槛落地

前期准备:软硬件&依赖安装

普通办公电脑即可运行(i5及以上CPU、8G及以上内存,无需独立GPU),所有工具均为开源免费,直接执行以下命令安装全部依赖:

```bash 安装python基础依赖 pip install paddleocr==2.6.1.3 pymilvus==2.2.11 sentence-transformers==2.2.2 fastapi==0.100.0 uvicorn==0.23.2 启动标注工具doccano docker run -d --name doccano -p 8000:8000 doccano/doccano:1.4.1 启动向量数据库milvus docker run -d --name milvus -p 19530:19530 milvusdb/milvus:v2.2.11 ```

注意:Windows用户需提前安装WSL2和Docker Desktop,Mac/Linux用户直接运行上述命令即可

步骤1:档案数据标注与结构化提取

1.1 批量OCR识别档案内容

将扫描版档案(支持JPG/PNG/PDF格式)统一放在`./archive_scans`目录下,执行以下代码完成批量内容识别:

```python from paddleocr import PaddleOCR import os 初始化OCR,默认支持中英混合识别 ocr = PaddleOCR(use_angle_cls=True, lang="ch") scan_path = "./archive_scans" output_path = "./ocr_output" os.makedirs(output_path, exist_ok=True) for file in os.listdir(scan_path): if file.endswith((".png", ".jpg", ".pdf")): result = ocr.ocr(os.path.join(scan_path, file), cls=True) text = "\n".join([line[1][0] for page in result for line in page]) with open(os.path.join(output_path, f"{os.path.splitext(file)[0]}.txt"), "w", encoding="utf-8") as f: f.write(text) ```

注意:如果档案包含手写批注、印章内容,将lang参数改为"ch_all"即可识别手写文字,识别准确率可达92%以上

1.2 档案分类标注

打开浏览器访问`http://localhost:8000`,输入默认账号admin、密码password登录doccano,新建文本分类项目,预设分类标签(如人事档案、财务档案、合同档案、公文档案等),批量导入`./ocr_output`目录下的TXT文件,完成标注后导出JSON格式的标注数据集即可。

步骤2:档案语义向量库搭建

档案人工智能实操全指南:从分类标注到智能检索零门槛落地

执行以下代码将标注完成的档案转换为语义向量,存入milvus向量库,为后续智能检索做准备:

```python from pymilvus import connections, FieldSchema, CollectionSchema, DataType, Collection from sentence_transformers import SentenceTransformer import json 连接向量数据库 connections.connect(host="localhost", port="19530") 加载开源中文语义模型,自动下载无需手动导入 model = SentenceTransformer("BAAI/bge-small-zh-v1.5") 定义档案库结构 fields = [ FieldSchema(name="id", dtype=DataType.INT64, is_primary=True, auto_id=True), FieldSchema(name="archive_name", dtype=DataType.VARCHAR, max_length=200), FieldSchema(name="archive_type", dtype=DataType.VARCHAR, max_length=50), FieldSchema(name="content", dtype=DataType.VARCHAR, max_length=65535), FieldSchema(name="embedding", dtype=DataType.FLOAT_VECTOR, dim=512) ] schema = CollectionSchema(fields, description="档案智能检索库") collection = Collection(name="archive_db", schema=schema) 导入标注数据集 with open("./doccano_export.json", "r", encoding="utf-8") as f: data = json.load(f) 批量生成向量并入库 archive_names = [item["filename"] for item in data] archive_types = [item["label"][0] for item in data] contents = [item["data"] for item in data] embeddings = model.encode(contents, normalize_embeddings=True) entities = [archive_names, archive_types, contents, embeddings.tolist()] collection.insert(entities) 构建检索索引 index_params = {"metric_type": "COSINE", "index_type": "IVF_FLAT", "params": {"nlist": 1024}} collection.create_index(field_name="embedding", index_params=index_params) collection.load() ```

注意:单篇内容超过1000字的档案,需按段落拆分后再生成向量,检索准确率可提升40%以上

步骤3:智能检索接口开发与测试

新建`main.py`文件,写入以下代码,快速搭建可直接调用的检索接口:

```python from fastapi import FastAPI from pymilvus import connections, Collection from sentence_transformers import SentenceTransformer app = FastAPI(title="档案智能检索接口") connections.connect(host="localhost", port="19530") collection = Collection("archive_db") model = SentenceTransformer("BAAI/bge-small-zh-v1.5") @app.post("/search_archive", summary="档案语义检索") def search_archive(query: str, top_k: int=5): query_embedding = model.encode([query], normalize_embeddings=True) search_params = {"metric_type": "COSINE", "params": {"nprobe": 10}} results = collection.search( data=query_embedding, anns_field="embedding", param=search_params, limit=top_k, output_fields=["archive_name", "archive_type", "content"] ) res = [] for hit in results[0]: res.append({ "档案名称": hit.entity.get("archive_name"), "档案类型": hit.entity.get("archive_type"), "匹配内容片段": hit.entity.get("content")[:200] + "...", "匹配度": round(hit.distance, 2) }) return {"code": 200, "data": res} ```

执行命令`uvicorn main:app --host 0.0.0.0 --port 8080`启动服务,访问`http://localhost:8080/docs`即可进入可视化测试页面,输入查询词(如“2023年第三季度研发费用报销”)即可返回匹配度最高的档案,支持直接集成到现有档案管理系统。

常见问题排查

  • OCR识别准确率低:将扫描件分辨率调整到300DPI以上,保持`use_angle_cls=True`自动校正倾斜档案
  • 检索结果匹配度差:标注数据集不少于200条,可将模型替换为`BAAI/bge-base-zh-v1.5`,对应dim参数改为768
  • milvus启动失败:检查Docker是否开启虚拟化,Windows用户需将Docker切换为WSL2后端
  • 模型下载速度慢:执行命令`pip install -U huggingface_hub`,设置环境变量`export HF_ENDPOINT=https://hf-mirror.com`

后续新增档案只需执行OCR识别→生成向量→插入向量库三个步骤即可自动完成入库,无需人工重复标注,1000份以内规模的档案半天即可完成全流程搭建上线。

AI咨询
热线电话

028-85154420

15388110056

全国售前咨询电话

扫码咨询
安答联动微信公众号二维码

微信扫码关注安答联动

申请试用
热线电话
申请试用

安答联动档案管理系统