2012-06-27 3 views
5

어젯밤 내 머리 속에 떠올랐다 : PHP가 자연스럽게 들리는 임의의 단어를 생성하는 데 사용할 수 있습니까? (Lorem ipsum 구절처럼). 단일 문자 인PHP의 자연 언어 생성

  1. 단어 : 자음과 모음의 조합으로, 「A, E, 난, O, U '는 두 문자 인
  2. 단어.
  3. 최대 단어 길이는 6 글자라고 생각합니다.

목적은 'Lorem ipsum'대신 웹 사이트 템플릿의 공간을 채우거나 특정 PHP 스크립트에 대한 테스트 이메일을 보내 mail()이 작동하는지 확인하는 것입니다.

하지만 어떻게 작동 할 것인가에 대한 내 생각은 PHP가 임의의 길이의 단어, 1-6 자의 문자를 각각 생성하고 "두 개의 단일 문자로 된 단어가없는" "또는"연속 3 자음 없음 "또는"연속 3 자음 없음 "을 선택하고 4 ~ 8 자 사이의 구두점 및 대문자를 자동으로 문장에 추가합니다.

이 모든 것이 가능한지, 그렇다면 구현할 수있는 기존 클래스 또는 기능이 있습니까?

+1

. 따라서 대답은 "가능합니다"라고 대답 할 수 있습니다. 그러나 그 질문은 실제로 여러분의 질문입니까? – ametren

+0

이 가능합니까? 확실한. 사실인가? 나는 그렇게 확신하지 않을 것이다. 어쩌면 간단한 프롤로그 스크립트 (또는 다른 논리적 언어)를 사용하여 문제를보다 쉽게 ​​해결할 수 있습니다. – Jarry

+0

@ametren - 편집 된 질문. 빈 PHP 문서를 시작하고 내 마음을 쏟으 려하지 않고 시작할 장소를 더 찾았습니다. – ionFish

답변

2

당신은 문맥 자유 문법 접근 방식을 취할 수

<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 

http://en.wikipedia.org/wiki/Context-free_grammar은 절차 적 언어가 문법을 구현 (C와 PHP 포함), 다음 문법에 따라 단어를 생성하기 시작합니다.

나는 어떤 일반적인 PHP 구문 분석 프레임 워크의 모르지만 당신은 그들을 작성하기위한 모범 사례를 볼 수 있습니다 : 나는 불가능했을 것입니다 귀하의 제안에 아무 것도 표시되지 않습니다 Best practices for writing a programming language parser

관련 문제