gnugat / pronounceableword
一个轻量级、可自定义且简单的库,用于生成随机且易发音的单词,无需使用字典或马尔可夫链。
Requires
- php: >=5.2
This package is not auto-updated.
Last update: 2022-02-01 12:20:02 UTC
README
PronounceableWord PHP 库
一个轻量级、可自定义且简单的 PHP (≥ 5.2) 库,用于生成随机且易发音的单词、名称和密码,无需使用现有单词数据库或像马尔可夫链那样的大文本样本。
警告
由于生成器的随机性,可能会生成冒犯性或侮辱性的单词(请参阅如何处理它们 ./doc/manageOffensiveAndInsultingWords.rst
)。
安装和用法
首先,获取最新稳定版本,并将其放置在可访问的目录中。
您可以使用 composer 来完成此操作(https://packagist.org.cn/),在您的文件 ./composer.json
中的 require
添加以下条目: "gnugat/PronounceableWord": "*"
。
您应该拥有一个完全运行的易发音单词生成器
<?php // File "/index.php". require_once dirname(__FILE__) . '/vendor/PronounceableWord/src/PronounceableWord/DependencyInjectionContainer.php'; define('MINIMUM_LENGTH', 5); define('MAXIMUM_LENGTH', 11); $length = rand(MINIMUM_LENGTH, MAXIMUM_LENGTH); $container = new PronounceableWord_DependencyInjectionContainer(); $generator = $container->getGenerator(); $word = $generator->generateWordOfGivenLength($length);
配置
要自定义算法、使用的字母、链接字母或类型,只需复制并修改 ./src/PronounceableWord/Configuration
目录中的文件,然后将您的配置类传递给容器(请参阅如何配置 ./doc/configuration.rst
)。
测试
测试使用 PHPUnit (https://github.com/sebastianbergmann/phpunit/) (≥ 3.5) 在 ./test
目录中执行(请参阅如何测试 ./doc/tests.rst
)。
示例
以下是可生成的示例样本(使用 ./bin/generateExamples.php
脚本可以获得更多)
长度 | 5 | 6 | 7 | 8 |
---|---|---|---|---|
1 | vicas | panori | eropops | absugrit |
2 | ramsa | verifu | simbous | nimpiowi |
3 | kiclu | impriar | rubleru | entumecu |
4 | posup | bivary | kitocra | vemolior |
5 | utler | rugisi | kanomev | pactabie |
算法
基本上,库将根据以下规则生成单词
- 随机选择一个字母;
- 随机选择一个不同类型的链接字母;
- 随机选择一个不同类型的链接字母,如果最后一个字母是连续类型的。
其中
- "链接字母" 是任意选择的字母,预期将很好地跟随前面的字母;
- "类型" 将是元音和辅音;
- "连续" 将是来自同一 "类型" 的两个字母的组合。
第 3 步重复执行所需的次数。
文档
您可以在以下链接中找到更多文档:
- 版权和MIT许可:
./LICENSE.rst
; - 版本和变更日志:
./VERSION.rst
和CHANGELOG.rst
; - 技术和使用文档:
./doc/
。
贡献
- 进行Fork操作:https://github.com/gnugat/PronounceableWord/fork_select ;
- 创建分支(
git checkout -b my_branch
); - 提交您的更改(
git commit -am "Changes description message"
); - 将更改推送到分支(
git push origin my_branch
); - 创建一个链接到您的分支的Issue(https://github.com/gnugat/PronounceableWord/issues);
- 等待它被接受/讨论。