PHP中的自然语言生成

ion*_*ish 5 php nlp

我昨晚醒来时心里想着:PHP可以用来生成听起来自然的随机单词吗?(就像Lorem ipsum经文).

  1. 单词是单词:'a,e,i,o,u'
  2. 双字母的单词:元音和辅音的任何组合.
  3. 最大字长是我想六个字母.

目的是用这个而不是'Lorem ipsum'来填充网站模板上的空间,或者发送某些PHP脚本的测试电子邮件以确保mail()有效.

但我对如何工作的想法是,PHP会产生随机长度的单词,每个单词1-6个字母,有一些"不要这样做"的规则,如"没有两个单字母单词彼此相邻"或"否连续三个元音"或"连续三个辅音"并在4到8个单词之后自动添加标点符号和大写字母.

这是否可能,如果是的话,我可以实现任何预先存在的类或函数吗?

Rey*_*les 2

您可以采用上下文无关语法方法:http ://en.wikipedia.org/wiki/Context-free_grammar

<word> := <vowel> | <consonant><remaining word following consonant> | <vowel><remaining word following vowel>
<vowel> := a|e|i|o|u
<consonant> := b|c|d|f|g|...
<word following vowel> := <consonant><remaining word following consonant>
...and so on
Run Code Online (Sandbox Code Playgroud)

使用任何过程语言(包括 C 和 PHP)实现该语法,然后开始根据该语法生成​​单词。

我不知道任何通用的 PHP 解析框架,但您可以查看编写它们的最佳实践:编写编程语言解析器的最佳实践