2013-04-22 4 views
1

의 대략적인 문자열 일치 기금 정보가 포함 된 두 개의 데이터 세트를 일치시켜야합니다. 불행히도 공통 식별자가 없습니다. 좋은 점은 여러 펀드를 포함 할 수있는 문서 번호에 대한 두 문서의 식별자가 있다는 것입니다. 서류에 여러 금액 (예 : 20)이있는 경우 펀드 이름을 통해서만 일치 할 수 있습니다. 이는 때때로 약간 다를 수 있습니다. 문서 당 자금 수는 noth 데이터 세트에서 동일하다는 점에 유의하십시오. 약간의 검색 후 내가 (: agrep: only return best match(es) 여기) :이 기능을 사용하려내 연구를위한 R

  1. 때로는 거기에 일치하는 항목이 여러
  2. :

    ClosestMatch2 = function(string, stringVector){ 
    
        distance = levenshteinSim(string, stringVector); 
        stringVector[distance == max(distance)] 
    
    } 
    

    이 대부분의 자금에 대한 좋은 일을하지만 나는이 문제를 발견 이 기능은 일치 "제도적 LARGE CORE 기금"을 "트라 :

  3. 때때로 내가 잘못 일치 예를 들어

이 "Transamerica Partners Institutional Large Core"대신 "nsamerica Partners Institutional Core Bond"로 변경되었습니다.

  1. 내가 위의 기능을 확인하기 위해 다른 매칭 함수를 사용

    나는 이러한 문제를 회피하는 두 가지 아이디어가 있습니다. 나는. 두 함수가 동일한 결과를 얻는 경우에만 일치를 허용합니다.

  2. 나는 어떻게 든 위의 함수를 적용합니다.

정말 감사드립니다. 보다도, Laurenz

+0

전체 문자열 (예 : "Large", "Partners"등)의 존재 여부를 찾고 있고 "불일치"가 아닌 것 같습니다. 그게 맞습니까? – Arun

+0

대부분의 시간은 정확합니다. 그러나 경우에 따라 하위 문자열이 같을 수도 있지만 동일하지 않을 수도 있습니다. 예 : 중간 규모 기금 및 중간 기금 또는 보통 전략 배정 기금 및 보통 전략 Alloc. 기금 – Laurenz

답변

0

RecordLinkage 패키지는 (예를 들어 levenshtein뿐만 아니라 다른 조치) 여러 가지 방법으로 문자열을 일치시킬 수 있습니다 그것을 당신이 임계 값 또는 일치에 대한 확인 될 때 ​​표시로 분류 모델도 사용을 정의 할 수 있습니다 당신.

+0

이 패키지를 사용하여 가능성을 보여 주거나 주석 아래에 작성하는 것이 좋을 것입니다. 아직 대답이 아니라고 생각합니다. – Arun

+0

답변 해 주셔서 감사합니다. 나는 패키지를 점검하고 Jaro-Winkler (jarowinkler)와 levenshtein distance (levenshteinDist)의 일부 수정을 찾았고 대안으로 시도 할 것입니다. 당신이 "여러 가지"접근법을 가지고 있다고 말했기 때문에 나는 다른 것들을 감독했는지 궁금해했습니다. 설명 주셔서 감사합니다! – Laurenz

+0

예 : 문자열에 대한 해밍 거리도 빠르게 가능합니다. 하지만 비교할 두 문자열을 인수로 받아야하는 strcmpfun을 제공하고 0-1 범위의 유사성 값을 반환 할 수 있습니다 – jwijffels