2010-03-31 3 views
6

누구나 Lucene.NET을 사용하여 두 문자열의 퍼지 일치를 수행하는 방법에 대한 예제를 제공 할 수 있습니까? (또는 Lucene의 Java 버전을 사용하거나 Lucene 포트가있는 다른 언어로) 사용할 수 있습니까?Lucene.NET (strings fuzzy matching)

답변

5

퍼지 매칭의 의미에 대해 좀 더 구체적으로 설명해 주시겠습니까? 당신이 등 Levenshtein, JARO - 윈 클러 등의 방법을 사용하여 두 문자열의 문자열의 거리를 비교하려면

루씬 퍼지 물결표 (~) 연산자를 사용하여 쿼리와 와일드 카드 (* &?) See here

을 제공합니다 SimMetrics과 같은 별도의 라이브러리를 사용하는 것이 더 좋습니다. Simmetrics를 제작 현장에서 사용하기 때문에 fab이 작동합니다.

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

답장을 보내 주셔서 감사합니다. 맞습니다. Levenshtein 알고리즘을 사용하여 두 개의 문자열을 비교하고 싶습니다. Simmetrics를 사용하여 두 문자열을 퍼지 (fuzzy)로 일치시키는 방법을 보여줄 수 있습니까? – user306080

+1

은 실제로 매우 직선적이다 : 1. 프로젝트에서 당신이 유사성을 실행할 방법 2. SimMetricsMetricUtilities.Levenstein 1! = 새 SimMetricsMetricUtilities.Levenstein()를 Simmetrics DLL에 대한 참조를 추가; // 문자열 1, 문자열 2 비교 double sim = js.GetSimilarity (string_1, string_2); { // do something } – Mikos

+0

내가보기에 유일한 문제는 lucene에서 결과를 얻는 것과 일치하는 것입니다. – Dementic