aiclaudev / will-you-talk-with-me Goto Github PK
View Code? Open in Web Editor NEWAURA
AURA
[1] 서로 말하는 단어 수가 비슷하다.
[2] 물음표가 서로 비슷하게 나온다.
[3] 상대방이 말한 말을 내가 다시 나의 견해, 경험을 넣어서 대답할 때 이전의 상대방이 한 말을 다시 반복한다.
남: 에버랜드 다녀오셨어요?
여: 네 이번주에 친구들이랑 다녀왔는데 사람이 너무 많았어요
남: 아 사람이 많았어요? 날씨가 요즘 너무 좋아서 그런가봐요 사람이 많았으면 놀이기구도 많이 못 타셨겠네요
여: 네… 별로 못 탔어요 그래도 t 익스프레스는 기다려서 탔는데 역시나 재밌었어요
남: t 익스프레스 진짜 재밌죠! (중략…)
[4] 두 사람 간 답장 시간 간격이 좁다.
[5] ‘그나저나’, ‘그러고 보니’와 같은 ‘주제의 전환’ 관련 단어가 자주 나온다.
(추가) 다른 생각의 방향 : 대화가 잘 맞는 것을 측정하지 말고, 잘 맞지 않을 때를 측정하자.
새로운 주제
A, B
친구 관계 -> 토픽 존재
만일 처음? -> 대화 주제 선정 과정 -> 잘 맞는지 보는 과정이 있음 -> 주제가 공통적으로 잘 통하면
-> 서로 잘 통하는 것 -> 대화 패턴을 분석해서 서로 매칭 -> 잘 대화가 통하는 사람이라고 예측
-> 계속 대화 내용을 바탕으로 갱신 -> 서로 간에 이야기를 시작하는 대화 주제의 유사도, -> 토픽
-> 감정이 어떤 느낌으로 흘러가는지 -> 감정
-> 대화 뭉치가 필요함 -> 다양한 감성을 다룬 데이터 필요
논의 결과
① 팀원 모두 주제 변경에 대해 찬성하였습니다.
② 팀원은 일단 기존인원으로 진행 -> 추후 상황에 따라서 가능하다면, 교수님께 다른 팀과 협업 혹은 팀원 충당을 요청드리고 싶습니다.
ex. 팀장님은 나와 성별이 같은데 내가 좋아한다는 걸 들킬까 봐 긴장돼 -> 팀장님을 좋아하는 마음을 누군가 알 까봐 걱정되시겠어요. -> 그럼 나만 곤란한 게 아니라 팀장님도 난처하시겠지? -> 이전에는 누군가를 좋아할 때 어떻게 하셨나요? -> 티 내지 않고 조용히 좋아했어. 들키지 않았지만 잘못이 아니니 억지로 마음을 숨기고 싶지는 않아. -> 바라는 대로 잘 해결되길 바랄게요.
(2) 한국어SNS (AIHub)
상업/연구용 목적으로 모두 사용 가능
json파일 형식으로 제공되며, 아래와 같은 주제로 분류됨
위 데이터의 장점은, 실제 SNS 상에서 주고받은 대화 내용과, 대화 주제를 담고 있다는 것입니다.
(3) 한국어 단발성 대화
(4) 감정 분류를 위한 대화 음성 데이터셋
(5) 과거 삼성카드 데이터 공모전
데이터 전처리 기법
감정 분류 조사
GRU, LSTM, Bi-LSTM + 텍스트 분류를 위한 Naïve Bayes Classifier
토픽 추출 조사
주제 호응도 측정
먼저 이번주 핵심 내용은 어떻게 주제 호응도를 측정할 것인지에 있었습니다. 모델링 하기에 앞서, 대화의 기술에 관해서 쓴 책들도 보았고 이와 관련된 논문이 있는지 살펴보았습니다. 하지만 주제자체가 주관적인 요소가 매우 강해서 1,0으로 딱 떨어지는 기준을 찾지 못했습니다. 따라서 대중적으로 대화가 잘 되는 기준이 무엇일까 생각해보았고 대화가 일정한 흐름에 맞게 잘 이어진다는 것은, 말을 이어 나가는 상황에서 발화마다 교집합이 존재한다고 판단을 하였습니다.
대화의 흐름이 잘 이어진다 = 발화마다 교집합이 존재한다
이를 토대로 주제 호응도 측정을 위한 두가지 방법론을 생각해보았습니다.
첫번째 방법론 (상대방과 당사자의 대화를 한 문서로 합쳐 토픽 추출)
만약 상대방과 당사자가 나눈 발화에서 주기적으로 토픽이 나온 횟수가 비슷하면 이 둘의 대화에서 주제 호응도가 유의미한 것으로 판단.
두번째 방법론 (발화마다 토픽 추출)
추출된 토픽과 연관된 키워드를 인터넷에서 데이터를 불러오거나, 사전에 구축된 데이터 베이스 안에서 추출한다. (블로그 태그 기반 연관단어 추출 기법 사용)
발화별로 토픽, 관련 키워드끼리 연관성을 분석한다. 그들의 유사도가 발화마다 일정하게 유지가 된다면 주제의 호응도가 좋은 것으로 판단.
Data Understanding : 저번주에 수집한 데이터셋에 대한 장/ 단점과 저희의 프로젝트에 어떻게 적용할 수 있을지 생각해보았습니다.
< Bi -LSTM을 이용해 문장 별로 감정을 분류하는 모델>
이처럼 각 문장에 대한 감정을 추출하고 두 사람의 감정 흐름이 일치한다면 대화가 잘 통한다고 할 수 있을 것입니다.
ex) 사람1과 사람2가 대화를 주고받은 상황
사람1 : 저는 조만간 승진할 수 있을 것 같아요! 너무 행복하네요ㅎㅎ -> 기쁨
사람2 : 우와 축하드려요! 저번에 진행하시던 프로젝트가 잘 되었나봐요?! -> 기쁨
사람1 : 네ㅎㅎ 운좋게 성과가 좋아서 이렇게 됐네요! A씨는 잘 되어가나요? -> 기쁨
사람2 : 저는 당분간 승진을 못할 것 같아요ㅠㅠ -> 슬픔
사람1 : 헉 정말요? 무슨 일 있으세요? -> 당황
사람2 : 과장님이 저를 마음에 안 들어 하세요 .. 별 일도 아닌 걸로 화만 내시더라고요 -> 슬픔
사람1: 아.. 그렇구나ㅠㅠ 그래도 계속 버티다보면 좋은 일이 있지 않을까요? -> 슬픔
사람2 : 저도 그렇게 생각하면서 버티고는 있지만.. 먼저 승진하는 동기들 보면 힘드네요 -> 불안
사람1 : 과장님이 정말 이상하시네요!! 제가 다 화가나요. -> 분노
사람1의 감정 흐름 : 기쁨->기쁨->당황->슬픔->분노
사람2의 감정 흐름 : 기쁨->슬픔->슬픔->불안
• 이와 같은 경우라면 두 사람의 감정 흐름이 크게 다르지 않으므로, 서로의 감정에 공감하고 대화가 잘 통한다고 할 수 있을 것.
(2) 한국어SNS (AIHub)
서로의 호응도를 수치화할 수 있는 간단한 기준을 추가로 생각해보려 했지만, 딱히 떠오르지 않았습니다. 따라서 지금까지 생각한 방법론을 우선적으로 구현한 후, 새로운 방법이 생각난다면 추가하는 형식으로 진행하려고 계획하였습니다.
[1] 서로 말하는 단어 수가 비슷하다.
[2] 물음표가 서로 비슷하게 나온다.
[3] 상대방이 말한 말을 내가 다시 나의 견해, 경험을 넣어서 대답할 때 이전의 상대방이 한 말을 다시 반복한다.
[4] 두 사람 간 답장 시간 간격이 좁다.
[5] ‘그나저나’, ‘그러고 보니’ 와 같은 ‘주제의 전환’ 관련 단어가 자주 나온다.
[6] 주제와 관련된 감정의 흐름이 비슷하다.
<주제 호응도 관련해서 고민사항들>
<주제가 이어지는지 아닌지 컴퓨터에게 인식을 시킬 방법>
먼저 프로토타입을 내기 위해서 초면인 사람이 가장 많이 대화 주제로 선정하는 case 5개를 뽑았음
1)영화 2)여행 3)반려동물 4)운동 5)음식
1에서 추출한 주제와 관련된 키워드를 태그 기반 관련 키워드 추출과, 크롤링으로 데이터 베이스 구축 -> 그래프 형태로 데이터 베이스 구축
-><취미에 해당하는 데이터 베이스 구축 예시 사진>
대화가 진행됨에 따라 각 발화별로 핵심 주제 추출
[1]영화 [2] 영화 [3] SF, 인셉션
4-1. 첫번째 방법론
1. 그래프 형태로 데이터를 구축
2. 발화1, 발화2의 주제끼리의 데이터상 거리(edge 수)로 유사도를 측정
-> 거리가 크면 유사도 떨어지는 것
-> 거리가 작으면 유사도 큰 것
3. 만약 사전에 구축한 데이터셋에 주제가 포함이 안 되어 있다면 해당 주제에 대해서 크롤링 후 데이터 셋에 추가 그리고 1,2 작업 실시
4. 발화마다 주제의 거리관계 즉 상대방과 나의 대화 주제간 거리가 지속적으로 작게 유 가 되는지 여부 측정
(1) 대화가 잘 통하는 예시: ‘영화’라는 주제 내에서 이야기가 이어짐
A: 저는 평소에 영화보는거 좋아해요!
B: 영화 보는거 좋아하시는구나~ 무슨 영화 보는거 좋아하세요?
A: 전 SF면 다 좋아하는데, 인셉션이 가장 좋더라구요ㅎㅎ
(2) 대화가 잘 통하지 않는 예시: ‘영화’와 ‘여행’이라는 주제에서 왔다갔다함
A: 저는 평소에 영화보는거 좋아해요!
B: 저는 평소에 여행 다니는거 좋아해요ㅎㅎ 일본도 휴가마다 가는 편이에요!
A: 아하 저는 휴가때는 그냥 집에서 공포영화 자주 보는 것 같아요
4-2. 두번째 방법론
1. 발화마다 토픽을 추출
2. 토픽과 연관된 키워드 다수 추출
- 이 과정에서 사전에 구축한 데이터 베이스에 존재시에 사용
- 없을 시에 크롤링으로 키워드 추출
3. 상대방의 주제와 키워드 나의 주제와 키워드끼리의 연관성 측정
4. 이 연관성이 대화가 진행됨에 따라서 일정하게 유지하는지 평가
(1) 대화가 잘 통하는 예시 : 두 키워드 테이블 간 유사도가 높다.
A: 영화 보는거 좋아하시는구나~ 무슨 영화 보는거 좋아하세요?
B: 전 인셉션이 가장 좋더라구요ㅎㅎ
(2) 대화가 잘 통하지 않는 예시: 두 키워드 테이블 간 유사도가 낮다.
A: 저는 평소에 영화보는거 좋아해요!
B: 저는 평소에 여행 다니는거 좋아해요ㅎㅎ
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.