尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

DeepType多语言数据管道全解析:如何为英法西德葡5种语言构建训练数据

DeepType多语言数据管道全解析:如何为英法西德葡5种语言构建训练数据 DeepType多语言数据管道全解析如何为英法西德葡5种语言构建训练数据【免费下载链接】deeptypeCode for the paper DeepType: Multilingual Entity Linking by Neural Type System Evolution项目地址: https://gitcode.com/gh_mirrors/de/deeptypeDeepType 多语言数据管道是 OpenAI 论文《DeepType: Multilingual Entity Linking by Neural Type System Evolution》的官方代码库它为实体链接Entity Linking任务提供了一套完整的数据处理流水线。只需几条命令你就能从维基百科和 Wikidata 原始数据一键构建出覆盖英语、法语、西班牙语、德语、葡萄牙语5 种语言的训练数据并训练出基于类型系统的多语言实体链接模型。对新手来说这个项目的最大价值在于它把如何为多语言 NLP 项目搭建数据管道这件事拆解得非常清楚——下载、压缩、抽取、转换、修复、窗口化每一步都有独立的脚本改一处即可适配新语言。1️⃣ 项目结构先认识数据管道的骨架整个仓库围绕三个目录展开理解它们的分工就理解了数据流向目录职责extraction/数据管道主体下载、抽取、转换、生成训练样本learning/训练代码与 5 语言训练配置wikidata_linker_utils_src/底层工具库Cython 加速的消歧、Wikidata 迭代器等核心思路一句话概括用类型系统约束答案空间。实体链接面对数百万候选答案时非常困难而类型系统比如这是一个地点、出生于 1950 年前的人能把候选压缩到少数几类官方结果在 CoNLL 和 TAC KBP 2010 两个基准上取得了 98.6%~99% 的准确率。2️⃣ 一键构建full_preprocess.sh 数据管道全流程多语言数据管道构建的入口只有一个脚本full_preprocess.sh在 README.md 中给出了标准用法export DATA_DIRdata/ ./extraction/full_preprocess.sh ${DATA_DIR} en fr es参数就是任意语言列表en英、fr法、es西、de德、pt葡脚本内部会自动完成 7 个步骤下载并压缩 Wikidata拉取latest-all.json.bz2全量转储解压后用 compress_wikidata_msgpack.py 剔除 labels、descriptions、aliases 等冗余字段转成紧凑的 msgpack 二进制文件latest-all.mp建立标题→实体映射get_wikiname_to_wikidata.py 遍历全部实体生成wikititle2wikidata.marisaMarisa Trie 加速查找和wikidata_ids.txt按语言下载维基百科依次拉取{lang}wiki-latest-pages-articles.xml.bz2并解压抽取三类链接get_redirection_category_links.py 用正则从 wiki 源码中抽出正文链接、重定向和分类链接输出{lang}_anchors.tsv、{lang}_redirections.tsv、{lang}_category_links.tsv分类链接转 Wikidata IDconvert_category_links_to_wikidata.py 把分类页名映射到 QID锚点链接转 Wikidata IDconvert_anchor_tags_to_wikidata.py 生成{lang}_trie即触发词→实体映射表链接修复fast_link_fixer.py 利用 Wikidata 的 instance of 等父子关系把同一实体的多个页面归并到最常见版本产出最终可用的{lang}_trie_fixed。小细节脚本对每一步都做幂等检查已下载的文件会自动跳过中断后重跑不会浪费时间。3️⃣ 多语言适配一组正则覆盖 5 种语言的命名习惯很多数据管道做多语言时踩的坑这个项目用一个常量表优雅解决了。在 get_redirection_category_links.py 中分类链接前缀被统一定义为英语Category:、法语Catégorie:、西语Categoría:、葡语Categoria:、德语Kategorie:甚至还覆盖了Kategoria:、Категория:等变体重定向标记同样多语言化#REDIRECT、德语#weiterleitung、西语#REDIRECCIÓN、葡语REDIRECIONAMENTO。这意味着新增一种语言的成本极低确认该语言的分类前缀和重定向标记在列表中把语言代码传给full_preprocess.sh即可整条多语言数据管道无需改动其他代码。4️⃣ 生成训练样本从 TSV 到窗口化 H5原始数据准备好后进入训练数据构建阶段分两步走第一步生成 token-QID 对齐的 TSV 文件使用 produce_wikidata_tsv.py输入一个语言配置文件输出每列一个 token、附带 Wikidata 实体 ID 的 TSVexport LANGUAGEen python3 extraction/produce_wikidata_tsv.py extraction/configs/${LANGUAGE}_disambiguator_config_export.json ${LANGUAGE}_train.tsv --relative_to ${DATA_DIR}其中extraction/configs/目录下为 5 种语言各备了一份消歧配置文件en/fr/es/de/pt开头的*_disambiguator_config_export.json只需替换LANGUAGE变量即可批量产出。第二步窗口化打包成 H5produce_windowed_h5_tsv.py 把每个实体链接位置前后各window_size推荐 10行打包成一个样本并按--validation_start切分出训练集与验证集生成{lang}_train.h5和{lang}_dev.h5python3 extraction/produce_windowed_h5_tsv.py ${LANGUAGE}_train.tsv ${LANGUAGE}_train.h5 ${LANGUAGE}_dev.h5 --window_size 10 --validation_start 1000000 --total_size 2005000005️⃣ 一份配置管 5 种语言en_fr_es_de_pt.json窗口化文件产出后多语言数据管道的最后一环是训练配置。项目自带 en_fr_es_de_pt.json它是全项目最能体现多语言数据管道设计的一文件datasets为英、法、西、德、葡 5 种语言各声明train/dev两组 H5 数据集objectives4 个多任务分类目标——type类型、location地点、country国家、time时间对应extraction/classifiers/下的 type_classifier.py、location_classifier.py、country_classifier.py、time_classifier.pyfeaturesword200 维词向量、2/3 字母前缀与后缀、数字、大小写、标点计数——这套字符级特征天然跨语言是 5 语言共享模型的关键。想先验证类型系统本身的上限可用 evaluate_type_system.py 跑 Oracle 评测想自动演化出更好的类型系统则用 evolve_type_system.py支持cem、greedy、beam、ga四种方法。6️⃣ 训练模型与新手验证路径安装依赖见 requirements.txtpip3 install -r requirements.txt pip3 install wikidata_linker_utils_src/启动训练只需一条命令CUDA_VISIBLE_DEVICES0 python3 learning/train_type.py learning/configs/en_fr_es_de_pt.json --cudnn --fused --hidden_sizes 200 200 --batch_size 256 --name TypeClassifier --save_dir my_model⚠️新手提示不必一上来就啃 2 亿行英文维基。项目提供了迷你测试集 learning/test/config.json含词性 CRF 和猫 vs 狗对数似然两个目标运行python3 learning/train_type.py learning/test/config.json就能快速验证你的训练环境是否正常。7️⃣ 快速上手清单 安装依赖pip3 install -r requirements.txtpip3 install wikidata_linker_utils_src/一键跑数据管道./extraction/full_preprocess.sh data/ en fr es de pt每种语言生成 TSVproduce_wikidata_tsv.py 对应语言配置窗口化打包produce_windowed_h5_tsv.py产出train.h5/dev.h5用learning/configs/en_fr_es_de_pt.json启动learning/train_type.py多语言联合训练总结DeepType 的多语言数据管道用一个入口脚本 一组按语言参数化的中间产物 一份跨语言统一配置的设计把英法西德葡 5 种语言的实体链接训练数据构建变成了可复制、可扩展的流水线。想深入类型系统的可视化分析可以继续看 TypeSystemToNeuralTypeSystem.ipynb 与 LearnabilityStudy.ipynb 两个 Notebook。【免费下载链接】deeptypeCode for the paper DeepType: Multilingual Entity Linking by Neural Type System Evolution项目地址: https://gitcode.com/gh_mirrors/de/deeptype创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表