2012-06-27 8 views
5

मैं कल रात अपने सिर में एक विचार के साथ जाग गया: क्या PHP को यादृच्छिक शब्दों को उत्पन्न करने के लिए इस्तेमाल किया जा सकता है जो प्राकृतिक लगते हैं? (Lorem ipsum छंद की तरह)।PHP में प्राकृतिक भाषा जनरेशन

  1. शब्द एक अक्षर जा रहा है: 'एक, ई, मैं, ओ, यू'
  2. शब्द डबल पत्र जा रहा है: स्वर और व्यंजन के किसी भी संयोजन।
  3. अधिकतम शब्द लंबाई मुझे छह अक्षरों के बारे में सोचना होगा।

उद्देश्य 'Lorem ipsum' के बजाय वेबसाइट टेम्पलेट्स पर स्थान भरना होगा, या मेल() काम सुनिश्चित करने के लिए कुछ PHP स्क्रिप्ट के लिए परीक्षण ईमेल भेजना होगा।

लेकिन यह मेरे विचारों के बारे में सोचता है कि PHP कैसे यादृच्छिक लंबाई वाले शब्द, 1-6 अक्षरों को उत्पन्न करेगा, कुछ "ऐसा न करें" नियम जैसे "एक दूसरे के बगल में कोई भी दो अक्षर नहीं "या" पंक्ति में कोई तीन-स्वर "या" पंक्ति में कोई तीन व्यंजन "नहीं है और वाक्य में 4 से 8 शब्दों के बीच स्वचालित रूप से विराम चिह्न और पूंजीकरण जोड़ता है।

क्या यह संभव होगा, और यदि हां, तो क्या कोई पूर्व-मौजूदा कक्षाएं या कार्य मैं कार्यान्वित कर सकता हूं?

+1

मैं अपने सुझाव में कुछ भी है कि संभव नहीं होगा नहीं दिख रहा। तो, जवाब संभव है "हाँ, यह संभव है" - लेकिन क्या यह वास्तव में आपका प्रश्न है? – ametren

+0

संभव है? ज़रूर। factible? मैं इतना यकीन नहीं करूँगा। हो सकता है कि यह एक साधारण प्रोलॉग स्क्रिप्ट (या एक और तार्किक languaje) के साथ किया जा सकता है अपनी समस्या को और आसानी से हल कर सकते हैं। तो आप इसे php से कॉल कर सकते हैं। (केवल मेरी कठिनाइयों, जो कुछ भी आप चाहते हैं) – Jarry

+0

@ametren - संपादित प्रश्न, एक खाली PHP दस्तावेज़ शुरू करने के बजाय शुरू करने के लिए एक जगह की तलाश में है और इस पर मेरा दिमाग फैलाने का प्रयास करें। – ionFish

उत्तर

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 

किसी भी प्रक्रियात्मक भाषा में उस व्याकरण को लागू करें (सी और PHP शामिल), तो व्याकरण के आधार पर शब्द पैदा करने लगते हैं।

मैं किसी भी सामान्य पीएचपी पार्स चौखटे के पता नहीं लेकिन आप उन्हें लिखने के लिए सर्वोत्तम प्रथाओं को देखें कर सकते हैं: Best practices for writing a programming language parser

संबंधित मुद्दे