저번학기 미국 연구인턴 갔을때 1저자로 작성했던 논문!! IEEE International Conference 에 냈었는데 Accept 됐다.!


우리 논문은 Proceedings 에 publish 될 예정이고 나는 7월 중순에 그리스 아테네로 Oral Presentation 을 하러 갈 예정이다. (짝짝짝) 
다행히 학회 등록비, 숙박비는 미국 대학 측에서, 항공료는 경희대 측에서 지원해준다고 해서 나는 식비랑 여가비만 들고 간다. 학회 구경, 그리고 그리스 구경 재미있게 하고 와야지!
 암튼 그래서 이것저것 준비할 것들이 많다.. Review Revision 도 해야되고.. 
졸논2개준비하면서 학회갈준비하면서 학점챙기면서 어학공부할라니까 진짜 너무피곤하다. 시간이 너무 없다.
이건 좀 아닌 것 같다...
오늘도 오랜만에 친구들 만나기로했는데 못간다하고 도서관왔다. 해야할일을 쳐낼려면 어쩔 수 없다...
최근에는 좀 정신을 차리고 열심히 사는 중이다. 미국에서 돌아오자마자 이렇게 살았어야 했는데.
돌아오고 나서 겨울방학동안은 진짜 아무것도 안하고 빈둥대며 살았고,, 학기 초에도 최소한의 것들만 하면서 대충 살았는데.. 너무 후회가 된다!!!!
도서관에 있으니 마음이 편해져서 좋다.
최근에 푹 빠진 노래는 세븐틴의 손오공 이다. 노래 가사랑 안무가 너무 맘에들고 멋있고 중독적이다..
한마디로 내취향저격
세븐틴이 누군지는 모르지만.. 매일 듣고있다. 아마 앞으로도 쭉 내 최애 노래일듯??  
암튼,, 앞으로도 파이팅,,, 하루하루 잘 준비해서 목표를 이뤄야겠다.  
 
아래는 기록용으로 막 적음
김하일
case1)
24살 - 4학년
25-26살 카이스트석사(바뇌)
27살~31살 카이or미국 공학박사
32살 학업끝.. 이제포닥??? 
case2)
24살 - 4학년
25-26살 카이스트석사(바뇌)
27살~34살 의사+공학박사 =의사과학자/의사공학자
35살 학업끝.. 이제포닥??? 
의과학자/의공학자 가 될수도 있겠고 의사과학자/의사공학자가 될 수도 있겠다
미국으로간다면 아마 전자 카이스트에 남는다면 후자. 
의석박통) 31살 의과학박사
공석미박) 27살 석사 32 의과학박사
공석의박) 35살 의사+공학박사
의사과학자/의과학자 (의사공학자/의공학자)
- 계산 뇌과학/신경과학, 생물정보학
 
좀 더 내가 하고싶은 분야를 일찍 알았다면.. 더 이른 시기에 관련해서 이것저것 도전해보고 좋은 기회들을 잡을 수 있었을텐데.. 하는 아쉬운 마음은 있지만,
지금도 충분히 어린 나이이고, 세상에 뭔갈 이루기 늦은 나이는 전혀 없으니까.
조급해하지않고 열심히 살아야겠다. 
생각해보면 세상에서 뭔갈 이루고자 할 때 방해받을 수 있는 유일한 요소는 자신의 건강 상태이다.
또 하나를 더하자면 주위 인간관계 및 가족의 건강상태..? -> 정신 건강에 크게 영향을 끼칠 수 있는 요소이기 때문
그렇다면 신체적/정신적 건강이라고 할 수 있겠다.
건강 관리를 지금부터 잘 해두어야 겠다. 지금은 밤 새고 운동 안하고 그래도 어려서 쌩쌩하지만
나이가 좀 더 들면 확실히 몸이 힘들다고 하니까... 운동을 좀 해서 체력, 근력을 키워야겠다.
(헬스장 등록되어있는데 너무 바빠서 못가는중... 하... 일찍부터 좀 많이 해둘걸) 
그리고 사실 티스토리 블로그 테크닉이나 상세한 프로젝트/논문 설명 등등 공부 목적으로 개설한건데
그렇게 되지가 않네..
일단 그런거 쓸 시간에 뭐라도 하나 더 진전시키는게 나은 상황이라 더 그렇다. 너무 바빠!!
앞으로도 그런 내용은 안쓸거같은 느낌이..ㅋㅋ
당분간은 내 생각, 일상, 계획들을 조용히 써내려가고 다시 마음을 다잡는 용도로 써야겠다.  

 

+ 아 그리고 마침 충북인재양성재단 장학생으로 선발되었당.. 200만원 받았당. 직전 학기 학점이 좋았어서 다행이다.

이런게 있는 줄 알았으면 1학년때부터 신청해보는건데.. 4-2학기에 이런게 있는줄 알았다. 내가 나고 자란 충청북도... 고맙다...!!  

이 장학금은 그리스 학회 가는 여비로 유용히 사용할 예정이다. 시기가 딱 적절했던 것 같다. 

(22:27 추가)
오늘따라 왜 이렇게 서글픈지 모르겠다.
속상하고 울고싶은데 뭐때문인지 모르겠고 그냥 이래저래..
많은게 불안하고 스스로에게 실망스럽고 두렵고 외롭고 쓸쓸하고..
비가와서 싱숭생숭한가보다.
이런 이야기를 할 사람이, 할 공간이 여기 내 블로그밖에 없다는 것도 슬프다. 나를 알아줄 사람이 한 명만 있었으면 좋을텐데
심란한 마음을 털어놓았더니 토닥여줄 사람이 한명만 있으면 힘이 날텐데
속마음 터놓을 사람없이 혼자 세상을 살아가는건 너무 쓸쓸하다
예전엔 자취해서 좋았는데. 이제는 혼자있기가 싫다
혼자있고싶지않은데 같이있고싶은사람이없다

언젠가 친구로든 연인이든.. 마음을 공유할 수 있는 좋은 인연을 만날 수 있었으면 좋겠다
그나마 블로그에 혼자 속마음을 나누면서 쓸쓸함을 버티는거같다.
이상하게 속상하고 무섭고 두려운 오늘이다.

4학년 1학기는 유독 힘들었다.

팀 프로젝트도 많았고, 시험도 많았고, 과제도 많았고, 연구도 해야했다. 수업도 들어야하고 복습도 해야하고.. 거기에 각종 지원서 작성, 영어 면접 준비, 헬스장까지.. 숨을 돌릴 교양과목도 없이 6전공이었다.

여러 팀 프로젝트(무려 3개..)에 시간을 쏟는 동안에는 정작 내 연구를 못해서 불안했고, 과제를 하는 동안에는 수업 복습을 못해서 불안했고, 시험 공부를 하는 동안에는 팀 프로젝트나 과제를 더 해야해서 불안했고,.. 그냥 뭔갈 할 때 다른 뭔가도 해야한다는 마음이 동시에 있어서 계속 급박하고 조급한 마음으로 살았던 것 같다.

중간고사나 기말고사도 이상하게 한 교수님께선 이르게 시험보는걸 좋아하시고 다른 교수님께선 늦게 시험보시는걸 좋아하셔서, 거의 2-3주동안 시험기간으로 보냈다. 기말 시험이 모두 끝난 이후에도, 제출해야하는 과제나 제출물이 있어서 남들보다 종강이 1주정도 늦게 끝났다.

저번 학기는 교외 공모전을 동시에 하느라 바빴는데, 이번 학기는 교내 수업 외에 더 벌려놓은 일이 없는데도 너무 바빴다.  그러다보니 내가 선택과 집중을 할 수 있는 상황이 아니었다. 어쩔 수 없이 이 과한 일정을 한 학기 내내 끌고 갔다. 매일매일 간신히 그 날의 일정을 끝냈다. 일정을 끝내면 다음날 바로 또 빡센 일정을 끝내야만 했다. 이번 학기의 목표는 학점 잘 받기와 연구 열심히 하기였는데... 학점은 잘 받았으나 연구를 성실하게 했는지는 모르겠다.

4학년은 원래 다들 이렇게 바쁜건가 싶었다. 양해를 구하고 1달에 1-2번정도 갔던 헬스장에서, 피티쌤이 4학년이어도 나처럼 바쁜 사람은 처음본다고 하셨다. 그런가? 싶어 주위 친구들에게 물어보니 내가 유독 바쁜 삶을 살고 있더라. 수강신청의 실패와.. 복수 전공을 늦게 시작한 여파가 있던 것 같다. 한 학기에 수업을 그렇게 들었으면 안됐는데, 졸업을 맞추기 위해 어쩔 수 없었다. 또 같은 수업의 팀 프로젝트더라도 우리 팀이 더 시간, 노력이 많이가는 주제를 선정한 탓도 있던 것 같다.

 

