3个不稳定版本

0.2.1 2021年7月14日
0.2.0 2021年7月11日
0.1.0 2021年7月10日

#1490 in 文本处理

MIT/Apache

12KB
161

词组合成

词组合成是由两个其他词组合而成的合成词,例如 "liquid" + "slinky" = "liquinky"

不一定总是可以从输入词中生成词组合成(有一些质量检查),因此暴露的 portmanteau 函数返回一个 Option<String>

获取结果的一般指南如下

  • 两个词都需要超过5个字母长
  • 两个词都必须是小写
  • 两个词都必须有元音

该库的初始实现主要受到 jamcowl的词组合成机器人 的工作的启发。完整的实现不可用在其仓库中,并且随着时间的推移,我的实现可能在方法和输出方面与他们有所不同(在有些情况下已经有所不同)

请不要因为该算法产生的任何侮辱性词语或诽谤性言辞而责怪我(或该仓库的任何贡献者)。没有对不良语言的检查,也没有计划添加任何。我的(或任何贡献者)的工作不是确定什么是或不是冒犯性的

说明

从高层次来看,这是算法的工作方式

  1. 检查输入是否良好
  2. 查看是否存在任何共享的3字母组合(三元组)*。如果有的话在这里连接
  3. 查看是否存在任何共享的元音*。如果有的话在这里连接
  4. 将第一个词的右端元音与第二个词的左端元音连接起来

*:为了避免低质量输出,这些操作将截断第一个词的开头和最后一个词的结尾

安装

要作为系统上的二进制应用程序安装和使用 portmanteau,您只需运行

cargo install portmanteau

如果您正在更新,则需要 --force 标志

有关使用说明,请参阅 portmanteau --help

路线图

  • 优化/增强
    • 请参阅其他分支以查看尝试优化的地方,其中它们的表现更差(如果有的话)(耻辱榜,如果您愿意)
  • 更好的质量控制(在v0.2.0中完成)
  • 基准测试(在v0.2.0中添加)
    • 针对代码路径的基准测试(三元组匹配、元音匹配、随机元音)
  • 更彻底的测试
  • 构建器模式,以实现更可配置的生成
  • 命令行工具(可在工作区 portmanteau-bin 中使用)

许可协议

与 Rust 相似,此库可自由选择 MIT 或 Apache 2.0 许可协议

依赖项

~74KB