2012-12-19 16 views
9

सोच रहा था कि किसी के पास कोई सुझाव है या मुझे गायन शब्दों को खोजने के लिए किसी प्रकार के एल्गोरिदम को खोजने/बनाने के लिए सही दिशा में इंगित कर सकता है।एक कविता खोजक को कार्यान्वित करना

मैं विशेष रूप से एपीआई का उपयोग नहीं करना चाहता, क्योंकि इसे बनाने के लिए एल्गोरिदम बनाने के लिए यह मेरा अंतिम लक्ष्य है।

यह नहीं कि यह महत्वपूर्ण होना चाहिए लेकिन मैं जावा में कोडिंग कर रहा हूं।

धन्यवाद

+0

शुभकामनाएं, अंतहीन रूप से कठिन? – EricG

+0

एक कविता की परिभाषा क्या है? –

+0

@AlexLynch http://en.wikipedia.org/wiki/Rhyme, मुझे नहीं पता कि आपकी भाषा उन्हें परिभाषित करती है लेकिन मेरे मूल (पोलिश) में हम rhymes को भी वर्गीकृत करते हैं। ;-) –

उत्तर

7

इस तरह यह एक बड़ी परियोजना हो सकता है आप एक API का उपयोग नहीं करना चाहते हैं, तो लगता है। चुनौतीपूर्ण कदम एक शब्द के ध्वन्यात्मक निर्धारित करना होगा (दो शब्द कविता अगर उनके अंत ध्वन्यात्मक रूप से समान हैं)। यदि आप ऐसा कर सकते हैं, तो आप उनके उच्चारण के अंत की तुलना कर सकते हैं। आप संभवतः एक एपीआई खोज सकते हैं जो ज्ञात शब्दों को उनके ध्वन्यात्मक वर्तनी में परिवर्तित कर देगा लेकिन यदि आप एपीआई का उपयोग नहीं करना चाहते हैं तो आपको इसे स्वयं करना होगा और इसका कोई छोटा काम नहीं है ... उल्लेख नहीं करना, किसी के द्वारा सही नहीं है ।

अन्य विधि metaphone एल्गोरिथ्म अनुसंधान करने के लिए हो सकता है, यहां विस्तार से बताया: http://www.blackbeltcoder.com/Articles/algorithms/phonetic-string-comparison-with-soundex

+0

साउंडएक्स विशेष रूप से उत्तर अमेरिकी परिवार के नामों के लिए उनकी जनगणना के प्रसंस्करण के दौरान विकसित किया गया था। यह शब्दों के ध्वन्यात्मक विश्लेषण के लिए एक सामान्य उद्देश्य पुस्तकालय नहीं है, हालांकि यह अभी भी पूछताछ के लिए ब्याज की बात है। यह शब्दों की शुरुआत पर भी केंद्रित है, जबकि rhymes उनके अंत से संबंधित है। तकनीक लचीला हो सकता है। –

+0

मैंने मेटाफोन एल्गोरिदम की वजह से लिंक प्रदान किया, साउंडएक्स नहीं। – Foggzie

6

बेस्ट एल्गोरिथ्म कविताओं के साथ समूहों पर वर्गीकृत किया शब्दों का एक शब्दकोश का प्रयोग करेंगे। यह बहुत मुश्किल समस्या है और भाषाविज्ञान पृष्ठभूमि की जरूरत है। मुझे लगता है कि आप कुछ चाहते हैं, शायद सर्वश्रेष्ठ नहीं, rhymes स्वचालित खोजने के लिए एल्गोरिदम।

कुछ मूल्य के साथ शब्द का उच्चारण करने के लिए मूल विचार (शब्द स्वयं नहीं)। और मूल्य जो बराबर कोड के साथ समाप्त होता है शब्द rhymes की पहचान।

मेरे परिप्रेक्ष्य से यह सही एल्गोरिदम खोजने से अधिक शोध कर रहा है।

है कि कागज पर एक नज़र डालें: A System for the Automatic Identification of Rhymes

4

मैं एक मानक ध्वन्यात्मक एल्गोरिथ्म का लाभ लगता है कि एक अच्छा विचार होगा। मुझे लगता है कि साउंडएक्स थोड़ा सीमित हो सकता है, लेकिन double metaphone शायद एक अच्छा विकल्प होगा।

प्रश्न में शब्दों के मेटाफोन का प्रतिनिधित्व प्राप्त करें, पहले अक्षर हटाएं, और जांचें कि दो शब्दों के छोटे हिस्से का शेष भाग लंबे समय के अंत से मेल खाता है या नहीं। डबल मेटाफोन के साथ, यह बहुत समान है, लेकिन चार तुलना करें, प्राथमिक से प्राथमिक, माध्यमिक से प्राथमिक, प्राथमिक से माध्यमिक और द्वितीयक माध्यमिक माध्यमिक।

मुझे लगता है कि यह एक अच्छा प्रारंभिक बिंदु होगा।

इस और कई अन्य ध्वन्यात्मक एल्गोरिदम पर एक नोट: यह सटीक ध्वन्यात्मक परिभाषा प्रदान करने के लिए डिज़ाइन नहीं किया गया है। विविध भौगोलिक उच्चारण, सामान्य गलतप्रचार और वैकल्पिक उच्चारण एक कठोर और तेज़ एकल सही उच्चारण शब्द को पूरी तरह से प्राप्त करने के लिए असंभव बनाते हैं। उपन्यास वर्तनी और अक्षर के उपयोग से एल्गोरिदमिक रूप से एक करीबी उच्चारण प्राप्त करना मुश्किल हो जाता है (कुछ हॉर्स डी 'ओवेरेस की देखभाल?)। इसके अलावा, इस तरह के कई एल्गोरिदम का एक बड़ा लक्ष्य समान ध्वनि या ग़लत शब्दों या नामों को एक-दूसरे से मेल करना है, इसलिए परिणाम आमतौर पर थोड़ा अपरिहार्य होना चाहिए (यह संभवतः इस उद्देश्य के लिए भी एक अच्छी बात है)।

+1

डबल मेटाफोन शब्द से सभी गैर-प्रारंभिक स्वरों को छोड़ देता है, इसलिए यह आपको rhyming पर सभी तरह से नहीं मिलता है। – charleyc

+0

बिल्कुल सच है। मैं यह मानता हूं कि यह एक अच्छा प्रारंभिक बिंदु है, हालांकि। – femtoRgon

3

मैंने my blog पर एक rhyming शब्दकोश कार्यक्रम लिखा था। विचार उच्चारण के साथ एक शब्दकोश का उपयोग करना है और अंत से शुरू phonemes की तुलना करना है; एक ही अंत फोनेम के साथ दो शब्द एक दूसरे के लिए rhymes हैं।

1

आप शुरुआत करने वालों के लिए कार्नेगी मेलॉन की घोषणा करने वाले शब्दकोश को देखना चाहते हैं।यह सबसे अच्छा उद्घोषक शब्दकोश है जिसे मैं ढूंढने में सक्षम हूं।

http://www.speech.cs.cmu.edu/cgi-bin/cmudict

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