한 학기 내내, 마음속으로는 지금의 나에겐 연구를 하는 것이 가장 중요하다는 생각을 하곤 했지만.. 사실 학점을 높이는데 집중하고 싶은 마음이 더 컸었던 것 같다.  미국에 가기 전까지는 다른것들 보다도 연구에 더 집중하고 싶다. (...)

미국.. 미국에 간다는 내용도 tistory 에 적고 싶었는데. 너무 바쁘고 마음에 여유가 없어서 이번 학기는 게시글을 많이 올리지도 못했네.. 일단 그간 밀린 얘기들은 방학 동안에 차근차근 해보자.

 

지금은 종강(6.26) 이후 2주정도 지난 시기이다. 

그리고 나는 지금 번아웃 상태같다. 아무것도 하기가 싫다. 그냥 쉬고만 싶다...

사실 그동안 열심히 산 만큼, 종강 직후 1-2주동안은 아무것도 안하고 마냥 놀려고 계획을 했었는데

연구쪽에 신경을 많이 못쓴게 사실이라, 진행해야 하는게 너무 많아서.., 온전히 내 일이라 내가 하지 않으면 진전되지 않아서 마음 놓고 쉴 수 없었다. 연구실 팀원과 다함께 제주도에 놀러갔다가 복귀하고, 이후부터 계속 뭔가를 또 했다.

제대로 딥하게 쉬질 않아서 그런지 정말 아무것도 하기가 싫다.. 그렇다고 아무것도 안하는 것도 아니고 뭔갈 집중해서 제대로 하는 것도 아닌 애매한 상태가 되어버렸다. 

 

그나마 위안이 되는건 학점을 잘 받은것, 그리고 예전부터 신경쓰였던 과목을 성공적으로 재수강 한 것이다.

그리고 교내, 교외의 SW 활동( 논문, 학회발표, 공모전수상, 데이터톤수상, 특허등록, 등등의 활동) 이 우수한 학생을 장학생으로 선발하여 장학금을 지급하는 SW 마일리지에 금상 장학생으로 선정되었다! 200만원 받았당.  뿌듯

 

아무튼, 이번 학기 덕분에 총 평균 평점이 많이 높아졌다. 1학년때부터 열심히 살 걸 후회된다! 아니, 열심히 공부할걸 후회된다!

나도 열심히만 했으면 높은 학점을 받아왔을텐데.. 졸업을 앞둔 지금은 평균 평점이 높은 친구들이 너무너무 부럽다.

그래서 더더욱 2023-1학기에 다닐 4-2학기는 더욱 열심히 해서 높은 학점을 받고 싶다. 마침 이번학기 학점이 좋은 덕분에 다음학기에 3학점을 추가로 받을 수 있어서, 21학점을 들을 수 있다. 평점 평균을 더 높일 기회인 것이다. 

그런데 문제는, 마지막 학기인만큼 졸업 논문을 써야하고, 연구를 마무리해야한다는 점이다. 심지어 나는 복수전공이라 졸업 논문을 2개 써야한다. 그리고 늦게 복수전공을 시작한만큼, 전공 졸업학점을 채우기 위해 이 때에도 최소 5전공을 들어야 한다. 

......

전공 과목 공부하고, 과제하고 하느라 이번 학기처럼 매우 바쁠 게 예상되는데, 연구를 해야한다. 그것도 2개나.. 

그나마 졸업 논문 중 하나는 팀 프로젝트 예정이어서 다행인가? 그리고 다른 하나는 이번학기에 하던걸 이어하는 것이니 괜찮을지도...

학점을 높이기 위해 최대한 많은 수업을 들을지, 연구에 더 시간을 투자하기위해 최대한 적은 수업을 들을지가 고민이다.

근데 아마 후자를 선택해야겠지.. 교수님께서도 그렇게 조언해주실 것이다. 이 문제는 나중에 생각하기로 하자.

 

아무튼, 힘들었던 4-1학기가 끝났다.

여름 방학동안에는 연구를 진전시키고, 토플 공부 및 시험을 보고 영어 회화 공부를 할 예정이다. (헬스장도 자주 다녀야 하는데....... 자꾸 우선순위에서 밀려난다)

2022-2학기에는 휴학을 하고 미국에 간다. 거기서 만날 학우들과 열심히 프로젝트 해서 논문까지 쓰고싶고, 영어 회화도 많이 늘리고 싶고, 여행도 많이 다니고 싶다. 지금껏 휴학 없이 스트레이트로 달려왔으니 이제는 좀 쉬엄쉬엄 오로지 프로젝트에만 집중하며 휴식하고 싶다. 이 타이밍에 미국 지원 프로그램에 선정되어서 정말 다행이라고 생각한다.

앞으로는 티스토리도 다시 자주 써야지. 다른 분들께 도움이 될 정보들도 하나 둘 올려보도록 하겠다.

 

고생했다 다예야! 

앞으로도 응원할게

 

 

 

 

 

 

 

 

 

 

 

 

 

경희대학교(서울캠퍼스, 국제캠퍼스) 에서 주관한 캡스톤 디자인 경진대회에서 최우수상을 수상하였습니다.!!

캡스톤디자인 수업은 모든 학생이 3, 4학년때 참여하는 수업으로, 그동안 배운 내용을 토대로 창의-종합적인 프로젝트를 설계 및 수행하여 유의미한 결과를 도출해 발표하는 프로젝트입니다. 이 프로젝트를 더 발전시켜 후에 졸업논문으로 쓰기도 하구요. 

이번 대회는 이번 학기(2021-2)에 캡스톤디자인 수업을 들은 모든 학과, 모든 분야 학생들의 종합설계 프로젝트를 평가 및 시상하는 대회였습니다. 그래서그런지 입법제안, 식품제조와 같은 주제부터 스마트팩토리 기계, 안내형로봇 등의 주제까지 정말 가지각색의 프로젝트가 본선에 올라왔더라구요. 

저는 데이터분석캡스톤디자인 수업을 들었고, 팀 프로젝트로서 뇌파를 이용해 사용자의 감정을 잘 드러내주는 음악 작곡 알고리즘 구현 및 UI개발을 주제로 하였었습니다. (저번 포스팅에도 간략히 언급했었죠.)

심사는 총 예선, 본선으로 이루어졌으며 예선으로는 서류심사, 본선으로는 발표를 통해 평가했고,

본선에 올라온 팀은 저희를 포함해 총 7팀이었습니다.

 

본선에 진출한 수상작은 아래의 링크에서 확인할 수 있습니다.

https://wzine.kr/khu_capstone/

 

경희대학교 링크플러스사업단 캡스톤디자인경진대회 수상작

경희대학교 링크플러스사업단 캡스톤디자인경진대회 수상작

wzine.kr

역대 수상작들을 저렇게 포스터 형태로 전시해두더라구요.

아직은 2021 하반기 수상작이 업로드되지 않았지만, 빠른 시일내로 업로드 될 것으로 보입니다. 

업로드 되면 다른 팀들의 주제도 간략하게 여기에 적어봐야겠어요!

정말 와.. 아이디어 좋다.. 할만한 주제들이 많았거든요.

다른 팀들의 발표를 들으며 저런 주제도 있구나, 이런 아이디어 좋다, 이걸 이렇게 접근할 수 있구나 등 좋은 정보를 많이 얻어서 더 좋았던 경진대회 였던것같습니다.

 

그럼 이만..,, 다음에 또 다른 프로젝트로 좋은 소식을 들고올게요. (희망사항)

안녕하세요! 지난번 A.I.D.D 데이터톤 최우수상 수상 소식에 이어, 또 다시 기쁜 소식을 들고오게 되었습니다!

바로바로~~ 경희대학교 SW중심대학사업단 에서 진행한 Software Festival 에서 대상우수상을 수상하게 되었다는 소식이에요 ㅎㅎ와아~~🥁🎉

(= 데이터분석부분 1등, 2등 모두 수상! + 데이터부문에서 1등한 작품이 모든 부문에서 1등!!)

소프트웨어 페스티벌은 지난 2021년(1년) 동안 경희대학교 학생들이 개인적으로/팀프로젝트로/내-외부공모전으로/수업중에 등등 상관없이, 완성된 모든 SoftWare를 모아서, 오프라인 혹은 온라인으로 전시 및 시상하는 경희대학교의 큰 행사입니다!

다양한 분야의 SW를 모두 받으니, 해당 분야에 관심이 있거나, 진로로 희망하는 학생이라면 주목할 행사라고 할 수 있죠.

 

경희대학교 국제캠퍼스의 모든 학과 학우분들, 서울캠퍼스의 컴공/소융 복전하시는 학우분들 모두가 참여 가능합니다

위의 포스터에서도 볼 수 있듯이, 총 4가지 분야로 SW를 나누어 전시 및 시상을 하였습니다.

- 피지컬컴퓨팅

- 게임 및 AR/VR

- 데이터 분석

- 기타 소프트웨어

 

전시작을 간단히 보여드리면,

1) 데이터 분석 부문

 

2) 피지컬 컴퓨팅 부문

 

