Skip to content

nature1216/semantic-address-search-with-dpr

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 

Repository files navigation

시맨틱(semantic) 기반 위치 정보 추정 기술

위치를 묻는 query에 대해 POI(point of interest)를 제공해주는 지도 웹 서비스



images image image image


프로젝트 개요

목표

  • 학교 내의 객체,건물,공간 등의 위치를 잘 모르는 새내기나 외부인들이 편하게 위치를 물어보았을 때, 지도에 정확한 위치를 표시해주는 것


내용

  • POI마다 좌표 정보와 위치를 설명하는 텍스트들을 매핑하였다.
  • 사용자가 입력한 전북대학교 내 위치에 대한 질의를 받고, 가장 큰 유사도를 보이는 좌표 값을 출력하여 지도에 보여준다.
  • 현재 수집한 전북대학교 데이터 셋의 위치 범위는 '중앙도서관','공대','자연대','농대' 근처 이다.
  • 현재 수집한 전북대학교 데이터 셋의 객체 종류는 '벤치','pm주차장','구조물','교내상가','흡연구역','쓰레기처리장','지름길','공간','건물' 이 있다.
  • 특정 쿼리에 대한 이스터에그가 존재하며, ['토끼','뽀시래기','귀요미'] 를 입력했을 때 학교에서 키우는 토끼의 집을 알 수 있다.


학습환경 및 실행

환경

  • Colab
  • python 3.10
  • sentence-transformers 2.2.2

모델 학습

  1. models/SBERT_with_klue_BERT/data/place_info_corpus - query.csv 다운로드

  2. models/SBERT_with_klue_BERT/SBERT_with_klue_BERT.ipynb에 데이터 업로드

    # 데이터 업로드
    from google.colab import files
    files.upload()
    
  3. models/SBERT_with_klue_BERT/SBERT_with_klue_BERT.ipynb에서 데이터 전처리 및 모델 학습

실행

  1. 쿼리 입력

    hits = search_bi_encoder("공대 7호관 옆 흡연구역으로 와 주세요")
    # 출력: corpus_id(유사도가 높은 순)
    
  2. POI 텍스트 확인

    print(passages[hits[0]])
    



개발 스택

image


Flow Chart

flowChart4


Branch

  • main: 최종적으로 사용된 코드들
  • models: 구현한 NLP DPR 모델들
  • client: 쿼리를 묻고 결과를 받아온 좌표를 지도로 시각화하는 웹(html,css,js) 코드
  • server: 쿼리를 받고 모델을 실행시켜 결과 값을 반환하는 flask(python) 코드
  • nature1216: 프로젝트를 진행하며 작성했지만 최종에서 사용하지 않은 코드 - 정보 수집을 위한 크롤러
  • lalala5772: 프로젝트를 진행하며 작성했지만 최종에서 사용하지 않은 코드 - 한국어 형태소 분석기(tokenizer)



주요 기능

DPR

image

koBert base의 모델을 추가 학습한 내용

  • 학습 데이터는 Question-Document Pair 형태로 구성
  • Document는 주어진 Question과 나타내는 위치가 일치하는 설명 텍스트에 해당
    • e.g. {‘docid’:’1’, ‘qid’:’1’, ‘query’:’공대 7호관 옆 흡연구역으로 와주세요.’, ‘positive_passage’:’(쿼리가 설명하는 위치에 대한 설명)’}
  • Positive passage: Question에 대한 정확한 답변이나 관련 정보를 포함하는 document
  • Negative passage: Question과 관련성이 낮거나 무관한 정보를 포함하는 document
  • Question에 대해 positive(=정답) passage는 가까워지고, negative(=정답이 아님) passage와는 멀어지도록 함


성능 지표

image


실행 결과

image image image 스크린샷 2023-12-11 오전 12 48 45




개발자

[오키duckey]

  • 김자연(@nature1216): 데이터 수집 및 가공, dpr 모델 개발, 서버 개발
  • 이미르(@lalala5772): 데이터 수집 및 가공, dpr 모델 개발, 클라이언트 개발


개발 기간

9월



About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages