2013-11-04 1 views
13

다른 공급 업체의 제품 가격을 비교하는 간단한 프로그램을 작성하려고합니다. 다른 공급 업체가 동일한 제품을 다른 것으로 부를 수도 있습니다.다른 상점/공급 업체의 제품 이름 비교 및 ​​일치

  • A2 전체 크림 우유 병
  • A2 우유 전체 크림 2리터 2L
  • A2 전체 크림 우유 2L
:

예를 들어, 다음과 같은 세 가지 문자열은 동일한 제품을 참조하십시오

또는 다음 두 문자열은 동일한 제품입니다.

  • Ambi Pur 공기 청정제 자동차 항해 8mL. 신선한 바닐라 플라워 향수. - 각 1
  • AMBI 뿌르 공기 청정기 항해 주 8 ㎖

또한 - 일부 제품이 동일하지 않지만 (예를 들어, 풀 크림 2L 우유 다양한 유사 제품을 포함 할 수있다.)

유사 각 제품에 대한 정보의 유일한 비트는 제목과 가격입니다.

이와 같이 제품 문자열을 일치시키는 데 현재 권장되는 기술은 무엇입니까? 내 인터넷 검색 및 기타 SO 스레드를 읽고에서

, 나는 발견

  • 어떤 사람들은 베이지안 필터링 기술을 사용하는 것이 좋습니다.
  • 일부 제품 문자열에 기능 추출을 수행하는 것이 좋습니다. 따라서 제품에서 브랜드 (예 : "A2"), 제품 ("우유") 및 용량 ("2L")을 추출한 다음 제품 간 거리 벡터를 만들고 제품과 일치시키기 위해 바이너리 분류기와 같은 것을 사용합니다 (SVM 언급했다). 그러나, 규칙이나 정규식의 모든 무리없이 이것을 달성하는 방법에 대한 확신이 없나요? 이 문제를 공격하는 더 똑똑한 자율 학습 방법이 있다고 가정하고 있습니까? 가격은 거리 벡터를 계산하는 데 사용할 수있는 또 다른 "기능"일 수 있습니다.
  • 신경망 접근법을 사용하는 것이 좋습니다. 그러나 구체적인 코드 나 예제를 많이 찾을 수 없었습니다.
  • Levenshtein 거리 또는 Jaro-Winkler 거리와 같은 문자열 유사 알고리즘을 사용하는 것이 좋습니다.

위의 기술 중 하나를 사용하거나 다른 기술을 사용 하시겠습니까?

또한 누구나 이런 종류의 문제에 대한 예제 코드 나 라이브러리를 알고 있습니까? 나는 어떤 것도 찾지 못했습니다.

(예를 들어 일부 사람들은 큰 데이터 세트에서 Jaro-Winkler 거리를 계산할 때 성능 문제가있는 것으로 보았습니다. Mahout과 같은 알고리즘을 분산 구현할 수 있기를 기대했지만 wasn

+0

얼마나 많은 제품 (볼 파크 견적)을 관리해야합니까? – Blacksad

+0

슈퍼마켓이므로 꽤 많은 수의 상품이 있습니다. 수만 개가 예상됩니다. – victorhooi

+0

모든 제안은 훌륭하지만 감독이 있습니다. 그리고 수만명의 수업에 대한 감독 학습은 지옥이 될 것입니다 ... 저는 감독되지 않은 접근법을 생각할 수 없습니다. – Blacksad

답변

5

위의 기술 중 하나를 사용하거나 다른 기술을 사용 하시겠습니까?

내가 이것을 실제 작업으로 수행했다면 나는 기계 학습을 많이 사용하지 않을 것입니다. 대부분의 대기업에는 브랜드 및 제품 이름의 데이터베이스가 있으며이를 사용하여 일을 상당히 쉽게 일치시킬 수 있습니다. 일부 데이터 위생이 필요할 수도 있지만 ML 문제는 그리 중요하지 않습니다.

데이터베이스가 없다면 간단하다고 말할 수 있습니다. 모든 것을 특징 벡터로 변환하고 가장 가까운 이웃 검색을하십시오. 그것을 사용하여 데이터베이스를 만드는 데 도움이되는 도구를 만드십시오. IE : 첫 번째 "A2 Whole Milk 2L"을 "우유"로 표시 한 다음 가장 가까운 이웃이 우유인지 확인하십시오. "예"및 "검토 필요"또는 이와 유사한 옵션을 신속하게 표시 할 수있는 방법을 제공하십시오.

당신이 제안한 것과 같은 간단한 데이터의 경우, 90 %의 시간이 작동하는 곳에서 쉽게 데이터를 처리 할 수 ​​있어야합니다. 나는 하루에 수천 개의 문서에 라벨을 붙이는 것과 비슷한 작업을 수행했습니다.

일단 자신 만의 데이터베이스가 있으면이를 해결하는 것이 매우 간단해야합니다. "보이지 않는"데이터를 처리하기 위해 코드를 재사용하여 데이터베이스를 만들 수 있습니다.

관련 문제