用户工具

站点工具


现有语料格式

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录前一修订版
后一修订版
前一修订版
现有语料格式 [2024/09/21 11:27] – [代码commit语料输出jsonl格式说明] MNBVC项目组现有语料格式 [2025/11/29 14:57] (当前版本) – [论坛语料输出jsonl格式说明] MNBVC项目组
行 107: 行 107:
 <code> <code>
 { {
-    "id":123456,+    "id": "123",
     "问":"写一个超短小说",     "问":"写一个超短小说",
     "答":"他们相遇,又别离。岁月如梭,情感却不减。",     "答":"他们相遇,又别离。岁月如梭,情感却不减。",
行 146: 行 146:
 <code>  <code> 
 { {
-    "id": 0,+    "id": "0",
     "问": "如何在PS3上玩PS2游戏",     "问": "如何在PS3上玩PS2游戏",
     "答": "1. 了解基础知识 ...",     "答": "1. 了解基础知识 ...",
行 234: 行 234:
     "message": "Update with new content",     "message": "Update with new content",
     "diff": "@@ -1,3 +1,4 @@     "diff": "@@ -1,3 +1,4 @@
- This is the first line. +             This is the first line. 
--This is the second line. +            -This is the second line. 
-+This line has been modified. +            +This line has been modified. 
- This is the third line. +             @@ -5,2 +6,3 @@ 
-+This is a new line added. +            +This line has been modified again. 
-@@ -5,2 +6,3 @@ +            +This is another new line added.",
- This is the fifth line. +
--This is the sixth line. +
-+This line has been modified again. +
-+This is another new line added.",+
     "原始编码":"GBK",     "原始编码":"GBK",
     "md5":"差异的md5值",     "md5":"差异的md5值",
行 320: 行 316:
 <code>  <code> 
 { {
-    "ID": 10000,+    "ID": "10000",
     "主题": "主题",     "主题": "主题",
     "来源": "清华树洞",     "来源": "清华树洞",
行 378: 行 374:
 <code>  <code> 
 { {
-        "ID": 275957,+        "ID": "275957",
         "主题": "出一张今晚七点贝多芬专场作品音乐会的票,一楼18排4座,原价60出。",         "主题": "出一张今晚七点贝多芬专场作品音乐会的票,一楼18排4座,原价60出。",
         "来源": "北大树洞",         "来源": "北大树洞",
行 408: 行 404:
  
 ==== 平行语料输出jsonl格式说明 ==== ==== 平行语料输出jsonl格式说明 ====
-1.对于每一个文件,他的json结构层次如下:+语料文件是多行 jsonl 格式,这是其中一行的样例(实际上一行即为一个json,不需要缩进打印):
 <code>  <code> 
 { {
-    '文件名': '文件.txt', # 过滤语料种类,取中文的输入文件的文件名 +    "文件名": "Terraria-workshop-localization_test2.jsonl", 
-    '是否待查文件': False, # 如果是True就是不怎么靠谱,告诉大家尽量别用 +    "是否待查文件": false, 
-    '是否重复文件': False, # 留给其它小组的字段,我们小组给False就行 +    "是否重复文件": false, 
-    '段落数': 0, +    "段落数": 17944, 
-    '去重段落数': 0, # 只看中文zh_text,完全相等就算重 +    "去重段落数": 0, 
-    '低质量段落数': 0, # 中文或者英文有缺(为空字符串)的段落数量 +    "低质量段落数": 0, 
-    '段落': [], +    "行号": 1, 
-    '扩展字段': 任意字符串,建议为json格式,但也可用直接用自然语言写注释,比如用于描述内层段落级别的扩展字段, +    "是否重复": false, 
-    '时间': str(yyyymmdd)+    "是否跨文件重复": false, 
 +    "it_text": "", 
 +    "zh_text": "正在生成海洋沙", 
 +    "en_text": "Generating ocean sand", 
 +    "ar_text": "", 
 +    "nl_text": "", 
 +    "de_text": "", 
 +    "eo_text": "", 
 +    "fr_text": "Génération du sable de l'océan", 
 +    "he_text": "", 
 +    "ja_text": "", 
 +    "pt_text": "Gerando areia do oceano", 
 +    "ru_text": "Создание песка в океане", 
 +    "es_text": "", 
 +    "sv_text": "", 
 +    "ko_text": "", 
 +    "th_text": "", 
 +    "id_text":"", 
 +    "cht_text":"", 
 +    "vi_text":"", 
 +    "扩展字段": "{\"other_texts\": {\"cs\": \"Generování mořského písku\", \"pl\": \"Generowanie piasku morskiego\", \"hu\": \"Tengeri homok elhelyezése\", \"uk\": \"Генерація океанського піску\", \"tr\": \"Okyanus kumu üretme\"}}", 
 +    "时间": "20240316", 
 +    "zh_text_md5": "b656579704c6ca5acc29f2aa36159ce2"
 } }
-</code> +</code>
  
-**注意:**所有语种字段的双字母缩写优先参考[ISO 639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)的定义,并且优先填写下文所注的段落级主要字段,如果没有,则根据iso双字母简写填入扩展字段中。如果所收录语言并不在 iso 639-1 双字母简写表中,请自己起一个不与其他双字母简写有冲突的key名写到扩展字段中,并将其key名和对应的语种作为注释写到文件级扩展字段中。+如果语料格式与平行语料小组的github主仓库有差异,**以仓库内的README所展示的为准**。https://github.com/mnbvc-parallel-corpus-team/parallel_corpus_mnbvc
  
-2.将每一行为一个段落,段落的json结构层次如下:+字段说明:
  
-<code>  +**文件名**: 建议和输出的 jsonl 文件名保持一致。对于每份独立的语料,以文件名为唯一依据。每份文件独立计算的 `时间`, `是否待查文件`, `是否跨文件重复`, `是否重复`, `是否重复文件`, `段落数`,  `低质量段落数`,  `去重段落数` 会随文件名冗余多份,保证文件名相等的情况下这几个字段结果相等。所以建议取一个**能够精确描述这份语料来源**的文件名。
-{ +
-    '行号': 如果源文件有行号信息,可以记在此处,否则取从1开始递增的值,尽量保证每个段落的行号都不同, +
-    '是否重复': False, # 用zh_text全等进行判断,第一次出现的是False,后面重复的就是True +
-    '是否跨文件重复': False, # 留给其它小组的字段,我们小组给False就行 +
-    'zh_text_md5': 十六进制的中文语句的md5,可以直接用hashlib.md5(zh_text).hexdigest()得到, +
-    'zh_text': 中文, +
-    'en_text': 英语, +
-    'ar_text': 阿拉伯语, +
-    'nl_text': 荷兰语, +
-    'de_text': 德语, +
-    'eo_text': 世界语, +
-    'fr_text': 法语, +
-    'he_text': 希伯来文, +
-    'it_text': 意大利语, +
-    'ja_text': 日语, +
-    'pt_text': 葡萄牙语, +
-    'ru_text': 俄语, +
-    'es_text': 西班牙语, +
-    'sv_text': 瑞典语, +
-    'ko_text': 韩语, +
-    'th_text': 泰语, +
-    'id_text': 印尼语, +
-    'vi_text': 越南语, +
-    'cht_text': 繁体中文, +
-    'other1_text': 原小语种1,因为意义不明确,每个语料的语种不统一,不建议使用,请固定给空字符串, +
-    'other2_text': 原小语种2,因为意义不明确,每个语料的语种不统一,不建议使用,请固定给空字符串, +
-    '扩展字段': json格式字符串,详细约定见下文 +
-} +
-</code>+
  
-**段落**+**是否待查文件**: 如果是 True 就是不怎么靠谱,告诉大家尽量别用,平行语料小组收录的语料的此字段若无特殊情况将**全部给 False**
  
-<code> +**是否重复文件**: 留给其它小组的进行去重工作的字段,平行语料小组收录的语料的此字段将**全部给 False**
-{ +
-    other_texts: { +
-        {lang1_iso}: "", +
-        {lang2_iso}: "" +
-    }, +
-    ... +
-} +
-</code>+
  
-**文件**+**段落数**: 等于整份文件中jsonl的行数
  
-<code> +**去重段落数**: 以 `zh_text` 为依据,“重复了的段落”的个数,注意**不是去重后不同的段落个数**
-{ +
-    other_texts_iso_map: { +
-        {lang1_iso}: "语种1", +
-        {lang2_iso}: "语种2" +
-    } +
-} +
-</code>+
  
-如果没有别的需要收录的语种,并且也没有其它信息需要用扩展字段记录时,扩展字段这里约定填{}来保证json.loads不会出问题。+**低质量段落数**: `zh_text` 或者 `en_text` 有缺(为空字符串)的段落数量 
 + 
 +**行号**: 段落下标,是一个取值范围在 `[1, 段落数]` 之间的整数 
 + 
 +**是否重复**: 由 `zh_text` 是否重复来决定,每个非重复段落第一次出现时是 False, 此后再次出现发现已重复时是 True 
 + 
 +**是否跨文件重复**: 留给其它小组的进行去重工作的字段,平行语料小组收录的语料的此字段将**全部给 False** 
 + 
 +**时间**: `yyyymmdd` 格式的日期字符串,表示这份语料被转换为本文所定义的标准平行语料格式的时间。可以参考样例
  
-3.一份样例语料数据(注意,扩展字段直接用json.dumps(obj,ensure_ascii=False)生成,故会带反斜杠将内部字符串的双引号转义): 
  
-<code> 
-{ 
-    "文件名": "Terraria-workshop-localization_test2.jsonl", 
-    "是否待查文件": false, 
-    "是否重复文件": false, 
-    "段落数": 17944, 
-    "去重段落数": 0, 
-    "低质量段落数": 0, 
-    "段落": [ 
-        { 
-            "行号": 1, 
-            "是否重复": false, 
-            "是否跨文件重复": false, 
-            "it_text": "", 
-            "zh_text": "正在生成海洋沙", 
-            "en_text": "Generating ocean sand", 
-            "ar_text": "", 
-            "nl_text": "", 
-            "de_text": "", 
-            "eo_text": "", 
-            "fr_text": "Génération du sable de l'océan", 
-            "he_text": "", 
-            "it_text": "", 
-            "ja_text": "", 
-            "pt_text": "Gerando areia do oceano", 
-            "ru_text": "Создание песка в океане", 
-            "es_text": "", 
-            "sv_text": "", 
-            "ko_text": "", 
-            "th_text": "", 
-            "other1_text": "", 
-            "other2_text": "", 
-            "id_text":"", 
-            "cht_text":"", 
-            "vi_text":"", 
-            "扩展字段": "{ 
-                \"other_texts\": { 
-                    \"cs\": \"Generování mořského písku\", 
-                    \"pl\": \"Generowanie piasku morskiego\", 
-                    \"hu\": \"Tengeri homok elhelyezése\", 
-                    \"uk\": \"Генерація океанського піску\", 
-                    \"tr\": \"Okyanus kumu üretme\" 
-                }, 
-            }", 
-            "时间": "20240316", 
-            "zh_text_md5": "b656579704c6ca5acc29f2aa36159ce2" 
-        } 
-    ], 
-    "扩展字段": "{ 
-        \"other_texts_iso_map\": { 
-            \"cs\": \"捷克语\", 
-            \"pl\": \"波兰语\", 
-            \"hu\": \"匈牙利语\", 
-            \"uk\": \"乌克兰语\", 
-            \"tr\": \"土耳其语\" 
-        } 
-    }", 
-    "时间": "20240316" 
-} 
-</code> 
  
现有语料格式.1726918024.txt.gz · 最后更改: (外部编辑)