2010-03-31 15 views
6

क्या कोई मुझे लुसीन.NET (या ल्यूसीन के जावा संस्करण का उपयोग करके, या ल्यूसीन के बंदरगाह वाले किसी अन्य भाषा में) का उपयोग करके दो स्ट्रिंग्स के फ़ज़ी मिलान करने के बारे में एक उदाहरण दे सकता है।Lucene.NET (स्ट्रिंग्स फ़ज़ी मिलान)

उत्तर

5

क्या आप अस्पष्ट मिलान से क्या मतलब है इस पर थोड़ा और विशिष्ट हो सकते हैं? आप इस तरह के Levenshtein, Jaro-विंकलर आदि के रूप में तरीकों का उपयोग कर 2 तार की स्ट्रिंग दूरी की तुलना करना चाहते हैं

Lucene टिल्ड (~) ऑपरेटर का उपयोग फजी प्रश्नों और वाइल्डकार्ड (* &?) See here

प्रदान करता है आप एक अलग पुस्तकालय का उपयोग कर बेहतर हैं जैसे SimMetrics। मैं अपनी उत्पादन साइट में सिमेट्रिक्स का उपयोग करता हूं और यह फैब काम करता है।

SimMetricsMetricUtilities.Levenstein ls = new SimMetricsMetricUtilities.Levenstein(); //compare string 1, string 2 
double sim = ls.GetSimilarity(string_1, string_2); 
if(sim > [some value]) 
{ 
//do something 
} 
+0

उत्तर महोदय के लिए धन्यवाद। आप सही हैं, मैं लेवेनशेटिन एल्गोरिदम का उपयोग करके दो तारों की तुलना करना चाहता हूं, क्या आप मुझे उदाहरण दे सकते हैं कि आप सिमेट्रिक्स का उपयोग करके दो स्ट्रिंग्स फ़ज़ी मैच कैसे कर रहे हैं? – user306080

+1

वास्तव में बहुत सीधी-सपाट है: 1. अपनी परियोजना में Simmetrics dll के लिए एक संदर्भ जोड़ें 2. विधि जहां समानता चलाना चाहते हैं में, SimMetricsMetricUtilities.Levenstein ls = नए SimMetricsMetricUtilities.Levenstein(); // तुलना स्ट्रिंग 1, स्ट्रिंग 2 डबल सिम = जेएस गेटसिमरिलिटी (स्ट्रिंग_1, स्ट्रिंग_2); अगर (सिम> [कुछ मूल्य]) { // कुछ करें } – Mikos

+0

एकमात्र समस्या जिसे मैं देखता हूं, यह है कि आप ल्यूसीन से परिणाम प्राप्त करने के बाद मिलान करते हैं। – Dementic

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