मैं एक ऐसी प्रणाली पर काम कर रहा हूं जो आयातित फ़ाइलों को अन्य भाषाओं में स्थानीयकृत करने की अनुमति देता है।तारों में समानता को पहचानना
यह एमवीसी 3, एंटिटीफ्रेमवर्क, LINQ, इत्यादि का लटका पाने के लिए ज्यादातर निजी परियोजना है। इसलिए मुझे अंतिम परिणाम मसाला देने के लिए कुछ पागल चीजें करना पसंद है, उन चीजों में से एक समान तारों की पहचान होगी।
कल्पना कीजिए कि आप तार के निम्नलिखित सूची है - एक खेल मैंने पहले भी साथ काम किया है से उधार लिया:
- Megabeth: पवित्र रोलर वर्दी - प्रमुख, धड़ शामिल है, और पैर
- Megabeth: पवित्र रोलर वर्दी प्रमुख
- Megabeth: पवित्र रोलर वर्दी पैर
- Megabeth: पवित्र रोलर वर्दी धड़
- Megabeth: PAX पूर्व 2012 वर्दी - शामिल प्रमुख, धड़, और पैर
- Megabeth: PAX पूर्व 2012 वर्दी प्रमुख
- Megabeth: PAX पूर्व 2012 वर्दी पैर
- Megabeth: PAX पूर्व 2012 वर्दी धड़
आप देख सकते हैं, एक बार उन पहले 4 तार का अनुवाद किया है, 4 शेयर समानता का एक बहुत कुछ के बाद, इस मामले में:
- Megabeth
- वर्दी
- शामिल प्रमुख, धड़, और पैर
- प्रमुख
- पैर
- धड़
पर विचार करें पहले 4 तार वास्तव में पहले से ही अनुवाद किया जाता है, जब कोई उपयोगकर्ता सूची से 5 वीं स्ट्रिंग चयन करता है, किस तरह का एल्गोरिदम या तकनीक मैं उपयोगकर्ता को "समान स्ट्रिंग्स" के उप-शीर्षलेख के तहत पहली स्ट्रिंग (और संभावित रूप से अन्य) दिखाने के लिए उपयोग कर सकता हूं?
संपादित करें - लेवेनशेटिन दूरी पर एक छोटी टिप्पणी: मैं वर्तमान में डेटाबेस में 10k स्ट्रिंग को लक्षित कर रहा हूं। लेवेनशेटिन दूरी स्ट्रिंग प्रति स्ट्रिंग की तुलना करता है, इसलिए इस मामले में 10k x (10k -1) संभावित संयोजन। मैं इसे एक व्यवहार्य तरीके से कैसे पहुंचाऊंगा? क्या कोई बेहतर समाधान है कि यह विशेष एल्गोरिदम?
दिलचस्प सवाल। मुझे नहीं पता कि इसका जवाब कहां से शुरू करना है, लेकिन बीमार हैं और देखो। – Gallen
दूरी संपादित करें। जिसमें कई किस्में हैं। और काफी सीधे आगे। यदि आपका मैट्रिक्स बड़ा हो तो कम्प्यूटेशनल रूप से महंगा हो सकता है। – DarthVader
आप सभी तारों को जोड़ सकते हैं, फिर सफेद स्थान (रेगेक्स का उपयोग करके) द्वारा विभाजित कर सकते हैं, फिर इसे 'डिस्टिंट()' के साथ लिनक्स करें और प्रतिस्थापन के साथ अनुवाद करें। इसके साथ समस्या यह है कि सभी भाषाएं शब्द के लिए शब्द का अनुवाद नहीं करती हैं। – Jay