여러 개의 frame을 정의
한 frame안에 여러 개의 slot, value가 존재함 -> 즉, slot 여러 개를 모아둔 것이 frame
주어진 slot의 값을 채워가는 것들 (slot filling)
chatbot이 명령에 맞는 응답을 함
slot을 채운 이후에 채워진 slot에 맞게 반응하는 것이 frame-based chatbot(slot 채우는 것이 중요)
-> 그렇다면 어떻게 작동을 할까
question을 전부 다 정의해둠 (slot을 채우기 위함)
-> 유저한테 question template를 통해 질문하여 채워 넣음
(초기의 메커니즘)
한계점 : 비슷한 내용의 질문을 계속하고, 계속 질문이 들어올 수 있음
질문에 맞는 rule을 정해두면 -> 반복적인 질문을 줄일 수 있음.
(condition action rule)
Multiple frames
도메인(예약 - 버스, 비행기,..., 등등)-> 안에서도 다를 수 있음
예) 시리, 빅스비 -> 모든 거를 다 할 줄 알아야 함. 알람(도메인), 전화(도메인) 구별지어주는 무언가가 있어야 함. 알람 - 전화 (다른 프레임) => slot이 다르고 다르게 보관해야 편함 (user input이 어떤 프레임에 연결되어있지? 연결해주는 알고리즘이 필요함)
input이 들어올 때 어떤 프레임에 가서 어떤 slot을 채울 지를 정해야 함
초기 : rule based
-> 좀 더 체계화 (frame 구분, slot filling)
=> nlp application이 많음
- domain classification
- intent determination
- slot filling (중요)
ex) 여행갈거야 -> 여행 (domain) -> 호텔, 비행기, 택시 (intent)
(multiple frame -> 좀 더 세분화해서 진화)
Slot Filling - rule based, machine learning
rule based로 slot filiing
rule 정의 해둔 것 : semantic grammars
input -> parsing -> slot을 찾아간다 (dialogue system)
machine learning based slot filling
-> bio tagging
crf(조건부확률을 계속해서 알려줌)
intent -> cfg를 통해서 판단이 내려질 수 있다.
final action - response generate
text-based dialogue state architecture -> advanced frame based
실제 회사 commercial 어떻게 이용?
rule based 시작 -> 데이터모아서 -> 새로운 데이터 -> 학습에 이용 (학습에 라벨 데이터와의 비교를 통해서 가중치 업데이트? 아니면 input에 정말로 새로 사용? bootstrap)
state tracker가 있으면 기억을 하고 있기 때문에 성능이 좋아짐(쓸 때 없는 것을 물어보지 않아도 됨)
dialogue acts
- speech acts -> 유저가 원하는 정보가 뭔지를 파악하게 해줌
- 다음 스텝을 정해주는 길라잡이 (dialogue acts(speech acts, grounding을 한 번에 갖고 있음), speech acts 번갈아가며)
- = tag set
template 기반 text generation(general) -> 딥러닝 모델 기반로 변화
dialogue manager -> finite automata 로 만들 수 있음
tracker, policy 따로 가져간다
tracker의 역할
------------------> 1주차 마무리
| [자연어처리] 2주차 복습 (0) | 2025.04.02 |
|---|---|
| [자연어 처리] 4주차 (교수님께 질문 드렸던 내용) (0) | 2025.03.28 |
| [자연어 처리] 1주차 복습 (간단히, Q & A) (0) | 2025.03.28 |
| [자연어처리][NLP] 1주차 강의 #2 corpus based chatbot (0) | 2025.03.07 |
| [자연어처리][NLP] 1주차 강의 #1 (OT) (1) | 2025.03.07 |