“验证程序”的版本间差异
跳到导航
跳到搜索
Andrew Parno(讨论 | 贡献) 小 |
WangJinning(讨论 | 贡献) |
||
第9行: | 第9行: | ||
[https://github.com/YeeZTech/verification-programs/tree/main/src/dianshu2.0/csv 开源地址] | [https://github.com/YeeZTech/verification-programs/tree/main/src/dianshu2.0/csv 开源地址] | ||
输入csv格式的文件,本算法将对文件的数据进行质量评估的统计,并在算法结束后将统计结果输出。统计结果包括csv的行数,列数,总缺失值数,列缺失值数量统计、行缺失值数量统计。算法将以列数最多的行为起点统计缺失值情况。 | |||
* | CSV统计程序运行后输出结果的结构如下所示:<syntaxhighlight lang="json" line="1"> | ||
* | { | ||
* | "rows": 58, | ||
"cols": 6, | |||
"totalNulls": 48, | |||
"NullProportion": 13.79, | |||
"col_nulls": [ | |||
{ "null_num": 6, "count": 1 }, | |||
{ "null_num": 7, "count": 1 }, | |||
{ "null_num": 8, "count": 2 }, | |||
{ "null_num": 9, "count": 1 }, | |||
{ "null_num": 10, "count": 1 } | |||
], | |||
"row_nulls": [ | |||
{ "null_num": 0, "count": 34 }, | |||
{ "null_num": 1, "count": 16 }, | |||
{ "null_num": 2, "count": 2 }, | |||
{ "null_num": 3, "count": 1 }, | |||
{ "null_num": 4, "count": 1 }, | |||
{ "null_num": 5, "count": 3 }, | |||
{ "null_num": 6, "count": 1 } | |||
] | |||
} | |||
</syntaxhighlight>输出的内容有 | |||
* '''<code>rows</code>''':csv中的总行数 | |||
* '''<code>cols</code>''':csv中的总列数 | |||
* '''<code>totalNulls</code>''':总缺失值的数量 | |||
* '''<code>NullProportion</code>''':缺失值百分比,该缺失值精确到小数点后两位。 | |||
* '''<code>col_nulls</code>''':每列中有多少个缺失行的数量统计 | |||
** '''<code>null_num</code>''':表示缺失x行 | |||
** '''<code>count</code>''':缺失x行的数据共有多少列 '''注''':若缺失x行的数量为0时'''<code>(count=0)</code>,将不会输出''';<code>null_num > 1000</code> 时的统计将统一存储在<code>null_num=1001</code>的条目中。这两个条件对缺失列的数据统计同样适用。 | |||
* '''<code>row_nulls</code>''':每行中有多少个缺失列的数量统计 | |||
** '''<code>null_num</code>''':表示缺失x列 | |||
** '''<code>count</code>''':缺失x列的数据共有多少行 | |||
=== 文本抽样程序 === | === 文本抽样程序 === | ||
输入txt格式的文本文件,本算法将对txt文件进行质量评估,将txt文件的前中后位置上的部分内容打包输出到一个json文件中。目前的算法中,当输入txt文件后,将返回该txt内容的前150字,尾部150字以及中间300字。当txt中内容太段(目前该限制为小于1500字)时,将改为取txt的前15%,后15%以及中间30%的内容。 | |||
注:在分析中,一个“字”表示一个 英文字母/汉字/符号/操作符 等内容。 | |||
文本抽样运行后输出结果的结构如下所示:<syntaxhighlight lang="json"> | |||
{ | |||
"head": "#include \"user_type.h\"\n#include \"string_process.h\"\n#include \"ypc/core_t/analyzer/data_source.h\"\n#include \"ypc/stbox/ebyte.h\"\n#include \"ypc/stbox/stx_c", | |||
"mid": "一个batch的所需长度\n int start_pos = total_size / 2 - 50; // 中间的100字节的起始位置\n int mid_batch_no = start_pos / batch_max_size; // 中间的100字节所在的batch的编号\n \n start_pos = start_pos % batch_max_size; // 中间的100字节的起始位置在batch中的位置\n\n LOG(INFO) << \"Batch Num: \" << batch_num;\n LOG(INFO) << \"Start Position:", | |||
"tail": " process_string(middle_100) + \"\\\"}\";\n return result;\n }\n\nprotected:\n std::vector<std::shared_ptr<ypc::data_source_with_dhash>> m_datasources;\n};\n", | |||
"total": "3474" | |||
} | |||
</syntaxhighlight>输出的内容有: | |||
* '''<code>head</code>''':txt文件头部150字内容 | |||
* '''<code>mid</code>''':txt文件中部300字内容 | |||
* '''<code>tail</code>''':txt文件尾部150字内容 | |||
* '''<code>total</code>''':文本文件中的总字数统计 | |||
以上例子中展示的是一个包含代码内容的txt文件,除了普通文字内容,代码中包含了更多的换行符以及引号,换行符将在结果中以''''<code>'\n'</code>'''的形式被输出内容中的引号为了防止json解析失败也会以'''<code>'\"'</code>'''的格式输出。 | |||
=== 视频抽样程序 === | === 视频抽样程序 === | ||
输入mp4格式的文件,本算法将读取mp4的内容并截取其中的数帧的画面编码成base64格式的json数据输出,输出图片不固定,在每次运行时都将随机选取图片输出,目前规定输出的内容视频总时间、三张视频截图(以Base64编码表示)以及其三张截图的截取时间, | |||
==== 输出形式 ==== | |||
<syntaxhighlight lang="json"> | |||
{ | |||
totalDuration: // 总时长 | |||
positions: [ | |||
{ | |||
duration: // 时间点 | |||
picture: // 截取图片 | |||
}, | |||
{ | |||
duration: | |||
picture: | |||
}, | |||
{ | |||
duration: | |||
picture: | |||
} | |||
] | |||
} | |||
</syntaxhighlight> | |||
* '''<code>totalDuration</code>''':该字段中包含了所有视频截图的编码数据,每一条数据都代表一张视频截图的base64编码,可通过解码获取原图。 | |||
* '''<code>positions</code>''': | |||
** '''<code>duration</code>''':截取图片对应时间(以秒为单位表示)。 | |||
** '''<code>picture</code>''':该字段中包含了所有视频截图的编码数据,每一条数据都代表一张视频截图的base64编码,可通过解码获取原图。 |
2024年3月29日 (五) 06:38的版本
验证程序是一种特殊的微处理程序,用于披露数据某些维度的信息,以供买方参考。通常,验证程序不会披露额外的信息,这是由隐私计算技术保证的。
本文说明了典枢中各种验证程序的细节信息。
未来,典枢还将支持用户自定义验证程序。
CSV统计程序
输入csv格式的文件,本算法将对文件的数据进行质量评估的统计,并在算法结束后将统计结果输出。统计结果包括csv的行数,列数,总缺失值数,列缺失值数量统计、行缺失值数量统计。算法将以列数最多的行为起点统计缺失值情况。
CSV统计程序运行后输出结果的结构如下所示:
{
"rows": 58,
"cols": 6,
"totalNulls": 48,
"NullProportion": 13.79,
"col_nulls": [
{ "null_num": 6, "count": 1 },
{ "null_num": 7, "count": 1 },
{ "null_num": 8, "count": 2 },
{ "null_num": 9, "count": 1 },
{ "null_num": 10, "count": 1 }
],
"row_nulls": [
{ "null_num": 0, "count": 34 },
{ "null_num": 1, "count": 16 },
{ "null_num": 2, "count": 2 },
{ "null_num": 3, "count": 1 },
{ "null_num": 4, "count": 1 },
{ "null_num": 5, "count": 3 },
{ "null_num": 6, "count": 1 }
]
}
输出的内容有
rows
:csv中的总行数cols
:csv中的总列数totalNulls
:总缺失值的数量NullProportion
:缺失值百分比,该缺失值精确到小数点后两位。col_nulls
:每列中有多少个缺失行的数量统计null_num
:表示缺失x行count
:缺失x行的数据共有多少列 注:若缺失x行的数量为0时(count=0)
,将不会输出;null_num > 1000
时的统计将统一存储在null_num=1001
的条目中。这两个条件对缺失列的数据统计同样适用。
row_nulls
:每行中有多少个缺失列的数量统计null_num
:表示缺失x列count
:缺失x列的数据共有多少行
文本抽样程序
输入txt格式的文本文件,本算法将对txt文件进行质量评估,将txt文件的前中后位置上的部分内容打包输出到一个json文件中。目前的算法中,当输入txt文件后,将返回该txt内容的前150字,尾部150字以及中间300字。当txt中内容太段(目前该限制为小于1500字)时,将改为取txt的前15%,后15%以及中间30%的内容。
注:在分析中,一个“字”表示一个 英文字母/汉字/符号/操作符 等内容。
文本抽样运行后输出结果的结构如下所示:
{
"head": "#include \"user_type.h\"\n#include \"string_process.h\"\n#include \"ypc/core_t/analyzer/data_source.h\"\n#include \"ypc/stbox/ebyte.h\"\n#include \"ypc/stbox/stx_c",
"mid": "一个batch的所需长度\n int start_pos = total_size / 2 - 50; // 中间的100字节的起始位置\n int mid_batch_no = start_pos / batch_max_size; // 中间的100字节所在的batch的编号\n \n start_pos = start_pos % batch_max_size; // 中间的100字节的起始位置在batch中的位置\n\n LOG(INFO) << \"Batch Num: \" << batch_num;\n LOG(INFO) << \"Start Position:",
"tail": " process_string(middle_100) + \"\\\"}\";\n return result;\n }\n\nprotected:\n std::vector<std::shared_ptr<ypc::data_source_with_dhash>> m_datasources;\n};\n",
"total": "3474"
}
输出的内容有:
head
:txt文件头部150字内容mid
:txt文件中部300字内容tail
:txt文件尾部150字内容total
:文本文件中的总字数统计
以上例子中展示的是一个包含代码内容的txt文件,除了普通文字内容,代码中包含了更多的换行符以及引号,换行符将在结果中以''\n'
的形式被输出内容中的引号为了防止json解析失败也会以'\"'
的格式输出。
视频抽样程序
输入mp4格式的文件,本算法将读取mp4的内容并截取其中的数帧的画面编码成base64格式的json数据输出,输出图片不固定,在每次运行时都将随机选取图片输出,目前规定输出的内容视频总时间、三张视频截图(以Base64编码表示)以及其三张截图的截取时间,
输出形式
{
totalDuration: // 总时长
positions: [
{
duration: // 时间点
picture: // 截取图片
},
{
duration:
picture:
},
{
duration:
picture:
}
]
}
totalDuration
:该字段中包含了所有视频截图的编码数据,每一条数据都代表一张视频截图的base64编码,可通过解码获取原图。positions
:duration
:截取图片对应时间(以秒为单位表示)。picture
:该字段中包含了所有视频截图的编码数据,每一条数据都代表一张视频截图的base64编码,可通过解码获取原图。