2015-01-28 7 views
0

바코드 스캐닝이 재료를 데이터베이스에로드 할 수있게하는 앱에서 작동합니다. 우리가 겪고있는 문제는 같은 성분에 대해 수많은 별칭이 있다는 것입니다. ' 바코드 스캔 성분 별칭 정렬

JOJOBA OIL 
JOJOBA OIL (BUXUS CHINENSIS) 
JOJOBA OIL (HYDROGENATED) 
JOJOBA OILS 
JOJOBA OIL (SIMMONDSIA CHINENSIS) 
JOJOBA OIL (SIMONDSIA CHINENSIS) 
JOJOBA SEED EXTRACT 
(JOJOBA) SEED OIL 
JOJOBA SEED OIL 
JOJOBA SEED OIL] 
JOJOBASEED OIL 
JOJOBA SEED OILJOJOBA 
JOJOBA SEED OIL (JOJOBA) 
JOJOBA SEED OIL (SIMMONDSIA CHINENSIS) 
JOJOBA SEED POWDER 
JOJOBA (SIMMONDSIA CHINENSIS) EXTRACT (REPLENISHING COMPLEX) 
JOJOBA (SIMMONDSIA CHINENSIS)OIL 
JOJOBA (SIMMONDSIA CHINENSIS) OIL 
JOJOBA (SIMMONDSIA CHINENSIS) OIL (SAPONIFIED) 
JOJOBA (SIMMONDSIA CHINENSIS) SEED OIL 
JOJOBA WAX (BUXUS CHINENSIS) 
JOJOBO SEED OIL 

이 별명의 모든

은'동일 성분에 링크 될 수 있지만, 대부분의 시간, 우리는 수동으로 추가해야합니다 예를 들어, 식물은 모든 다른 별명이있을 수 있습니다. 식물의 경우 이름을 지정하는 표준화 된 방법이 없으므로 많은 다른 별칭으로 자주 발견됩니다. ' 이름의 일부를 사용하여 재료를 자동으로 연결할 수있는 방법이 있다면 그건 좋을 것입니다. 이것을 읽어 주셔서 감사합니다.

답변

0

타겟팅하려는 기술이나 이미 보유하고있는 데이터를 모른 채로 어떤 것을 추천하기가 어렵습니다. 샘플 데이터에서 일치하는 접두사가 같은 것처럼 보입니다 (괄호를 제거하기 위해 데이터를 정규화하는 경우).

응용 프로그램 코드로 작업하는 경우 결정적인 비순환 유한 상태 오토 마톤 (DAWG라고도 함)을 구성 할 수 있습니다. Wikipedia 이렇게하면 매우 빠르게 검색 할 수있는 접두사 (또는 작은 조정이있는 중위어)를 수행 할 수 있습니다. 문자열 메트릭 (예 : Levenshtein Distance)을 결합하여 맞춤법 오류나 재료 이름 간의 약간의 차이를 허용 할 수 있습니다. 스티브 하노브 (Steve Hanov)는 시도와 DAWG에 대한 훌륭한 블로그 게시물을 보유하고 있습니다. 다음은 DAWG에 관한 게시물입니다 (http://stevehanov.ca/blog/index.php?id=115).

나는이 기술을 사용하여 1 초 미만의 성능으로 수백만 레코드의 일치를 찾았습니다.

대부분의 DBMS는 전체 텍스트 인덱스에서 작동하는 CONTAINS 함수를 사용합니다.

아마도 조금 더 많은 정보를 제공하면보다 구체적인 답변을 제공 할 수 있습니다.

0

의심 할 여지없이 개별 성분 이름이있는 테이블을 키로 사용할 수 있습니다. 이 표에 단순히 "성분 상호 참조"란을 추가하십시오.

127 JOJOBA OIL  21 
311 JOJOBA OILS  57 
당신이 (: 성분 상호 참조 기록 #)를 얻을 수 있도록 새로운 성분을 추가 할 때마다

은 단순히 새로운 양수 보고서를 추가로 "성분 상호 참조"로 설정 예를 들어

입니다. 당신의 "표준"이름 일 무슨 결정, 그리고에 대한 상호 참조 번호 변경 (- 표준의 수)

127 JOJOBA OIL  21 
311 JOJOBA OILS  -21 

는 그런 다음 "호호바 오일"을 찾을 때마다 상호 참조가 부정적이기 때문에를, 확실한 방법으로 표준 이름을 찾을 수 있습니다.

확장 가능. 예를 들어, 국가 나 지역에 따라 서로 다른 시장에서 다른 재료라고 불리는 동일한 성분을 가질 수 있습니다.사용법 : 참조 예를 들어, 호주에서는, "고추"는 "피망"

당신은 단순히 기본 테이블

551 Capsicum   32 
306 Bell Pepper  -32 

으로 그리고 지역의 보조 테이블에 입력

인 미국에서 무엇인가

US    32  306 
Aus    32  551 

이라면 ABS (상호 참조)와 성분 (32)에 대해 다음 호주 시장 미국 시장 또는 (551)에 대한 레코드 (306)를 사용하여,이 기본 테이블에 엔트리가있다. 엔트리가없는 경우 두 마켓은 동일한 용어를 사용합니다.

(하지만 바코드 스캔보다 데이터베이스 디자인에 관한 것 같습니다.)