用户工具

站点工具


现有语料格式

差别

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

到此差别页面的链接

两侧同时换到之前的修订记录前一修订版
后一修订版
前一修订版
现有语料格式 [2024/06/11 14:54] – [MNBVC语料格式详情] MNBVC项目组现有语料格式 [2024/12/06 16:56] (当前版本) MNBVC项目组
行 30: 行 30:
 对于语料格式的每个jsonl文件,其大小略大于500MB。 对于语料格式的每个jsonl文件,其大小略大于500MB。
  
-关于时间,统一采用字符串的 yyyymmdd 格式,具体规则如下:+==== 关于“时间” ==== 
 +时间字段所有语料格式中都有,必填,代表本语料出现的最早时间,统一采用字符串的 yyyymmdd 格式,具体规则如下:
   - 年份固定为4位,月份和日固定为两位,例如2024年1月1日记为 '20240101'   - 年份固定为4位,月份和日固定为两位,例如2024年1月1日记为 '20240101'
   - 年份不足4位需要在前面补0至4位,如738年3月3日记为 '07380303'   - 年份不足4位需要在前面补0至4位,如738年3月3日记为 '07380303'
行 36: 行 37:
   - 公元前则在前面加上负号,如公元前5000年记为 '-50000101'   - 公元前则在前面加上负号,如公元前5000年记为 '-50000101'
  
-补充:补零4位python代码只需要加上:04d为 f'{$year:04d}',如需将补零4位字符串转换为int,python中 int() 函数会自动识别转换+补充:补零4位python代码只需要加上:04d为 f'{$year:04d}',如需将补零4位字符串转换为int,python中 int() 函数会自动识别转换,如 int('0001') 则为整数 1。
  
 ==== 通用文本输出jsonl格式说明 ==== ==== 通用文本输出jsonl格式说明 ====
行 218: 行 219:
     }     }
 </code> </code>
 +
 +==== 代码commit语料输出jsonl格式说明 =====
 +1.每行是一个文本的数据,对应一个代码仓库里的一个文本文件的变更。
 +
 +2.对于每一行数据,其最高层次结构如下。
 +<code>
 +{
 +    "来源":"github",
 +    "仓库名":"esbatmop/MNBVC",
 +    "path":"/main/README.md",
 +    "文件名":"README.md",
 +    "ext": "md",
 +    "index": "abc1234..def5678",
 +    "message": "Update with new content",
 +    "diff": "@@ -1,3 +1,4 @@
 +             This is the first line.
 +            -This is the second line.
 +            +This line has been modified.
 +             @@ -5,2 +6,3 @@
 +            +This line has been modified again.
 +            +This is another new line added.",
 +    "原始编码":"GBK",
 +    "md5":"差异的md5值",
 +    "时间": str(yyyymmdd),
 +    '扩展字段': "json_string",
 +
 +</code> 
  
 ==== 多轮对话输出jsonl格式说明 ===== ==== 多轮对话输出jsonl格式说明 =====
行 273: 行 301:
             "问题明细":"\"from\": \"human\"",             "问题明细":"\"from\": \"human\"",
             "回答明细":"\"from\": \"gpt\"",             "回答明细":"\"from\": \"gpt\"",
-            "扩展字段": {+            "扩展字段": "{
                         "会话": "yOKd88p",                         "会话": "yOKd88p",
                         "多轮序号": 1,                         "多轮序号": 1,
                         "解析模型": "gpt4"                         "解析模型": "gpt4"
-                        }+                        }"
         }         }
     }     }
行 376: 行 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> 
  
现有语料格式.1718088893.txt.gz · 最后更改: 2024/06/11 14:54 由 MNBVC项目组