1 个不稳定版本

0.1.0 2021年6月29日

#911文本处理

MIT 许可证

75KB
1.5K SLoC

Synox 构建状态 Crates.io 文档

Synox 实现了从输入输出示例中实现字符串转换的程序综合。字符串程序综合在最终用户程序中最著名的应用可能是 Excel 中的 Flash Fill 功能。这些字符串转换是从输入输出示例中学习得到的。

Synox 目前实现了与 Flash Fill 类似的算法 BlinkFill (Singh '16, in Proc. VLDB)

使用方法

将以下内容添加到您的 Cargo.toml

[dependencies]
synox = "0.1"

示例

考虑以下表格,其中输出列中缺少一个条目。

姓名 毕业年份 输出
Alyssa P. Hacker 1985 A. Hacker '85
Ben Bitdiddle 2002 B. Bitdiddle '02
Cy D. Fect 2017 ?

Synox 可以推断出一个程序,自动将缺少的条目填充为 "C. Fect '17"。

use synox::StringProgram;
use synox::blinkfill;

let unpaired: &[Vec<&str>] = &[];
let examples = &[(vec!["Alyssa P. Hacker", "1985"], "A. Hacker '85"   ),
                 (vec!["Ben Bitdiddle",    "2002"], "B. Bitdiddle '02")];

let prog = blinkfill::learn(unpaired, examples)?;

let result = prog.run(&["Cy D. Fect", "2017"])?;
assert_eq!(result, "C. Fect '17");

许可证

版权所有 (c) 2021 Anish Athalye。根据 MIT 许可证发布。有关详细信息,请参阅 LICENSE.md

依赖项

~2.2–3MB
~54K SLoC