2016-08-18 2 views
0

제품 이름 (음식)과 자동으로 일치해야합니다. 문제가 유사합니다 Fuzzy matching of product names제품 제목에 맞는 퍼지 문자열

주요 문제는 관련 키워드의 한 글자로 변경하더라도 큰 차이를 만들 수 있지만 관련 키워드를 쉽게 찾아 낼 수 없다는 것입니다. 예를 들어 Lenovo T400, Lenovo R400New Lenovo T-400, Core 2 Duo의 세 가지 제품 이름을 고려하십시오.

처음 두 (좋아, SOUNDEX이 경우에는 T와 R을 disinguish하는 데 도움이 될 수 있지만, 이름도 400T400R 수 있습니다) 표준에 의해 터무니없이 유사한 문자열, 첫 번째와 세 번째는 아주 멀리 서로 문자열에서 동일한 제품이지만.

분명히 일치 알고리즘이 100 % 정확할 수는 없지만 내 목표는 자동으로 높은 신뢰도로 이름의 약 80 %를 일치시키는 것입니다.

하지만 합병증이 있습니다. 검색하고 싶은 파일이 이미지 인식의 결과이므로 내 문자열에 실수가 있습니다. 제품 제목에는 해당 파일에 공백이 없습니다.

예를 들어, 나는 제품 이름 cookiesoreovarianta을 찾으려면 내가 문자열

cookiesoreovariant B (진짜 다른 제품)
cookiesoreovariamt Q (진짜 다른 제품, "A"와 "Q이 "일부 글꼴 유사한 문자)
cookiesoreovaria m 타 (단지 실수)

내가 하지 할 수 있습니다 정식 이름의 전체 데이터베이스가 없습니다.

어떻게 접근합니까? 어떤 아이디어?

답변

0

이상적으로, 당신은 그렇게 할 수있는 모델 이름이 무엇인지 토큰 등

모델 번호, 무엇 토큰 좋은 방법 브랜드 무엇인지 토큰을 식별 한 후 별도의 토큰으로 문자열을 분할 수있는 것 조건부 무작위 필드를 사용하여 음성 분류기의 일부를 학습해야합니다. 우리는 toolkit called parserator을 만들었습니다.

그러나 word segmentation도해야하기 때문에 문제는 정상보다 어려워집니다. 당신이 당신의 제목 분할 및 라벨이 두 제품 타이틀을 비교할 때 다른 제목의 다른 부분을 비교하는 것이 좋습니다되면

이 유래 질문은 단어 분할 How to split text without spaces into list of words?

에 꽤 좋은 소개가 있습니다. 예를 들어 브랜드 이름 사이에 Levenshtein 거리, 모델 이름 사이의 거리, 모델 번호 간 거리를 확인할 수 있습니다.

이러한 다중 비교를 효과적이고 효율적으로 수행하려면 dedupe과 같은 레코드 연결을위한 패키지를 사용하십시오.

0

제품 데이터의 경우 개별 기술마다 약점이 있으므로 효과적인 퍼지 매칭 알고리즘을 사용해야했습니다.

  1. 는 내가 자세히 살펴보면 초기 후보 일치 가치를 찾기 위해 (이 될 수 있기 때문에 미리 계산) 절단 된 음성 메타 폰 시작했다.
  2. 은 그 때 나는 일치 Damerau - Levenshtein, 전체 길이 음성, 인 Jaccard 유사성, 비슷한 길이와 문자 NGrams의 유사성 메트릭의 조합을 사용하는 후보를 비교하고, 단어 1가/시작 여부 것은 그 반대의 경우도 마찬가지 word2 및 종료됩니다.
  3. 그런 다음 개인 알고리즘을 내 필요에 맞는 임의의 가중치로 곱했습니다.
  4. 그런 다음 가장 낮은 유사성 결과를 제외하고 나머지를 함께 평균하여 전반적인 유사성을 보았습니다.

모델 번호를 다루는 특별한 경우에는 모델 번호가 더 정확하기 때문에 두 단어가 사전이 아닌 단어이거나 두 단어가 모두 숫자가 포함되어있는 곳에서 최종 유사성 측정 항목을 조정할 수 있습니다 정상적인 영어 단어보다.

데이터가 실제로 "cookiesoreovariantb"처럼 보이는 경우 가장 큰 문제는 실제로 토큰 화입니다. 일단 단어가 "쿠키 오레오 변형 b"로 정확하게 나뉘어지면 필요한 유사도를 제어하여 일치하는 것으로 결론 지을 수 있습니다.

필자는 제품 데이터에 각 개별 유사성 측정 항목을 사용하려는 약점을 자세히 설명하는 게시물을 작성했습니다. https://saas.findwatt.com/blog/post/confused-people-dont-buy-how-fuzzy-matching-helps

관련 문제