#lace #specification #data #default #utilities #yaml #codebook

lace_codebook

包含Lace代码本规范以及生成默认值的实用工具

12个版本 (5个破坏性)

0.7.0 2024年6月25日
0.6.0 2024年2月7日
0.5.0 2024年1月23日
0.3.0 2023年11月21日
0.1.4 2023年7月26日

编码 中排名 #757

Download history 3/week @ 2024-04-14 2/week @ 2024-04-21 6/week @ 2024-04-28 5/week @ 2024-05-05 1/week @ 2024-05-12 4/week @ 2024-05-19 10/week @ 2024-05-26 9/week @ 2024-06-02 6/week @ 2024-06-09 14/week @ 2024-06-16 150/week @ 2024-06-23 21/week @ 2024-06-30 9/week @ 2024-07-21 60/week @ 2024-07-28

每月下载量 69
用于 4 个crate(3个直接使用)

BUSL-1.1

350KB
9K SLoC

Lace代码本

包含Lace代码本规范以及生成默认值的实用工具。

如果您设计了一个新类型,请在 lace_utils 中实现 FromStr,并决定它在crate中的代码本中的优先级。


lib.rs:

Codebook 是一个YAML文件,用于将元数据与数据集相关联。用户可以为每个状态的结构设置先验概率,可以识别每个列的模型,并设置超先验。

通常数据列太多,无法手动编写代码本,因此存在根据数据集猜测默认代码本的功能。然后用户可以编辑默认文件。

示例

一个两列数据集的示例代码本。

use indoc::indoc;

let codebook_str = indoc!("
    ---
    table_name: two column dataset
    state_prior_process:
      !dirichlet
        alpha_prior:
          shape: 1.0
          rate: 1.0
    view_prior_process:
      !pitman_yor
        alpha_prior:
          shape: 1.0
          rate: 1.0
        d_prior:
          alpha: 1.0
          beta: 2.0
    col_metadata:
      - name: col_1
        notes: first column with all fields filled in
        coltype:
          !Categorical
            k: 3
            hyper:
              pr_alpha:
                shape: 1.0
                scale: 1.0
            prior:
                k: 3
                alpha: 0.5
            value_map: !string
              0: red
              1: green
              2: blue
      - name: col_2
        notes: A binary column with optional fields left out
        coltype:
          !Categorical
            k: 2
            value_map: !u8 2
    comments: An example codebook
    row_names:
      - A
      - B
      - C
      - D
      - E");

let codebook: Codebook = serde_yaml::from_str(&codebook_str).unwrap();

assert_eq!(codebook.col_metadata.len(), 2);

依赖项

~28–60MB
~1M SLoC