tmquan/congbobanan-toaan-gov-vn
收藏资源简介:
该数据集是越南最高法院门户网站“Công bố bản án”(congbobanan.toaan.gov.vn)的文档级镜像,专注于越南法院判决书(包括判决和决定)。它提供了全面的法律文档集合,涵盖原始PDF文件、解析后的markdown文本、结构化JSON记录(包含侧边栏元数据、通用命名实体识别和法规引用)、2048维密集嵌入向量以及2-D投影(PCA、t-SNE、UMAP结合HDBSCAN聚类ID)。数据集通过端到端的NeMo Curator管道生成,包括下载、解析、提取、嵌入和降维阶段。适用于文本分类、文本检索、句子相似度和特征提取等NLP任务,特别针对越南语法律文本分析。数据集配置分为parse、extract、embed和reduce,每个配置对应不同的数据粒度,便于用户根据需求选择使用。
--- language: - 越南语 license: CC-BY 4.0 pretty_name: "Công bố bản án — 越南法院判决书" size_categories: - 100万 < 样本数 < 1000万 task_categories: - 文本分类 - 文本检索 - 句子相似度 - 特征提取 tags: - 法律 - 越南语 - 法院判决书 - ban-an - quyet-dinh - 最高法院 configs: - config_name: parse data_files: "data/parse-*.parquet" - config_name: extract data_files: "data/extract-*.parquet" - config_name: embed data_files: "data/embed-*.parquet" - config_name: reduce data_files: "data/reduce-*.parquet" --- # 官方判决书公布门户镜像——越南法院判决书数据集 本数据集为越南**官方判决书公布门户(Cổng công bố bản án)**的文档级镜像,该门户由越南最高人民法院(Tòa án nhân dân tối cao / Supreme People's Court of Vietnam)运营,网址为[`congbobanan.toaan.gov.vn`](https://congbobanan.toaan.gov.vn)。每份案件数据均包含以下格式:**原始PDF文件**、**解析后的Markdown文本**、**结构化JSON记录**(含侧边栏元数据、通用命名实体识别(NER)结果及法条引用)、**2048维稠密嵌入向量**,以及**二维投影结果(PCA / t-SNE / UMAP + HDBSCAN聚类ID)**。 本语料库通过[`packages/datasites/congbobanan`](https://github.com/)的NeMo Curator流水线端到端生成,流程如下: 下载 → 解析 → 提取 → 嵌入 → 降维 本数据集与[`tmquan/anle-toaan-gov-vn`](https://huggingface.co/datasets/tmquan/anle-toaan-gov-vn)为同源数据集:二者采用相同的流水线、相同的分片规则,共享列的字段模式完全一致(如`doc_name`、`text`、`text_hash`、`embedding`等);本数据集额外新增了门户专属的侧边栏列(如`doc_type`、`ban_an_so`、`ngay`、`toa_an_xet_xu`、`loai_vu_viec`、`cap_xet_xu`、`quan_he_phap_luat`等),并跳过了仅针对判例的`án-lệ`相关字段。如需同时使用两个数据集的用户,可直接基于共享列进行合并,无需逐列对齐。 ## 快速上手 本数据集提供四种配置,分别与流水线的四个阶段一一对应,请根据所需的粒度选择对应配置: python from datasets import load_dataset # parse — 所有判决书的Markdown正文,存储于`text`字段 parse = load_dataset("tmquan/congbobanan-toaan-gov-vn", "parse", split="train") # extract — `text`字段 + 侧边栏元数据 + 结构化法律信息提取结果(实体、法条引用) extract = load_dataset("tmquan/congbobanan-toaan-gov-vn", "extract", split="train") # embed — 2048维稠密嵌入向量 embed = load_dataset("tmquan/congbobanan-toaan-gov-vn", "embed", split="train") # reduce — 预计算的PCA/t-SNE/UMAP坐标 + HDBSCAN聚类ID reduce = load_dataset("tmquan/congbobanan-toaan-gov-vn", "reduce", split="train") print(parse[0]["doc_name"], parse[0]["text"][:80]) # 示例输出:'1000023' '## Page 1 …' print(extract[0]["loai_vu_viec"], extract[0]["cap_xet_xu"]) print(len(embed[0]["embedding"])) # 输出:2048 print(reduce[0]) # 输出包含pca_x/y、tsne_x/y、umap_x/y、cluster_id 如需下载部分原始数据文件,可执行如下代码: python from huggingface_hub import snapshot_download # 仅下载解析后的Markdown文件 snapshot_download( repo_id="tmquan/congbobanan-toaan-gov-vn", repo_type="dataset", allow_patterns=["raw/md/*"], local_dir="congbobanan/md", ) # 下载指定案件ID的原始PDF文件 snapshot_download( repo_id="tmquan/congbobanan-toaan-gov-vn", repo_type="dataset", allow_patterns=[f"raw/pdf/{cid}.*" for cid in (1000023, 1000034)], local_dir="congbobanan/pdf", ) ## 配置项 以下四种配置均为**分片Parquet包**,每个分片最多包含**10000行数据**,命名格式为`<stage>-<NNNNN>-of-<KKKKK>.parquet`。分片规则基于`doc_name`(补零后的案件ID)实现确定性分片,因此后续重发布不会打乱文档在分片中的分布。该规则与[`tmquan/anle-toaan-gov-vn`](https://huggingface.co/datasets/tmquan/anle-toaan-gov-vn)保持一致。 | 配置名称 | 处理阶段 | 关键字段 | |--- |--- |--- | | `parse` | 解析阶段 | `doc_name`、`case_id`、`source`、`detail_url`、`pdf_path`、**`text`**、`num_pages`、`char_len`、`confidence`、`parser_model`、`parsed_at`、`text_hash` | | `extract` | 提取阶段 | `doc_name`、`case_id`、`text_hash`、**`text`**、`entities`、`relations`、`statute_refs`、`doc_type`、`ban_an_so`、`ngay`、`ten_ban_an`、`ngay_cong_bo`、`quan_he_phap_luat`、`cap_xet_xu`、`loai_vu_viec`、`toa_an_xet_xu`、`ap_dung_an_le`、`dinh_chinh`、`thong_tin_vu_viec`、`tong_binh_chon`、`luot_xem`、`luot_tai`、`pdf_filename` | | `embed` | 嵌入阶段 | `doc_name`、`case_id`、`text_hash`、`embedding`(2048维浮点向量)、`embedding_dim`、`embedding_model_id`、`embedding_chunks_used`、`embedding_chunking` | | `reduce` | 降维阶段 | `doc_name`、`case_id`、`text_hash`、`pca_x/y`、`tsne_x/y`、`umap_x/y`、`cluster_id` | `text`字段为解析阶段生成的Markdown正文,会原封不动复制到提取阶段的数据中。`text_hash`为确定性内容哈希值,可用于将所有配置的数据集关联回`raw/`目录下的单文档分片。 ### 侧边栏字段(extract配置) 这些字段从门户右侧面板提取,由`CongbobananDocumentExtractor`解析得到: | 字段名 | 数据类型 | 说明 | |--- |--- |--- | | `doc_type` | 字符串 | 取值为`"ban-an"`(即判决书)或`"quyet-dinh"`(即决定书)。 | | `ban_an_so` | 字符串 | 案件编号,例如`03/2022/DSST`。 | | `ngay` | 字符串 | 判决日期,格式遵循门户规范:`dd/mm/yyyy`。 | | `ten_ban_an` | 字符串 | 供人阅读的案件标题。 | | `ngay_cong_bo` | 字符串 | 发布日期,格式为`dd.mm.yyyy`。 | | `quan_he_phap_luat` | 字符串 | 法律关系/案由标签。 | | `cap_xet_xu` | 字符串 | 审理程序层级:如`Sơ thẩm`(一审)、`Phúc thẩm`(二审)、`Giám đốc thẩm`(再审)等。 | | `loai_vu_viec` | 字符串 | 案件类型:如`Dân sự`(民事)、`Hình sự`(刑事)、`Hành chính`(行政)等。 | | `toa_an_xet_xu` | 字符串 | 作出裁判的法院全称(越南语原文)。 | | `ap_dung_an_le` | 字符串 | 若有引用,则为所适用的判例。 | | `dinh_chinh` | 字符串 | 文书更正内容(`đính chính`)。 | | `thong_tin_vu_viec` | 字符串 | 案件信息/概要摘要。 | | `tong_binh_chon` | 字符串 | 判例投票数(门户原始字符串格式)。 | | `luot_xem` | int64 | 浏览量。 | | `luot_tai` | int64 | 下载量。 | | `pdf_filename` | 字符串 | 服务器端原始PDF文件名。 | ## 仓库布局 README.md 本数据集卡片 notebook.ipynb 端到端探索性数据分析(EDA)笔记本(采用Plotly、LaTeX风格主题) data/ parse-<NNNNN>-of-<KKKKK>.parquet `text`字段 + 解析元数据 extract-<NNNNN>-of-<KKKKK>.parquet `text`字段 + 侧边栏元数据 + 通用NER结果 embed-<NNNNN>-of-<KKKKK>.parquet 2048维稠密嵌入向量 reduce-<NNNNN>-of-<KKKKK>.parquet PCA/t-SNE/UMAP投影结果 + 聚类ID assets/ 本README中嵌入的静态PNG图片 raw/ pdf/<case_id>.pdf 爬取得到的原始PDF文件 pdf/<case_id>.html 缓存的案件详情HTML(爬虫输入源) pdf/<case_id>.url 案件详情源URL md/<case_id>.md 解析后的Markdown文本 md/<case_id>.meta.json 解析器元数据附属文件 jsonl/<task_id>.jsonl 提取器输出(与流水线镜像一致) ## 流水线总览 | 处理阶段 | 输入数据源 | 输出产物 | 工具链 | |--- |--- |--- |--- | | `download` | 整数案件ID范围`[start_id..end_id]` | `pdf/<case_id>.pdf` + 对应的`.html` / `.url`文件 | aiohttp爬虫工具(`CongbobananDocumentDownloader`) | | `parse` | `pdf/*.pdf`所有PDF文件 | `md/<case_id>.md` + `<case_id>.meta.json`元数据文件 | `nvidia/nemoretriever-parse` | | `extract` | `md/*.md`所有Markdown文件 | `jsonl/<task_id>.jsonl`提取结果文件 | 规则+大语言模型提取器(侧边栏解析器+通用NER工具) | | `embed` | `jsonl/*.jsonl`所有JSONL文件 | `parquet/embeddings/<task_id>.parquet`嵌入向量分片 | `nvidia/llama-nemotron-embed-1b-v2`(2048维,滑动窗口模式) | | `reduce` | `parquet/embeddings/*.parquet`所有嵌入向量分片 | `parquet/reduced/<task_id>.parquet`降维结果分片 | scikit-learn PCA + t-SNE、umap-learn UMAP、HDBSCAN聚类算法 | ## 访问注意事项:需越南地区出口权限 `congbobanan.toaan.gov.vn`会拒绝非越南源IP的TLS握手请求,返回`ERR_CONNECTION_CLOSED`错误。如需复现`download`阶段,需使用越南地区的VPS或越南SOCKS5/HTTPS代理(可通过`cfg.scraper.proxy`或`HTTPS_PROXY`环境变量配置)。从Hugging Face Hub下载已发布的Parquet分片包则无此限制。 ## 复现方法 bash # 需在单仓库根目录下执行 pip install -r packages/datasites/congbobanan/requirements.txt python data/congbobanan.toaan.gov.vn/_to_hf.py --repo tmquan/congbobanan-toaan-gov-vn `_to_hf.py` 会按顺序执行以下三项操作: 1. **合并分片**:将`parquet/embeddings/`、`parquet/reduced/`和`jsonl/`下的所有单文档分片合并为`data/`目录下的四个ZSTD压缩Parquet包,每个分片最多包含**10000行数据**,命名格式为`<stage>-<NNNNN>-of-<KKKKK>.parquet`。分片前会基于`doc_name`对数据进行确定性排序,因此重跑脚本会得到完全一致的分片归属。由于PyArrow ≥17版本在处理单文档嵌入分片时偶尔会出现`Repetition level histogram size mismatch`错误,因此使用DuckDB完成`embed`和`reduce`阶段的合并工作。 2. **生成静态资源**:渲染`assets/`目录下的静态绘图PNG图片,以及嵌入本数据集卡片的`_stats.json`统计快照(该功能委托给`_render_assets.py`实现)。 3. **上传至Hub**:将所有产物上传至Hugging Face Hub的指定路径。需注意,该脚本使用`HfApi.upload_folder(path_in_repo=...)`方法,请勿使用`hf upload-large-folder`,因为该命令未指定`--path-in-repo`参数,会将所有文件直接上传至仓库根目录。 可通过`--skip-consolidate`、`--skip-assets`、`--no-upload`参数跳过对应的子步骤。在爬取阶段可通过`--skip-raw-pdf`参数跳过体积庞大的`raw/pdf/`目录(仅需`data/`下的Parquet文件以及`raw/jsonl`和`raw/md`镜像即可满足`load_dataset(...)`的加载需求)。 ## 来源与许可协议 本数据集包含的判决书均为越南最高人民法院在<https://congbobanan.toaan.gov.vn>发布的公开法律文件。源数据中的当事人标识已由发布方进行了缩写处理(例如*Nguyễn Thị T*)。本数据集的再发布遵循**CC-BY 4.0**许可协议,需注明来源为`congbobanan.toaan.gov.vn`。用户在复用原始PDF文件时,需遵守原发布方的相关条款。 ## 引用说明 如使用本数据集,请同时引用原门户及本再发布版本: bibtex @misc{congbobanan_toaan_2026, title = {Vietnamese Court Judgments (congbobanan.toaan.gov.vn)}, author = {TMQuan}, year = {2026}, howpublished = {url{https://huggingface.co/datasets/tmquan/congbobanan-toaan-gov-vn}}, note = {本数据集为越南法院判决书门户的文档级镜像,包含侧边栏元数据、层级结构层及2048维稠密嵌入向量。} } @misc{congbobanan_toaan_source_2026, title = {Vietnamese Court Judgments}, author = {{Công bố bản án — Tòa án nhân dân tối cao}}, year = {2026}, howpublished = {url{https://congbobanan.toaan.gov.vn/}}, note = {越南最高人民法院运营的越南法院判决书与决定书官方发布门户。} }



