1 个不稳定版本
0.1.0 | 2021年6月29日 |
---|
#911 在 文本处理
75KB
1.5K SLoC
Synox
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