비버웍스 키오스크 음식 메뉴 표준화 해커톤
1.27 ~ 1.29
팀원
이름 | 협업 | 깃허브 |
---|---|---|
김택관 | 최초 사전 구축 알고리즘 구현, 단어간 유사도 및 우선 순위 알고리즘 구현 | https://github.com/KimTaekGwan |
이주환 | 전처리 알고리즘 구현, 불용어 데이터, 옵션 데이터, 고유명사 데이터 수집 | https://github.com/LeeJuHwan |
Process
Model Algorithm
Architecture
principle
Algorithm to function
algo = Algorithm()
def preprocessing(text) :
res = {'메뉴':None, '맛/재료':None,
'단위':None, '세트/옵션':None}
x = algo.bascket_remove(text)
x = algo.stop_words_func(x)
x = algo.bascket_remove(x)
x = algo.option_func(x)
if x[-1] :
res["세트/옵션"] = "옵션"
res["메뉴"] = x[0]
return {"menu" : x,
"std" : res}
x = algo.special_char(x[0])
if type(x) == list :
res["세트/옵션"] = "세트"
return {"menu" : " ".join(x),
"std" : res}
rs = jh.morph(x)
try :
if rs[-1] :
res["단위"] = "".join(rs[-1])
x = algo.spacing_text(rs[0])
except TypeError as e:
pass
x = algo.nnp_remove(x)
x = algo.word_standard(x)
output = algo.member_menu(x)
res["맛/재료"] = ",".join(output[0]); res["메뉴"] = output[1]
token_result = jh.kiwi.tokenize(x)
ls = [i.form for i in token_result if i.tag[0] == "N"]
return {"menu" : " ".join(ls),
"std" : res}
- return
Keyword
-
사용자 사전 포맷
-
형태소 분석을 통한 알고리즘 구현
-
단어의 우선 순위
TIL
트라이(Trie) 구조
-
문자열을 저장하고 효율적으로 탐색하기 위한 트리 형태의 자료구조
-
자동완성 기능, 사전 검색 등 문자열을 탐색하는데 특화되어있는 자료구조
-
래딕스 트리(radix tree) or 접두사 트리(prefix tree) or 탐색 트리(retrieval tree)라고도 한다. 트라이는 retrieval tree에서 나온 단어