2012-06-27 14 views
5

Obudziłem się zeszłego wieczoru z myślą w mojej głowie: czy PHP może być używane do generowania losowych słów, które brzmią naturalnie? (Jak wersety Lorem ipsum).Generowanie języka naturalnego w PHP

  1. wyrazy te jedną literę: 'A, E, I, O, U'
  2. wyrazy te podwójnej litery: kombinację samogłoski i spółgłoski.
  3. Maksymalna długość słowa to sześć cyfr.

Celem tego jest wypełnienie miejsca na szablonach stron internetowych tym, zamiast "Lorem ipsum", lub wysłanie testowych wiadomości e-mail dla niektórych skryptów PHP, aby upewnić się, że funkcja mail() działa.

Ale moje przemyślenia na temat tego, jak to działa, to że PHP generowały losowe słowa o długości od 1 do 6 liter, z kilkoma regułami "nie rób tego", jak "brak dwóch pojedynczych liter obok siebie" "lub" bez trzech samogłosek w rzędzie "lub" bez trzech spółgłosek z rzędu "i automatycznie dodaje interpunkcję i wielkie litery po 4 do 8 wyrazów do zdania.

Czy byłoby to w ogóle możliwe, a jeśli tak, to czy istnieją jakieś istniejące klasy lub funkcje, które mógłbym wdrożyć?

+1

nie widzę nic w sugestią, że nie byłoby to możliwe. Tak więc odpowiedź jest prawdopodobnie "tak, to jest możliwe" - ale czy to naprawdę jest twoje pytanie? – ametren

+0

możliwe? pewnie. Fakty? nie byłbym taki pewien. może to zrobić za pomocą prostego skryptu prolog (lub innego logical languaje) może łatwiej rozwiązać twój problem. Następnie można wywołać go z php (tylko moje twardzieli, rób co chcesz) – Jarry

+0

@ametren. - Edytowane pytanie, bardziej szuka miejsca do rozpoczęcia zamiast rozpocząć pusty dokument PHP i próbować wylewać zdanie na jej temat. – ionFish

Odpowiedz

2

Można przyjąć podejście gramatyki bezkontekstowych: 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 

Wdrożenie tej gramatyki w dowolnym języku proceduralnym (C i PHP w zestawie), a następnie zacząć generować słowa oparte na gramatyce.

nie wiem o wszelkich ogólnych ram PHP analizowania ale można spojrzeć na najlepszych praktyk na ich pisanie: Best practices for writing a programming language parser

Powiązane problemy