3) 게임 및 AR/VR 부문

4) 기타SW 부문

 

굉장히 다양한 분야, 다양한 주제의 프로젝트가 출품된것을 볼 수 있네요

저도 다른분들의 SW를 구경해봤는데, '와 신기하다, 아이디어 좋다' 라는 생각이 들더라구요.

 

시상은 모든 출품작 중 대상 1개, 그리고 각 부문에서 최우수상, 우수상, 주니어상을 시상합니다. +인기상

(대상이 있는 부문에서는 최우수상이 없어요! 최우수상이 업그레이드되어 대상이 되는 느낌)

'주니어상'은 미수상작 중 1, 2학년이 진행한 프로젝트를 선정하고,

'인기상'은 학생들이 클릭한 좋아요 갯수가 많은 작품 2개를 선정하는 방식입니다.

 

저는 이번에 2021년동안 진행한 팀프로젝트 1개, 개인프로젝트 1개의 총 2개를 데이터분석부문에 출품했고,

팀프로젝트로 제출한게 대상(+500만원), 개인프로젝트로 제출한게 우수상(+50만원)을 수상했습니다.!!

데이터분석부문에서는 나란히 1등, 2등 한 것인데 상금의 차이가....!!! 

 

아무튼!!

2021년 마무리를 뿌듯하게 할 수 있게되어 기쁘네요

내년에는 드디어 4학년이 되는데, 2022년에도 열심히! 할 수 있도록 하겠습니다 :>

감사합니다

과제 개요

 인간의 내면을 음악으로 듣기 위한 시도는 오래전부터 이루어져 왔다. 1930년대 초기에는 뇌파 알파파의 진폭이나 뇌파 신호의 단순하고 직접적인 특징을 통해 ‘소리’를 만들어 왔고, 1990년대에 이 르러서는 디지털 필터링 및 뇌파 데이터의 분석을 통해 다양하고 새로운 ‘음악’ 생성 규칙을 만들어 왔다.

 본 연구에서는 기존의 ‘뇌파를 통해 음악을 생성한다’는 목적에서 더 나아가, 뇌파를 통해 사용자 친화적인 음악을 생성하는 것, 즉 ‘사용자의 감정을 잘 표현해주는 음악’을 만드는 것을 목표로 한다.  사용자는 이로써 나를 잘 표현해주는, 진정한 ‘나만의 음악’을 갖게 될 수 있다. 또, 긍정적인 감정을 보여주는 뇌파를 알고리즘에 넣어 만들어진 음악과, 부정적인 감정을 보여주는 뇌파를 이용해 만들어 진 음악의 비교를 통해 우리는 인간의 내면을 한층 더 알아볼 수 있을 것이다.

개발 목표

  1. EEG 데이터를 통해 감정에 맞는 음악을 작곡하는 알고리즘 모델 개발
  2. 1에서 구현된 알고리즘을 통해 사용자가 원하는 악기를 사용하여 음악 작곡

 

개발 과정

0. 뇌파란? 

  • 뇌의 전기적인 활동을 머리 표면에 부착한 전극에서 측정한 전기 신호
  • 주파수 범위에 따라서 델타(0.2Hz ~ 4Hz), 세타(4Hz ~ 8Hz), 알파(8Hz ~ 13Hz), 베타(13Hz ~ 30Hz), 감마(30Hz ~ 45Hz)파로 구분

EEG Data Sample

 

1. EEG DEAP Dataset

  • 32명의 참가자 → 총 40개의 1분 길이의 영상을 3초 정도의 준비시간을 가지고 시청
  • Sampling rate를 128Hz로 하여 32개 Channel에서 나오는 뇌파 측정

32 Channel

  • 영상 시청 후, 자신이 느낀 감정에 대해 각각의 Label 별로 수치를 결정
  • Label: 1~9 사이의 실수값으로 정해짐
    • Arousal: 감정의 격함의 정도 → 높을 수록 감정이 격해짐
    • Valence: 감정의 긍/부정 정도 → 높을 수록 감정의 긍정의 정도가 커짐

 

Arousal and Valence Label

 

 

2. Preprocessing (전처리)

  • 첫 3초는 감정 분석에 중요하지 않을 것이라 판단하여 제거
  • 비교적 감정이 뚜렷한 데이터만을 사용하여 정확도를 높이고자 3과 7을 기준으로 Arousal Low /High, Valence Low/High의 네가지 카테고리로 Grouping.

4가지 Category로 Grouping

  • 기존 선행 연구 결과를 참고해 감정 분석에 주로 사용되는 12개의 채널 선정. 
    • 긍정적인 감정은 주로 좌측 전두엽, 부정적인 감정은 주로 우측 전두엽과 연관되어 있다는 연구 결과에 따라 pair로 선택
    • F3-F4 / F7-F8 / FC1-FC2 / FC5-FC6 / FP1-FP2 / AF3-AF4

 

3. Feature Extraction 

뇌파 데이터를 각각 Time doamin, Frequency domain, Time-Frequency domain의 영역에서 14개의 Feature 추출.

  1. Time domain
    • Statistical feature: Mean, Standard deviation, Kurtosis, Skewness
    • Hjorth parameters (Mobility, Complexity)
    • Fractal Dimension (Higuchi, Petrosian)
    • Detrended Fluctuation Analysis
    • Hurst Exponent
  2. Frequency domain
    • Power Spectral Density
    • Maximum Power Spectral Frequency
    • Root Mean Square
  3. Time-Frequency Domain
    • STFT (Short-Time Fourier Transform)

Time domain과 Frequency domain에서 추출한 총 13개의 Feature는 모델 학습 시에 사용하였고, 
Time-Frequency domain 영역에서의 Feature는 음악 작곡 알고리즘의 주요 데이터로 사용.

데이터 전처리 및 Feature Extraction 과정

 

 

4. Modeling 

앞서 추출한 Time domain과 Frequency domain의 Feature를 이용해, Arousal/Valence 마다 High/Low를 분류하는 이진 분류 모델 생성

  • 전체 데이터를 shuffling 한 뒤 train과 test를 8:2로 분리
  • Data가 biased되어 있어 oversampling을 통해 train data의 레이블 값(High: 1, Low: 0)의 비율을 맞춰줌

모델링 과정

 

  • 13개의 기계학습 모델에 대해 Train data를 이용하여 10-fold 교차 검증 시행해 정확도 비교
  • 가장 높은 성능을 보인 3개의 모델(ExtraTreeClassifier, RandomForestClassifier, LGBMClassifier)을 ensemble
  • 최종 결과 Test data에 대해 각 모델 모두 80%의 정확도를 보임.

 

5. Music Composition Algorithm

1. 훈련된 모델을 통해 예측한 Valence를 통해 Major/Minor 결정

  • 12개의 Channel에서 예측된 Label 중 많이 선택된 Label을 선택
    • High: Positive → Major
    • Low: Negative → Minor

Major/Minor 결정

 

2. 훈련된 모델을 통해 예측한 Arousal를 통해 Tempo 결정.

  • 12개의 Channel에서 예측된 Label의 비율을 통해 Tempo 결정
    • High: Excited → Fast Tempo
    • Low: Relax → Slow Tempo

Temop 결정

 

3.  frequency domain의 Maximum Power Spectral Frequency (MPSF)로 Key Chord 결정

  • 감정을 더 잘 나타낼 수 있도록 beta-gamma 대역대에서 MPSF 추출
  • 기본 오른손 주파수 대역대로 Scaling
  • 가장 가까운 Chord를 통해 Key chord와 scale 결정

Valence model로 예측한 결과가 High, MPSF Scaling 결과 C chord에 가장 가깝다면, "C Major Scale"을 이용해 작곡

 

4. Time-frequency domain의 STFT로 Melody 결정

  • 1초 단위로 분할
  • 각 구간 별 최댓값을 가지는 주파수를 3번의 방법으로 Scaling하여 Key Chord의 Scale에 가장 가까운 음을 결정
  • Melody 간격이 너무 넓은 경우, 기존의 박자보다 더 작은 박자로 Interpolation하여 자연스러운 Melody 구성
  • 좀 더 풍부한 음악을 위해, 왼손은 오른손에서 Octave를 2단계 내린 1도 화음을 치게 해 반주 구성

 

GUI (Graphic User Interface)

  1. 박스 안에 EEG Signal Drag and drop
  2. "1. Extract Feature" 버튼을 눌러 12개의 Channel에 대해 총 14개의 Feature를 추출
  3. "2. Emotion Analysis" 버튼을 눌러 Arousal과 Valence 예측
  4. 사용자가 원하는 악기를 선택하고, "3. Convert Signal to Music"버튼을 눌러 2와 3에서 추출한 feature와 예측된 결과를 이용해 음악 작곡
  5. 작곡된 음악은 어플리케이션이 저장된 경로의 music 폴더에 저장됨
  6. "4. Reset" 버튼을 눌러 초기화 한 뒤, 다른 EEG Signal에 대해 1~5번 순서를 반복하여 또 다른 음악을 작곡할 수 있음.

 

