3个不稳定版本
0.2.1 | 2021年7月14日 |
---|---|
0.2.0 | 2021年7月11日 |
0.1.0 | 2021年7月10日 |
#1490 in 文本处理
12KB
161 行
词组合成
词组合成是由两个其他词组合而成的合成词,例如 "liquid" + "slinky" = "liquinky"
不一定总是可以从输入词中生成词组合成(有一些质量检查),因此暴露的 portmanteau
函数返回一个 Option<String>
获取结果的一般指南如下
- 两个词都需要超过5个字母长
- 两个词都必须是小写
- 两个词都必须有元音
该库的初始实现主要受到 jamcowl的词组合成机器人 的工作的启发。完整的实现不可用在其仓库中,并且随着时间的推移,我的实现可能在方法和输出方面与他们有所不同(在有些情况下已经有所不同)
请不要因为该算法产生的任何侮辱性词语或诽谤性言辞而责怪我(或该仓库的任何贡献者)。没有对不良语言的检查,也没有计划添加任何。我的(或任何贡献者)的工作不是确定什么是或不是冒犯性的
说明
从高层次来看,这是算法的工作方式
- 检查输入是否良好
- 查看是否存在任何共享的3字母组合(三元组)*。如果有的话在这里连接
- 查看是否存在任何共享的元音*。如果有的话在这里连接
- 将第一个词的右端元音与第二个词的左端元音连接起来
*:为了避免低质量输出,这些操作将截断第一个词的开头和最后一个词的结尾
安装
要作为系统上的二进制应用程序安装和使用 portmanteau
,您只需运行
cargo install portmanteau
如果您正在更新,则需要 --force
标志
有关使用说明,请参阅 portmanteau --help
路线图
- 优化/增强
- 请参阅其他分支以查看尝试优化的地方,其中它们的表现更差(如果有的话)(耻辱榜,如果您愿意)
更好的质量控制(在v0.2.0中完成)- 基准测试(在v0.2.0中添加)
- 针对代码路径的基准测试(三元组匹配、元音匹配、随机元音)
- 更彻底的测试
- 构建器模式,以实现更可配置的生成
命令行工具(可在工作区portmanteau-bin
中使用)
许可协议
与 Rust 相似,此库可自由选择 MIT 或 Apache 2.0 许可协议
依赖项
~74KB