기간
2021 ~
소개
본 프로젝트에서는 인터넷 강의를 새로 업로드 하게 되면 강의에 대한 오토 태그들이 생성이 되어 그중 적합한 것을 최종적으로 강사가 결정을 하여 인터넷 강의에 적합한 해쉬 태그를 만드는 것 과 인공지능을 활용한 오타 교정 및 검색 단어 또는 검색 문장과 유사한 컨텐츠를 추천하는 검색기를 만드려고 한다.
내용
본 프로젝트는 크게 데이터셋 생성,오토태그, 검색기 부분으로 나뉘게 된다.
-
데이터셋 생성
- 오토태그 생성, 검색기 부분을 구현하려면 필수적으로 데이터셋이 필요하다.
- STT(Speech-To-Text) 모델 중 네이버의 클로버를 사용하여 모든 강의들을 Text 형태로 변환한다.
- 생성된 Text를 이용하여 전처리 과정 및 형태소 분석을 한다.
- 형태소 분석을 하였을때 형태소 분석기에 존재하는 단어 사전에 복합 명사가 들어있지 않는 경우가 있어서 복합 명사를 추가해줘야 한다.
- 형태소 분석의 결과로 나온 품사 태그와 자주 나오는 2~3gram 이 복합명사의 템플릿에 매칭이 되는 것을 이용해 하나의 단어로 합쳐 복합명사로 추가하게 된다.
- 이렇게 생성된 데이터셋들을 최종적으로 데이터 프레임 형태로 데이터셋을 구축한다.
-
오토태그
- 데이터셋을 이용하여 여러가지 방법으로 오토태그 생성하는법을 연구한 결과 TF-IDF로 생성하는 것이 가장 적합하여 TF-IDF를 이용하는 것으로 채택하였다.
- TF의 범위는 하나의 강의영상이 되고 IDF의 범위는 전체 강의영상에 해당된다.
- TF-IDF의 상위 10개의 결과를 강사에게 추천을 해주게 되고 강사는 그 후보들 중에서 원하는 태그들을 선택해 최종적으로 사용자에게 보여지는 해쉬태그들이 된다.
-
검색기
- FastText 모델을 사용하기 때문에 데이터셋을 가지고 FastText 모델을 학습을 시킨 후 저장한다.
- 사용자가 검색을 하게 되면 영어인지 아닌지 판별한다.
- 영어인 경우
- 한국어를 영어로 친 경우는 Inko 라이브러리를 이용해 프론트에서 한국어로 변환한다.
- 영어 단어 인경우는 seq2seq 모델을 이용해 매칭되는 한국어로 변환한다.
-
한국어인 경우
2.1 단어인 경우
- FastText 모델을 이용해 의미적으로 유사한 단어들을 상위 10개를 후보로 추천한다.
2.2 문장인 경우
- 문장을 공백단위로 토큰화 시킨 이후에 토큰단위별로 levenshtein 거리 알고리즘을 적용해 형태적으로 비슷한 단어들을 뽑아내 오타교정을 한다.
- 뽑아낸 단어들로 최종적인 전체 문장들을 만들고 10개의 문장 후보를 추천한다.
기술 스택
Git
A.I
Python
URL