기대 효과 및 활용 방안

뇌파 데이터를 통해 ‘나만의 음악’을 만드는 접근 방식은 마음의 세계를 음악으로 표현하려는 시도이다. 본 연구는 특히 사용자의 ‘감정 상태와 유사한’ 음악을 만드는 것이 목적이기에 기존의 연구보다도 내면을 음악으로 표현하는데 더 큰 의의를 가질 것으로 보인다. 사용자는 자신의 내면과 감정이 담긴 음악을 통해 자신의 상태를 피드백 할 수 있게 되며, 나아가 본인이 선호하는 악기 뿐만 아니라 음악의 장르를 선택하여 내면의 감정을 해당 장르의 음악으로 표현함으로써 사용자 내면의 익숙하지 않은 감정에 더 쉽게 다가갈 수 있다.  

 

발표 및 데모 프로그램 시연

 

 

안녕하세요! 시험기간이기도 하고, 이래저래 진행되는 프로젝트나 일정이 많아 오랜만에 인사드리게 되었네요.
오늘의 소식은 전국구 데이터톤! Artificial Intelligence Diabetes Datathon, AIDD -인공지능 당뇨병예측 모델개발에 참여하여 최종2위의 성적으로 최우수상을 수상하게 되었다는 것입니다! 짝짝짝🎉

아싸300만원


AIDD는 과학기술정보통신부, 한국지능정보사회진흥원이 주최하고 경희의료원이 주관한 인공지능 데이터톤입니다!
(제가 경희대 재학중인데 우연히 겹쳤네요..ㅋㅋ)

주제는 당뇨병 및 합병증 추적 관찰 데이터를 활용한 당뇨병 발병 예측 인공지능 모델 개발로,
인공지능 학습용 데이터 구축 사업 중 ‘당뇨병 및 합병증 추적관찰 임상데이터’ 과제의 일환으로 진행되었다고 해요.

제가 이 블로그에 예에에에전에 업로드 한 글 중 '의사결정나무를 이용한 당뇨병 진단 모델개발'프로젝트가 있었는데,
그때 '교수님께서 모델로는 의사결정나무 단일모델을 사용해야하며 엑셀로 직접 Entropy 등을 계산해 풀어야한다'고 제한을 두셔서 정확도가 높은 모델을 개발하지 못해 아쉬움이 남는다고, 후에 좀 더 자유로은 환경에서 정확도 높은 모델을 개발해보겠다고 말을 꺼냈었는데, 그 다짐을 이렇게 지키게 되네요.

AIDD 데이터톤의 참가대상은 국내 AI, 빅데이터 관련 기업 및 연구기관 종사자, 대학/대학원생이 1~5명 단위의 팀을 구성해 누구나 참여할 수 있었고,
저희는 같은 랩실의 학부연구생 및 석사연구원이 팀을 이뤄 참여하였습니다. (AIMS)
누구나 참여할 수 있다보니 참가자분들도 다양하더라구요. 카이스트, 포항공대 재학생을 포함해 서연고서성한 등의 학생들, 석사생들, 교수님들, 인공지능 관련 책을 쓰신분들까지...

듣기로는 총 참가신청한 팀은 132 팀이었고,

그 중에서 서류 전형으로 예선에 참가할 40팀을 선정하고, 예선에서 본선에 참가할 20팀을 선정하고,

본선에서는 상위 4위까지를 선정하는 방식이었는데요!

이때 NSML 리더보드를 통해 모든 팀의 실시간 score와 순위를 확인할 수 있어서 더 승부욕이 돋고 재미가 있던 것 같습니다. (NSML 리더보드 사용법은 추가적인 글로 간단히 게시해둘 예정입니다)

예선이 딱 3일, 본선도 딱 3일이고, 1시간 당 최대 1번씩 Submit해야한다는 제한이 걸려있어서 적은시간, 적은기회 안에 타임어택으로 높은 점수를 노려봐야했었는데,
그러다보니 다들 합숙을 하시는건지.... 정말 꾸준히 submit 을 하시더라구요...
대회 진행 기간인 총 72시간, 그러니까 즉 72번의 submit 기회중에서 69번을 submit 한 팀도 있었습니다. (-> 이분들이 1등)
물론 저희 팀도 분석하느라/논의하느라 자주 밤을 샜습니다...^^,,,,, (기진맥진)
그런데......... AIDD 에서 분석시 사용되는 데이터가 의료 데이터다보니, 개인정보가 중요하다며 주최측에서 데이터셋을 주지 않아서,
참가자들은 데이터셋의 Feature 종류만 알고 데이터의 분포 등을 확인하지 못한채로 오직 서버에서 데이터를 사용하여 훈련시켜야하고,
테스트셋에는 아예 접근 자체(보는 등)를 할 수 없어서 로컬PC에서는 모델의 score값을 볼 수 없는 구조였습니다.
(score=AUC값)
즉, 우리 팀의 score를 확인할 수 있는 유일한 기회는 1시간에 1번있는 submit 을 통해서 였던거죠...
그나마 Validation set을 이용해서는 score를 확인할 수 있었으나, Test set 과는 또 차이가 있으니.. 사실상 스스로 모델을 평가할 수 있는 지표가 거의 없었다고 볼 수 있습니다.
1시간에 1번씩 성능을 확인할 수 있다면 모델이 개선되는 속도가 느릴 수 밖에요.. 이 점이 진짜 진짜 불편했습니다. -_-

왜 이렇게 한거에요.....!!!! 분석할 데이터셋에 대해 아무것도 알 수 없으면 그게 분석일까요? 최적 모델/파라미터 찾는 노가다지....!!!! ㅠㅠ

교수님께서도 데이터분석 공모전을 진행하는데 데이터셋을 안주는건 아닌것같다고 하셨습니다.


이게 본선 리더보드인데요~ 2 위에 랭킹되어있는 AIMS 가 저희 팀입니다!
수상팀의 최종 Score는 1등팀 0.903932, 2등팀(우리) 0.887426, 3등팀 0.866463, 4등팀 0.859686 으로 마무리가 되었습니다.
모델 평가시 사용된 'Score'는 ROC-Curve 하단 영역의 넓이, 즉 AUC 값 이었습니다.
그런데 저는 이해가 안됐던게, ROC-curve를 그릴때 당연히 True Label과 Predict 'Probability' 를 input 하여 구해야하는데, 이 데이터톤에서는 Predict Probability가 아니라 Predict Label을 넣어 구한다는 것입니다.
그러면 ROC-curve 그래프에는 대각선의 끝과 끝을 잇는 점과, 그 중간의 하나의 점만(Threshold=1개) 찍히게 되고 결과적으로 삼각형의 형태를 가지게 되죠.
ROC-curve는 보통 그렇게 안그릴텐데 왜 이렇게한건지 잘 모르겠습니다.
모델 개발을 하다 느낀것은.... score = 0.90 과 0.88 사이에는 엄청난 벽이 있고, 0.88 과 0.86 사이에는 엄청난 벽이 있다는 것입니다.. 물론 0.86 언저리까지 오는데도 벽은 있지만요..

아무튼! 이번 데이터톤이 제 인생에서 처음으로 참가한 인공지능 개발 챌린지였는데, 좋은 성과를 얻어 기쁩니다 :>
대회가 진행되던 6일동안 랩실 선배님들과 함께 이런저런 논의를 하며 공부한것도, 학습에 큰 도움이 되었습니다.
선배님들이 진짜 캐리하셨어요.. 다들 고생하셨어요 TT

곧이어 부정맥 진단 모델 개발 인공지능 데이터톤도 참가할 예정인데, 이건 주최측의 사정으로 일정이 미뤄지는바람에 시험기간과 겹쳐서........ 할지 말지 살짝 고민중입니다. -> 미참가로 결정
저는 밀린 과제/수업/일정 등등이 많아서.. 나중에 글을 또 쓰도록 하고 이만 줄이겠습니다.
안뇽



+12.08 추가)
내일(12.09) 시상식 및 모델 발표가 오프라인/온라인으로 있습니다!

코로나때문에 발표자 1명만 오프라인으로 참석할 수 있고, 남은 팀원은 온라인으로 참석해야한다고 하더라구요. (아쉽)

시상식 후기는 내일 이 글에 추가적으로 남기기로 하고,

저희가 구현한 모델을 설명하는 글을 따로 올릴까는 생각중에 있습니다.

아마 시험이 끝나고 업로드하게되지않을까싶네요! 


+12.09 추가)
시상식이 끝난후, 짧은 후기!!

시상식은 말씀드린대로 온/오프라인 혼합 형태로 이루어졌고, 랩장님이자 팀장님께서 오프라인으로 발표를 하러 가셨습니다!

저는 온라인으로 시상식을 봤는데, 1등팀하고 4등팀이 포항공대 학생들, 3등팀이 모 대학의 교수님들이셨습니다! ㄷ.ㄷ,,

