상품명(상품이름) 검색에 대한 질문인데요..
알림
|
페이지 정보
작성일
2024.06.17 17:09
본문
안녕하세요, 질문내용이 좀 난해 하긴 한데요^^:;
혼자 고민을 하다가 개발한당 앙님들의 도움을 받을수 있을까 해서 질문 드려봐요
상품이름이 유사한 항목을 검색하고자 합니다.
OpenAI API등 임베딩을 하게 되면 임베딩할 단어를 의미 분석으로 임베딩을 하다 보니 원하는 검색 결과를 만들수 없었어요.
전에 테티님 영상중에 상품이름이 동일한것만 찾는다는걸 보고 응용이 가능할까 했지만, 잘 안되서 혹시 다른 좋은 의견이 있으실지 여쭤 봅니다.
제가 하고자 하는 건 다음과 같습니다.
찾고자 한는건 상품이라고 하고 비슷한 발음의 상품을 찾는고자 합니다.
(동일 발음이 아니여도 비슷한 발음)
[예시 데이터]
상품번호, 상품명
1, 닭한마리
2, 닥한마리
3, 앤젤 헤어
4. 피크닉
5. angel spray
6. PICNIC place
7. 하얀 국물
8. 궁물접시
9. angal
10. 마리오
검색 : "닭한마리"
예상 결과 : "닭한마리", "닥한마리"
검색 : "angel"
예상결과 : "angel spray", "앤젤 헤어", "angal"
검색 : "피크닉"
예상결과 : "피크닉", "PICNIC place"
검색 : "마리"
예상결과 : "닭한마리", "닥한마리", "마리오"
위처럼 비슷한 상품명을 찾고 싶었습니다.
상품명은 데이터에 들어 있으므로 임베딩후 유사도 검색으로 벡터디비에서 찾아야 한다고 생각합니다.
저는 다음과 같이 진행을 했습니다.
비슷한 발음을 유추하고 찾을수 없어서 저는 해당 상품명을 IPA 발음 기호, 자모로 변환 환 로마자로 변환 후 임베딩을 했습니다.
(의미유사 임베딩을 원하는게 아니였으므로 fasttext로 n-gram 을 사용하여 임베딩을 했습니다.)
그리고 검색시 모든 검색어를 IPA 발음으로 변환후 해당 발음 기호를 벡터 검색을 하면 하고자 했습니다.
하지만 위처럼 제가 원하는 대로 되지 않고 전혀 엉뚱한 결과과 나오더라구요..
혹시 좋은 의견이나 방법이 있을까요?
댓글 1
자근자근님의 댓글
그 방법의 특성상 별도의 후처리가 없다면 고정 개수 반환이라 전혀 상관없더라도 데이터 중에 몇개가 같이 나올 수 있습니다.
한글을 영어로 변환을 한 다음에, LSH (locality sensitive hashing) 알고리즘 같은걸 이용해서 유사 단어를 찾는 방식으로 진행하시면 될 것 같습니다