PHP中的自然语言生成

时间:2012-06-27 15:25:00

标签: php nlp

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

  1. 单词是单词:'a,e,i,o,u'
  2. 双字母的单词:元音和辅音的任意组合。
  3. 我认为最大字长是六个字母。
  4. 目的是用这个填充网站模板的空间而不是'Lorem ipsum',或者发送某些PHP脚本的测试电子邮件以确保mail()有效。

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

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

1 个答案:

答案 0 :(得分: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

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

我不知道任何通用的PHP解析框架,但您可以查看编写它们的最佳实践:Best practices for writing a programming language parser