2012-08-01 22 views
5

क्या कोई पर्ल मॉड्यूल सुझा सकता है जो दो तारों की तुलना कर सकता है और जिस डिग्री से मेल खाता है उसे वापस कर सकता है? मैंने सीपीएएन को व्यापक रूप से खोजा, और यद्यपि स्ट्रिंग :: लगभग और डेटा :: समान प्रकार के मॉड्यूल हैं जैसे की तुलना करें, वे वही नहीं हैं जो मैं ढूंढ रहा हूं। मान लीजिए मेरे पास दो तार हैं: मुझे तुमसे प्यार है, और मैं आपको बताता हूं। मैं कार्यक्षमता चाहता हूं जो इन दो तारों की तुलना करेगा, कई मानकों को ध्यान में रखते हुए, सही क्रम में शब्दों का मिलान (प्यार स्ट्रिंग में पहले शब्द को "मिलान" प्यार नहीं करना चाहिए दूसरी स्ट्रिंग में चौथा शब्द के रूप में , भले ही दोनों तारों में वह शब्द न हो), शब्द मिलान नहीं करते हैं, लेकिन लगभग प्यार और लॉग), शब्दों की संख्या इत्यादि और एक इंडेक्स लौटाते हैं, 0 से 1 के पैमाने पर एक संख्या का कहना है 1, दो तारों के बीच समानता की डिग्री का प्रतिनिधित्व करता है। क्या ऐसा कोई पर्ल मॉड्यूल है?टेक्स्ट तुलना के लिए पर्ल मॉड्यूल

+2

http://search.cpan.org/dist/Text-Levenshtein/Levenshtein.pm आप क्या देख रहे हैं कर सकते हैं के लिये? –

+0

खैर, मुझे यकीन नहीं है, केवल तुलनात्मक तुलना में लेवेनशेटिन दूरी सौदे पर उदाहरण और विकिपीडिया लेख, कोई स्ट्रिंग तुलना नहीं। तो मुझे नहीं पता कि यह मिलान के कुछ शब्दों के साथ तारों की तुलना कैसे करेगा, लेकिन अलग-अलग स्थितियों में, जो किसी मैच की राशि नहीं होनी चाहिए। – SexyBeast

+0

उस तरह की स्ट्रिंग तुलना करना ऐसा कुछ है जो मनुष्य छोटे से करते हैं, लेकिन कंप्यूटर के साथ वास्तव में करना मुश्किल है। –

उत्तर

6

ऐसे कई मॉड्यूल हैं। अक्सर, हालांकि, आपको अपनी खुद की धारणाओं के हिसाब से कुछ विशेष तरीके से उनका उपयोग करना होगा। इस तरह की अधिकांश स्ट्रिंग तुलना टूल केवल एक स्ट्रिंग को दूसरे स्ट्रिंग की तुलना करने के लिए कुछ एल्गोरिदम लागू करते हैं। ज्यादातर मानते हैं कि यदि आपके पास बनाने के लिए विशिष्ट नीति निर्णय हैं, तो आप उन्हें स्वयं कोड करेंगे।

व्यक्तिगत रूप से, मुझे यकीन नहीं है कि मैं Text::Levenshtein की सिफारिश करता हूं क्योंकि बग और ut8 समर्थन की कमी है। हालांकि, मेरे पास बेहतर सिफारिश नहीं है।

हालांकि, इन खोजों आप इस पर गौर कर सकता है संभावित मॉड्यूल के बहुत से पता चलता है और निर्धारित क्या उद्देश्य (बात की इस तरह से करने के लिए आम एल्गोरिदम के नाम के आधार पर) के लिए सबसे अच्छा काम करता होगा:

आपको बोले जाने वाले समानता में रुचि रखते हैं, तो आप भी मैं देख सकते हैं nto ध्वन्यात्मक तुलना:

+0

वाह। बहुत सारे संसाधन, उन्हें सब देख रहे होंगे। धन्यवाद! – SexyBeast