시상과 함께 각 팀의 모델 설명(발표)을 들을 수 있어서 유익한 시간이었던것같습니다. (대체 1등팀 무슨짓을한것인가 했는데!)

괜히 저희 팀 이름 한명한명 불리면서 상을 주시니 감격스럽더라구요.

다음에도 또 랩실 인원들과 함께 좋은 대회에 참여할 수 있었으면 좋겠습니다 :>

 

 

 

 

 

 

~ 발표후기 ~

바빴던 2021년! 2021년의 절반의 시간을 들여 진행한 댓글분석 웹페이지 제작 프로젝트가 상위 8팀 안에 들어 은상을 수상하게 되었습니다! (짝짝짝) -> 300만원... 흐흐

저번주 주말에 저와 또 다른 팀원 둘이서, 팀을 대표하여 서울의 코엑스로 발표를 하러 갔었는데요.

발표 + 완성된 작품시연을 해야해서 혹시나 시연중에 오류가 뜨면 어떡하지 긴장이 되었었는데, 무사히 잘 넘어갔습니다. 질문도 어느정도 예상하던 질문이 나와 잘 대처할 수 있었어요.

사실 발표 아침까지도 웹페이지에 넣을 추가적인 코딩을 하느라 바빴었습니다. 뉴스 분석 페이지에 들어간 감성분석 모듈이, 기존에는 감성사전을 이용해 하는것으로 만들었다가 논의끝에 딥러닝 모델을 이용해 감성분석을 하는것으로 발표 1주전에 결정났거든요.. 쇼핑몰 페이지나 뉴스페이지의 감성분석 파트는 제가 전담했었기때문에, 후반부부터 딥러닝 모델로 변경하느라 혼자 마음이 급했던 기억이 납니다.

다행히 발표 전날까지는 완성을 했지만... 완성된 감성분석 모듈을 페이지에 넣고 보니, 사용자가 입력한 URL을 댓글을 긁어오고 댓글을 하나하나 분석해 Label을 붙이는데 생각보다 시간이 너무 오래걸려서 웹페이지에 못넣겠다는 판단이 되어서, 댓글 하나하나가 아니라 한꺼번에 예측할 수 있도록 하고, 더 모델 복잡도가 작으면서 정확도는 유지할 수 있도록 하는걸 발표날 아침까지 수정하고 또 수정했었습니다. 무사히 작동해서 다행이에요.

 

다음에는 12.3일에 일산 킨텍스로 시상 및 전시를 하러 갑니다. 전시를 대비하여 저희 웹사이트도 로딩페이지 추가, UI의 대대적인개편 등의 버전 업그레이드를 하였습니다. 다음에는 전시 및 시상식 후기를 남기도록 할게요.

 


 

~시상식 후기~

ICT 멘토링엑스포! 엑스포 겸 시상식이 일산 킨텍스에서 열렸습니다!

 

이런식으로 포스터? 를 걸어두고 이 앞에서 작품 전시를 했습니다. ㅎㅎ

저희는 40인치 모니터를 빌려서, 웹페이지 전시를 했어요

 

약 반년동안의 프로젝트가 정말 끝났습니다.

댓글분석 웹페이지 프로젝트는 끝났지만 앞으로도 열심히 살아보도록 하겠습니다 .!!!

 


 

아래는 블로그에 조금씩 올렸던 프로젝트 자료 모음..

빅데이터를 이용한 댓글 분석 및 시각화, 댓글대시 서비스(0. 글을 올리기 전에)

 

빅데이터를 이용한 댓글 분석 및 시각화, 댓글대시 서비스(0. 글을 올리기 전에)

 안녕하세요! 저번에 대외활동으로 주식 가격 예측 프로그램을 만드는 팀 프로젝트를 하고 있다고 글을 올렸었는데, 이번에도 그 대외활동에서 동시에 하고있는 팀 프로젝트에 관련해 글을 올

checherry.tistory.com

 

빅데이터를 이용한 댓글 분석 및 시각화, 댓글대시 서비스(1. 개발설계).

*** 업로드된것은 초창기의 개발설계서입니다. 시험이 끝난 후 최종 개발설계서로 글을 수정할 예정입니다.

 

빅데이터를 이용한 댓글 분석 및 시각화, 댓글대시 서비스(1. 개발설계)

 

checherry.tistory.com

빅데이터를 이용한 댓글 분석 및 시각화, 댓글대시 서비스(2. 수행계획+1차보고서)

 

 

빅데이터를 이용한 댓글 분석 및 시각화, 댓글대시 서비스(2. 수행계획+1차보고서)

요 약 본 작품 정보 프로젝트명 국문 빅데이터 댓글 분석 및 시각화(키바나), 댓글대시 서비스 영문 Big-data Analysis of Comments and Visualization 작품 소개 네이버 뉴스, 영화, 쇼핑몰의 URL을 받아 댓글

checherry.tistory.com

 

빅데이터를 이용한 댓글 분석 및 시각화, 댓글대시 서비스(3. 최종보고 및 시연영상)

 

빅데이터를 이용한 댓글 분석 및 시각화, 댓글대시 서비스(3. 최종보고 및 시연영상)

들어가는 말.. 최근 인터넷이 발달하고 사용자가 급증함에 따라, 인터넷을 통한 정보 교환이 활발하게 이루어지고 있습니다. 네이버 뉴스의 댓글을 읽으며 여론을 파악하신 적이 있으신가요? 네

checherry.tistory.com

 

과 제 명 뇌파 기반 사용자 친화 음악 작곡 알고리즘 구현
(User-friendly music composition based on EEG)
1. 과제 개요

. 과제 선정 배경 및 필요성
인간의 내면을 음악으로 듣기 위한 시도는 오래전부터 이루어져 왔다. 1930년대 초기에는 뇌파 알파파의 진폭이나 뇌파 신호의 단순하고 직접적인 특징을 통해 소리를 만들어 왔고, 1990년대에 이 르러서는 디지털 필터링 및 뇌파 데이터의 분석을 통해 다양하고 새로운 음악생성 규칙을 만들어 왔다.
본 연구에서는 기존의 뇌파를 통해 음악을 생성한다는 목적에서 더 나아가, 뇌파를 통해 사용자 친화적인 음악을 생성하는 것, 사용자의 감정을 잘 표현해주는 음악을 만드는 것을 목표로 한다. 사용자는 이로써 나를 잘 표현해주는, 진정한 나만의 음악을 갖게 될 수 있다. , 긍정적인 감정을 보여주는 뇌파를 알고리즘에 넣어 만들어진 음악과, 부정적인 감정을 보여주는 뇌파를 이용해 만들어 진 음악의 비교를 통해 우리는 인간의 내면을 한층 더 알아볼 수 있을 것이다.

. 과제 주요 내용
1) EEG Dataset( DEAP, AMIGOS, SEED )을 수집한다.
2) EEG Data의 각 신호의 특징을 분석 및 추출한다.
3) 파악한 특징에 맞춰, 각 신호와 음의 높낮이, 단조, 템포 등을 매핑하여 음악을 작곡한다.
4) 작곡된 음악을 여러 장르로 변환하여 사용자에게 제공한다. (, 재즈, 클래식 등)

2. 과제의 목표

. 최종결과물의 목표
1) EEG 데이터를 통해 감정에 맞는 음악을 작곡하는 알고리즘 모델 개발
2) 1)을 통해 작곡한 음악과, 실험자들의 감정이 가지는 상관관계 평가
   3) 1)의 음악을 사용자가 원하는 장르(클래식, 재즈, 팝 등)로 변환하는 모델


. 최종결과물의 세부 내용 및 구성
1) 뇌파 데이터를 통해 사용자의 감정이 잘 드러나는 음악을 작곡하는 알고리즘

2) 실험자(기존 EEG 데이터 사용)의 뇌파를 통해 작곡된 음악
3) 작곡된 음악과 실제 감정과의 상관관계 분석
4) 긍정적인 감정의 뇌파 데이터를 이용해 만든 음악과, 부정적인 감정에서 만든 음악의 비교
5) 원하는 장르로 변경한 2)의 음악

3. 기대효과 및 활용방안
뇌파 데이터를 통해 나만의 음악을 만드는 접근 방식은 마음의 세계를 음악으로 표현하려는 시도이다. 본 연구는 특히 사용자의 감정 상태와 유사한음악을 만드는 것이 목적이기에 기존의 연구보다도 내면을 음악으로 표현하는데 더 큰 의의를 가질 것으로 보인다. 사용자는 자신의 내면과 감정이 담긴 음악을 통해 자신의 상태를 피드백 할 수 있게 되며, 나아가 본인이 선호하는 음악의 장르를 선택하여 내면의 감정을 해당 장르의 음악으로 표현함으로써 사용자 내면의 익숙하지 않은 감정에 더 쉽게 다가갈 수 있다.

4. 수행 방법
. 과제수행을 위한 도구적 방법 
1) EEG Data Processing

