오늘은 korQuad Dataset 을 이용하여 제가 직접 입력안 텍스트와 해당 korQuad에 있는 질문의 유사도를 구해보겠습니다!
먼저 미리 전처리한 파일은 여기서 받을 수 있습니다.
https://github.com/Kangsuyeon01/KorQuAD-study
- Sentence transformer란?
사전 훈련된 BERT 입니다. 여기서는 한국어도 포함되어 학습된 다국어 모델을 로드합니다.
해당 게시글에서는 모델에 대한 설명은 생략하고, 구현한 내용을 토대로 작성하겠습니다!
먼저 데이터셋을 불러옵니다.
korQuAD 데이터를 불러왔습니다.
그리고 여기서 핵심으로 사용할 모델을 불러옵니다.
미리 학습된 모델을 불러왔습니다.
그리고 텍스트 유사도를 구할 질문들을 불러옵니다.
해당 질문은 60407개가 있으므로, 학습하는데에 조금 시간이 걸릴 수 있습니다.
처음 구현할 때는 1000개까지만 테스트용으로 해보시는 것을 추천드립니다.
해당 데이터셋에 대하여 인코딩합니다.
그리고 저장!
입력한 문장과 유사한 문장을 출력해보겠습니다.
첫번째 문장과 두번째 문장은 일부로 유사한 질문 데이터로 입력하였습니다.
세번째 문장은 아무 관련 없는 문장에 대해서는 어떻게 나타나는지 보았습니다.
문장으로 입력하면 그래도 비슷한 질문이 몇개 잘 추출된 모습을 볼 수 있습니다.
그 다음은 키워드, 즉 명사로 입력했을 때의 출력값이 궁금하여 입력해보았습니다.
이번에는 상위 10개까지 뽑았습니다.
문장이 아닌 키워드를 입력했기 때문에 해당 키워드와 관련된 질문은 거의 찾을 수 없는 것 같습니다.
그래서 이번에는 키워드에 물음표를 넣어주었습니다.
세번 째 입력값은 일제감정기로 바꿔주어봤습니다.
물음표만 넣었을 뿐인데 조금 더 질문이 자세히 바뀐 모습을 볼 수 있습니다.
마지막은 input을 통해 구현해보았습니다.
질문-질문 문장으로 찾는 방법은 꽤나 괜찮은 방법인 것 같았습니다.
하지만, 제가 구현할 프로젝트와는 적합하지 않다고 느꼈습니다..
여러 다른 실험들도 많이 해야할 것 같습니다. ㅎ ㅜㅜ
참고
'공부정리 > NLP' 카테고리의 다른 글
[NLP] Sentence transformer를 이용하여 텍스트 유사도 구하기 with korQuad Dataset - (2) (1) | 2022.10.18 |
---|---|
[NLP] Fine Turning - Hugging face (0) | 2022.10.18 |
[NLP] 자연어 처리를 위한 데이터 셋 모음 (0) | 2022.10.14 |
[NLP] KorQuAD dataset 기반 챗봇 만들기 (0) | 2022.10.13 |
[NLP] KorQuAD 데이터를 활용해보자 ( KorQuAD 1.0 csv file) (0) | 2022.10.12 |