TEAP 등을 이용해 EEG Data를 전처리하고, 감정별 신호의 특징을 파악한다.
2) 인공지능 기반 음악 작곡

1) 의 결과를 바탕으로, 각 신호에 대해 음악의 구성 요소들을 매핑하는 알고리즘 모델을 구현한 다.(속도, 멜로디, 음량 등) EEG 데이터가 입력됨에 따라 각 신호 및 채널을 구분하고, 구현된 음악 매핑 알고리즘에 넣어 음악의 멜로디, 음량, 템포 등을 시시각각 결정하며 하나의 악보를 완성한 다. 이후, 악보를 음악으로 구현해주는 툴을 사용하여 음악으로 변환한다.
3) 작곡된 음악의 장르 변환
JukeBoxCycleGAN-Music-Style-Transfer 등의 음악 장르 변환 알고리즘을 활용하여 작곡된 음악
을 클래식, 재즈, 팝 등의 장르로 변환한다.


. 과제수행 계획
1) EEG Data Analysis

) EEG Data Set(DEAP, AMIGOSM, SEED )을 수집
) EEG Data 전처리를 통해서 감정에 따라 변화하는 유의미한 특징을 추출한다.
2) 뇌파를 통한 작곡
) EEG 데이터의 각 채널이 음악의 어떤 요소를 결정지을 수 있을지 매핑하는 알고리즘을 구현 한다.
) 해당 알고리즘에 EEG 데이터를 입력해 악보를 완성하고, 곡을 음악으로 변환시킨다.
3) 2)에서 작곡한 음악을 음악 장르 변환 알고리즘을 사용하여 다양한 장르의 음악을 작곡한다.

5. 추진일정
순번 추진내용 9 10 11 12 비고
1 Data Set 수집 O        
2 EEG, 인공지능 작곡 알고리즘 관련 논문 리뷰 O        
3 EEG Data
특징 추출
  O O    
4 EEG Data의 채널과 음악의 구성 요소 분석 O O O    
5 분석 결과를 이용해
작곡 알고리즘 구현
    O O  
6 장르 변환 툴을 이용해
다양한 장르의 음악 작곡
    O O  
7 작곡된 음악과 감정의 상관관계 평가 및 긍/부정 감정의 음악 양상 비교     O O  
8 보고서 작성       O  

 

2021. 10월 초부터 시작하여, 현재 진행중인 프로젝트입니다!

2021. 12월 말까지 끝낼 예정입니다 :>

그동안 간간히 블로그에 소식을 올리던 프로젝트인 [ 빅데이터를 이용한 댓글 분석 및 시각화 ] 웹페이지 구현 프로젝트가 공모전 1차, 2차 평가에 합격해서, 최종 본선까지 진출하게됐다! (꺄아아)

보통 멘토님 지도가 프로젝트에 엄청 영향을 끼친다는데,

우리는 그런거없이 전반적/세부적인 모든 구성들을 팀원끼리 매주 논의해가며 진행한거라 더 보람차게 느껴진다. 

(사실 팀원 넷 중에 나랑 다른 팀원 둘이서만 열심히 했지만... -_-)

한이음 ICT 공모전은 한국 과학기술정보통신부 주최, 정보통신기획평가원 & 한국정보산업연합회 가 주관하는 규모가 큰 공모전이다. 

공모전에는 약 400팀이 참가 신청을 했고(궁금해서 전화로 물어봤다),

1차 평가때 200팀을 뽑고, 2차 평가때 140팀을 뽑고, 그 중에서 본선 진출팀을 33팀 뽑는다.

내 프로젝트는 3차 평가 대상작(최종33팀) 에 선정되어 상을 노리고 본선에 진출할 수 있게 되었다! 

 

 

시상 규모는 아래 그림과 같다. 일단 내 프로젝트는 장려상까지는 확정이 되었고, 3차 평가를 통해 대상/금상/은상/동상/장려상 중에서 수상을 하게 된다.

아 진짜 나랑 다른 팀원 한명이랑 둘이서 정말 으쌰으쌰 열심히했는데.. 은상은 탔으면 좋겠다.!! 

프로젝트하면서 내가 제일 의견을 많이 냈고 반영된거도 다 내 의견이어서.. 더더 잘되었으면 좋겠구나..

지금도 코드 개선하고 발표자료를 만들고있는데 진짜 시간이 갈린다. 내 소중한 시간... 다른거 할것도 많은데..

왜 내가 다 맡아서 하게되는거같지... ㅎr.. 나도 시간 없는데............................ 아쉬운사람이 해야지 뭐..

 

 

본선에 진출한 팀은 11월 7~8일 경 '코엑스 3F E홀'에서 오프라인 전시 및 발표를 해야한다고 한다.

우리 팀은 11.7일 발표고, 팀 당 참석가능 인원은 2명이다. 나랑 다른 팀원이랑 둘이 갈 것 같다. 

 

 

일전에 교수님께서, 학부생이 논문을 써서 학회에 가면 대체로 포스트잇 발표를 하게된다고 하셔서 나중에 꼭 한번 해보고싶었는데, 이번 공모전 오프라인 발표에서 비슷하게라도..? 할 수 있을 것 같아 기분이 좋다. 

시험기간이라 정신없었는데 좋은 소식 받게되어서 기뻤고, 발표때도 사실 시험이 완전히 끝난 시기가 아니라 바쁘긴 하겠지만 그래도 잘 준비해서 갔다와야겠다.

 

 

 

 


아래는 블로그에 조금씩 올렸던 프로젝트 자료 모음.. 

빅데이터를 이용한 댓글 분석 및 시각화, 댓글대시 서비스(0. 글을 올리기 전에)

 

빅데이터를 이용한 댓글 분석 및 시각화, 댓글대시 서비스(0. 글을 올리기 전에)

 안녕하세요! 저번에 대외활동으로 주식 가격 예측 프로그램을 만드는 팀 프로젝트를 하고 있다고 글을 올렸었는데, 이번에도 그 대외활동에서 동시에 하고있는 팀 프로젝트에 관련해 글을 올

checherry.tistory.com

 

빅데이터를 이용한 댓글 분석 및 시각화, 댓글대시 서비스(1. 개발설계).

*** 업로드된것은 초창기의 개발설계서입니다. 시험이 끝난 후 최종 개발설계서로 글을 수정할 예정입니다.

 

빅데이터를 이용한 댓글 분석 및 시각화, 댓글대시 서비스(1. 개발설계)

 

checherry.tistory.com

빅데이터를 이용한 댓글 분석 및 시각화, 댓글대시 서비스(2. 수행계획+1차보고서)

 

 

빅데이터를 이용한 댓글 분석 및 시각화, 댓글대시 서비스(2. 수행계획+1차보고서)

요 약 본 작품 정보 프로젝트명 국문 빅데이터 댓글 분석 및 시각화(키바나), 댓글대시 서비스 영문 Big-data Analysis of Comments and Visualization 작품 소개 네이버 뉴스, 영화, 쇼핑몰의 URL을 받아 댓글

checherry.tistory.com

 

빅데이터를 이용한 댓글 분석 및 시각화, 댓글대시 서비스(3. 웹사이트 시연영상)

 

 

빅데이터를 이용한 댓글 분석 및 시각화, 댓글대시 서비스(3. 웹사이트 시연영상)

본 프로젝트를 통해 만들어진 댓글분석 및 시각화 웹사이트 시연영상입니다. 네이버 뉴스, 네이버 쇼핑, 네이버 영화의 url에 대해 댓글 분석을 할 수 있습니다. 최대한 간소화해서 영상을 제작

checherry.tistory.com

 

 

들어가는 말..

최근 인터넷이 발달하고 사용자가 급증함에 따라, 인터넷을 통한 정보 교환이 활발하게 이루어지고 있습니다. 네이버 뉴스의 댓글을 읽으며 여론을 파악하신 적이 있으신가요? 네이버 쇼핑에서 원하는 상품을 찾을때 리뷰를 확인해보신적이 있으신가요? 네이버 영화의 리뷰를 확인하며 어떤 영화를 볼지 의사결정을 한 적이 있으신가요? 이미 댓글을 읽고 정보를 파악하는 행위는 우리의 일상이 된 것 같습니다.

이처럼 댓글을 통한 정보 공유 및 파악은 일상적인 삶의 행위가 되었으나, 최근의 댓글 양상을 보면 댓글이 몇 백개, 몇 천개가 넘는 글이 다수룩하고, 댓글 중에는 중요한 정보가 아닌 스팸 혹은 여론조작성 정보 등이 포함되어 있기도 합니다. 많은 양의 댓글 중 사용자가 자체적으로 선별하여 필요한 정보를 파악하는 것이 쉽지 않은 것이지요.

저는 이러한 상황에 도움이 되고자 본 프로젝트를 진행하게되었습니다.

 

웹페이지소개

- 네이버 뉴스, 쇼핑몰, 영화의 url을 입력받아 해당 기사의 댓글, 쇼핑몰 후기,   영화 리뷰 정보를 다양한 기법을 토대로 분석하고 결과를 시각화하여 보여주는  웹페이지

 -  뉴스 댓글, 영화와 쇼핑몰의 리뷰를 여러 시각으로 한 눈에 볼 수 있도록 함.

 

  • 각 분석페이지의 일부분 캡쳐화면 첨부

 

 

 

기획 의도

 - 인터넷상에서 많은 정보를 주고받는 현대사회에서 특히 ‘댓글’로 의견을   표출하거나 정보를 얻는 경우가 다분함. 하지만 그 양이 방대하여 모든 댓글을  읽고 적절한 정보를 취하기 쉽지 않음

 - 본 프로젝트에서는 그러한 댓글 정보를 모아 분석 후, 시각화해 출력해줌으로써  편향되지 않은 적절한 정보 수용에 도움을 줄 수 있음

 - 더불어 뉴스에 대한 여론, 상품에 대한 장단점 등을 한눈에 볼 수 있도록 함 

 

작품 내용

 - 인터넷 웹 서비스를 기본으로 함

 - 입력받은 url의 기사, 영화, 쇼핑몰에 대하여 해당 댓글, 리뷰 정보를 수집하여   분석 결과를 웹 화면에 출력

 - 악성 댓글 필터링 여부, 영화 스포일러 필터링 여부 설정

 

작품의 개발 배경 및 필요성 

 - 오늘날 대다수의 정보전달 및 소통이 인터넷을 통해 이루어지고 있고, 특히 커  뮤니티나 인터넷 기사 혹은 블로그의 댓글의 형태로 활발한 소통이 이루어진다.  이러한 댓글의 양이 급속도로 증가하면서 소통의 질도 높아졌지만, 악의적 댓글 이나 허위정보 유포, 스팸 댓글이 새로운 사회적 문제로 대두되기 시작하였다.

 - 댓글 혹은 리뷰는 보통 인기 댓글(리뷰), 최신 댓글(리뷰)의 순대로 나열되기 때  문에 많은 수의 댓글 중 사용자가 선별적으로 자신에게 필요한 정보를 가지고   있는 댓글을 찾기 힘들다.

 - 악의적 댓글, 스팸 댓글, 허위사실을 유포하는 댓글은 네티즌이 자체적으로 선별하여 정보를 수용하기 어렵다.

 - 뉴스, 영화, 쇼핑몰의 댓글을 분석하고 분류함으로써 악의적 댓글을 예방하여 건강한 인터넷 문화를 만들 수 있으며 올바른 정보 수용에 도움을 주고자 한다. 

 

 

웹페이지특장점

 1) 다양한 분야에 대해 댓글, 리뷰 분석 기능 제공

 - 본 프로젝트에서는 뉴스, 영화 그리고 쇼핑몰의 댓글 및 리뷰에 대해 분석을   진행한다. 뉴스 분야에서는 사회 현상이나 사건에 대한 여론을 파악할 수   있도록 분석을 진행·제공하며, 쇼핑몰 분야에서는 상품 구매에 있어 합리적인  소비를 할 수 있도록 분석하고, 영화 분야에서는 단순 별점 리뷰에서 벗어나   여러 리뷰들과 그에 따라 취향에 맞는 영화인지를 파악할 수 있도록 정보를   제공한다. 각기 다른 분야에 대해서는 사용자의 니즈(각 리뷰나 댓글에서 얻고  자 하는 정보) 를 파악하여 각기 다른 분석 기법과 시각화 기법을 사용하여 결  과를 출력한다.

 2) 분석 결과 시각화

 - 분석 결과를 텍스트로 단순히 보여주는 것이 아닌 다양한 차트와 그래프를 통해  한눈에 알아볼 수 있도록 시각화하여 결과를 제공한다.

 3) 필터링 여부 설정을 통한 자유로운 정보 접근 기회 

 - 악플에 대한 필터링 여부 혹은 스포일러 포함에 대한 필터링 여부를 사용자의   설정으로 결정할 수 있도록 한다. 따라서 사용자가 수용할 정보의 범위를 자유  롭게 설정할 수 있다.

 

작품구성도 

 

 

 ① 웹 초기 페이지가 실행되면 flask framework를 사용하는 backend에서 자동으  로 네이버 뉴스 전체 기사 중 댓글이 가장 많은 기사 상위 5개를 스크래이핑을  통해 기사 제목과 URL 링크를 가져오도록 request를 보내고, 그 request에 대한  response를 받아 frontend에 출력한다.

 ② 사용자가 분석을 원하는 URL을 입력했을 경우

  ②-1. 입력된 URL이 유효하지 않은 URL이거나 분석기능을 제공하지 않는 사이   트의 URL일 경우, alert 창을 띄워 오류 메시지를 출력해준다.

  ②-2. 입력된 URL이 유효한 url일 경우

  입력된 URL을 mongodb의 url.db에 저장한다. 이때 과거에 저장되어있던   URL 정보는 drop 한다.

 ③ Rest API로 수집 모듈을 실행 시켜 데이터를 수집한다.

 ④ 수집된 데이터에 대한 분석 모듈(기술통계, 추론통계 모듈)을 실행시킨 후 실행  결과를 mongodb에 저장하며 워드클라우드의 경우 시각화 모듈을 실행시켜 데  이터를 임시 저장한다..

 ⑤ frontend에서 mongodb에 저장된 분석 결과 html, CSS, chart.js 등을 이용하여   시각화하며 이때 효율적인 자원관리와 편리하고 빠른 시각화를 위해 frontend는  jquery framework를 기반으로 한다.

 

 전체 기능 목록 

구분 기능 설명 현재진척도(%)
S/W 유효 URL 확인 기능 사용자가 입력한 URL이 유효한 URL인지 체크하는 기능 100%
데이터 수집 기능 유효한 URL인 경우 해당 URL을 분석하여 뉴스, 쇼핑몰, 영화인지 알아보고 각 분류에 따라 필요한 데이터 (댓글, 성별 분포, 나이 분포 등)를 수집하여 데이터베이스에 저장하는 기능 100%
주요 뉴스 랭킹 기능 실시간으로 댓글이 많은 기사 상위 5개를 출력하여 보여주는 기능 100%
데이터 분석 기능 수집된 데이터를 기준으로 논란이 많은 댓글 분석, 댓글 주요 토픽 분석, 댓글 리스트의 감성 분석 등 댓글을 분석하는 기능 100%
분석 결과 시각화 기능 분석된 정보를 서버에 보내고, 웹에서 각각 최적화된 그래프, 차트로 시각화하여 보여주는 기능 100%
악성 댓글 / 스포일러 필터링 기능 악성 댓글 / 스포일러 필터링을 설정 혹은 해제하는 기능 100%
H/W      
     

 

 S/W 주요 기능 

기능 설명
유효 URL 확인 기능 사용자가 입력한 URL이 유효한 URL인지 혹은 분석 서비스를 지원하는 URL인지 체크한다.
데이터 수집 기능 유효한 URL인 경우 해당 URL을 분석하여 뉴스, 쇼핑몰, 영화인지 알아보고 각 분류에 따라 필요한 데이터 (댓글, 성별 분포, 나이 분포 등)를 수집하여 데이터베이스에 저장한다.
주요 뉴스 랭킹 기능 사이트를 새로 들어가거나, 새로 고침을 할 경우 실시간으로 댓글이 많은 기사 상위 5개를 가져와서 출력한다. 각 기사 제목을 클릭 시 해당 기사로 이동한다.
데이터 분석 기능 수집한 데이터를 분석한다.
-뉴스 : 댓글 토픽 모델링을 통한 관련단어 분석, 댓글의 감성 분석을 통한 긍⦁부정 척도, 기술통계 (성별 분포, 나이 분포, 작성 시간분포)
-영화 : 리뷰 토픽 모델링, 기술 통계 (작성 시간 분포, 리뷰 평점, 감상 포인트 등)
-쇼핑몰 : 상품 주제별 리뷰 토픽 분석, 옵션 제품별 평점, 기술통계 (사용자 총 평점, 재구매율, 옵션별 구매 순위, 작성 시간 분포 등)
분석 결과 시각화 기능 분석 결과를 받아 프론트엔드에서 바차트, 파이 차트, 라인 그래프, 워드 클라우드 등의 형식으로 분석 결과를 시각화한다.
악성 댓글 필터링 기능 뉴스의 경우 악성댓글 필터링 여부를, 영화의 경우 스포일러 필터링 여부를 사용자가 설정한다.

 - 분석한 전체 글, 분석한 전체 댓글을 표현해줌으로써 사용자에게 시각적 즐거움  그리고 결과 파악의 편의성을 제공해줄 수 있도록 한다.

 - 실시간으로 화제인 기사들을 출력하고 해당 기사 댓글들을 모아 파악하여 실시  간 주요 토픽을 파악할 수 있도록 돕는다. 이는 사라진 실시간 검색어를 뉴스   댓글의 관점에서 일부 대체하는 기능이 될 수 있을 것으로 보인다.

 

주요 적용 기술 

 1) 웹 동작에 대한 주요 적용 기술

 - Frontend

 - html, CSS, javascript를 이용하여 기본 화면을 구성하였고, 깔끔한 디자인을   위해 bootstrap을 사용하였으며 시각화를 위해 html5의 오픈 소스인 chart.js와   jqbar.css를 사용하여 디자인하였다. 주요 프레임워크는 javascript와 jquery를 사  용한다

- Backend

 - frontend와의 통신을 위해 googleapi인 ajax를 사용하였으며 backend    framework는 flask를 이용하여 get과 post를 컴포넌트화하기 쉽게 하였다.

 

 - Database

 - 수집 데이터의 범위가 분야에 따라 상이하므로 다양한 형태의 데이터베이스   구축을 위해 nonsql 데이터베이스를 사용하였고 주요 툴로 mongodb를 이용하였 다. 또한 R코드와 파이썬 코드 간의 데이터 직접 통신이 어려운 경우 데이터베 이스를 이용하여 상호 데이터 전달이 가능하도록 한다.

 

 2) 데이터 수집에 대한 주요 적용 기술

 - 뉴스

 - 댓글 작성 성별 분포와 나이대 분포는 selenium과 beautifulsoup4를 사용하여   스크래이핑하였다. 

 - 댓글 내용, 작성 시간, 공감수, 비공감수에 대해서는 네이버에서 제공하는 뉴스 api를 사용하여 스크래이핑하였다.

 - 악성댓글 필터링 해제를 설정할 경우 selenium을 사용하여 동적 크롤링을 진행하였으며, 이 경우 댓글 내용 및 다른 요소에 대한 데이터를 모두  selenium으로 수집하였다.

 - 영화

 - 스포일러 필터링을 해제할 경우 selenium을 사용하여 동적 크롤링을     진행하였으며, 필터링 여부와 관계없이 selenium과 beautifulsoup4를 이용하여 데이터를 수집하였다.

 - 쇼핑몰

 - selenium과 beautifulsoup4를 이용하여 데이터를 수집하였다.

 

 3) 데이터 분석에 대한 주요 적용 기술

 - 수집된 텍스트에 대해 텍스트 토큰화와 형태소 분석은 파이썬 모듈인 konlpy를   이용하였으며 이 데이터를 바탕으로 단어빈도 분석, 감성사전 기반 감성분석 등 의 분석 전반은 R을 사용하였다. 또한 python과 R언어를 연동하여 사용하기 위  해 rpy2 모듈을 이용하였다.

 - 토픽모델링 알고리즘 중 하나인 LDA 모델을 이용하여 토픽 모델링을 하였으며   LDA 모델은 DTM (문서 단어 행렬)을 이용하여 만들었다. 사용 LDA 모델은 샘  플링 방식을 gibbs 방식을 차용하였으며 토픽은 5개로 나누었다. 토픽의 개수는  여러 뉴스에 대한 댓글 데이터를 반복 학습시켜 가장 토픽을 잘 나눌 수 있는   적정 개수를 채택하였다.

 - 긍부정 여론을 분석하기 위해 감성 사전을 이용한 감정 분석을 진행하였으며   감정을 긍정, 부정, 중립으로 나눠 감정 점수를 부여하여 긍부정 여부를 판단하  였다. 이와 더불어 LSTM, Convolution을 이용하여 긍부정 단어를 학습시키고 분 석 텍스트를 predict 하여 나온 결과를 가중치로 더하여 결과를 도출하였다.

 

작품 개발 환경

구분 상세내용
S/W
개발환경
OS mac, windows10
개발환경(IDE) pycharm, visual studio code, jupyter notebook
개발도구 python 3.9.6, html5, css, javascript, jquery, flask
개발언어 python, R
기타사항  

 

기타 사항 [본문에서 표현되지 못한 작품의 가치(Value)] 및 제작 노력

 - 본 프로젝트에서는 실제 사용자가 웹서비스를 사용할 때, 어떻게 하면 보다 유  익한 정보를 서비스할 수 있을지에 대한 많이 고민하였다. 이에 초기에 계획하  였던 네이버 뉴스 URL에서 확장해, 네이버 쇼핑/네이버 뉴스/네이버 영화 후기   URL까지 포괄하는 프로그램을 개발하였으며, 각 분류 (뉴스, 쇼핑몰, 영화)에   따라 다른 분석결과를 제공하며 따라서 각각의 분석결과를 보기 쉽게 출력하기  위해 다른 디자인의 ui를 만들었다.

 - 각 URL의 입력 시, 모두 동일한 분석이 진행되는 것이 아니라 각 주제에 적합  한 분석 기법이 적용되도록 하였고, 제공되는 기본 통계 정보 또한 각 페이지에  최적화된 통계를 제공할 수 있도록 세분화하였다. 사용자의 본 프로그램 사용   의도 에 따라 네이버 영화에서는 스포일러 차단 후 분석, 뉴스에서는 악성 댓글  차단 후 분석 기능을 제공함으로써 사용자로 하여금 선택의 폭을 넓혔다.

 - 간단하고 깔끔한 UI와 인터페이스로 누구든 쉽게 사용할 수 있게 만들었으며,   추후 주기적으로 기존 분석 기능의 보완 및 분석 기능의 추가가 이루어질 예정  이다.

 

 

페이지소개-메인페이지

메인페이지에서는 사용자가 분석하고자하는 글의 url을 입력받습니다. 입력된 url의 플랫폼을 확인하여, 각 플랫폼 전용 분석 페이지로 이동합니다.

또한 메인페이지에서는 실시간화제토픽, 핫이슈기사, 제 웹페이지가 지금까지 분석한 전체 글, 전체 댓글의 정보를 제공합니다. 그 외에 오류 신고나 도움말을 볼 수 있으며, 설정창에서 클린봇을 활성화할지 스포일러를 포함할지 등의 여부를 on/off 할 수 있습니다.

 

페이지소개-뉴스페이지[분석]

뉴스 전용 페이지는 성별분포, 나이분포그래프, 평점 기반이 아닌 내용 기반의 모든 댓글의 감정 분석, 긍정과 부정의 각 감정을 나타낼때의 주요한 토픽 추출, 모든 댓글의 주요 토픽 분석,  

논란이 일어나는 댓글, 댓글 작성시간분포 그래프, 워드 클라우드를 보여줍니다.

논란이 일어나는 댓글의 경우 댓글의 공감과 비공감수를 크롤링하여 그 비율을 보는것으로 판단하며, 논란 댓글이라 판단된 것 중 대댓글이 많은 순으로 화면에 출력됩니다.

 

페이지소개-쇼핑페이지[분석]

쇼핑몰 페이지의 경우 총 리뷰 갯수, 사용자 총 평점, 재구매율, 각 토픽별 평점, 각 제품/옵션별 평점 등을 제공합니다. 이때 재구매율은 네이버가 인증한 '재구매' 팻말이 붙은 댓글의 수를 기준으로 합니다.  

각 토픽별 평점이란 상품 구매시 영향을 끼친 주요 '토픽'을 확인하고, 해당 토픽에 대한 평점을 재계산하는것이며, 토픽 분석시에는 각 토픽의 사용자 반응을 형용사형으로 추출해 주요 반응을 보여줍니다.  

예를들어 화장품 제품의 댓글을 분석한 본 예시에서의 토픽은 트러블개선, 만족도, 가격, 분사력, 등이며 사용자의 반응은 좋다, 만족하다, 작다, 촉촉하다 등으로 분석이 되었습니다. 그 외에도 제품/옵션별 구매순위, 댓글작성시간 분포그래프, 워드클라우드 등을 제공합니다.

 

페이지소개-영화페이지[분석]

네티즌평점, 성별/나이별관람추이, 만족도 등을 제공합니다. 시간관계상 생략하도록 하겠습니다.

 

이하 분석 기법에 대한 설명은 영상에서 확인부탁드립니다.

 

활용방안

1) 사용자들이 필요한 정보만을 선별적으로 수용하여 정보 과다 사회에서 효율적인 정보 접근이 가능

2-1) 뉴스 댓글 분석 : 주요 이슈에 대한 여론을 다양한 측면에서 빠르게 확인 가능

2-2) 쇼핑 댓글 분석 : 구매자는 상품에 대한 다양한 토픽별 반응(착용감, 등) 등을 확인할 수 있으며,

                                        판매자는 고객 반응을 확인해 마케팅에 활용

2-3) 영화 댓글 분석 : 해당 영화에 대한 여론을 파악하여 시청 결정에 도움을 줌

 3) 특정 분야에 대한 소비자의 감성 변화에 따른 마케팅 등 다른 데이터와 연계하여 다양한 분석 수행 가능

 

시연영상

 

 

+ Recent posts