트윗에서 감정 분석을 해 Spotify에서 감정에 있던 곡을 선곡

이 기사는 개인 개발 Advent Calendar 2018의 9일째입니다.

타이틀대로입니다만, Twitter의 트윗으로부터 감정을 분석해 Spotify로부터 그 감정에 맞는 악곡을 선곡해 보는 구조를 만들어 보았습니다.

사용법



이 계정에 @를 붙여 멘션을 보내면, 악곡명과 Spotify의 트랙 링크를 붙여 리플라이를 날립니다.

* 갱신 간격이 10분이므로 조금 시간이 걸립니다.
*현재 일본어와 영어 트윗만 대응하고 있습니다.

예를 들어, 다음 텍스트를 보내 보면
I hate these new features On #ThisPhone after the update.
I hate #ThisPhoneCompany products, you'd have to torture me to get me to use #ThisPhone.
The emojis in #ThisPhone are stupid.
#ThisPhone is a useless, stupid waste of money.

이런 식으로 응답이 보내집니다.


구성



IBM Watson Tone Analyzer



감정 분석에 Watson Tone Analyzer를 사용했습니다.
이번에는 분노, 불안, 기쁨, 슬픔의 4개의 감정 분석의 스코어에 대해 선곡을 실시하게 했습니다.

또 API 문서가 일본어판이 오래전에 갱신되어 있지 않기 때문에, Tone Analyzer로 개발을 하는 경우는 영어판의 문서를 참조하는 것이 좋을지도 모릅니다.

Spotify API



Tone Analyzer에서 출력된 스코어에 대해 선곡을 하는 데 사용했습니다.
"Get Recommendations Based on Seeds"라는 API에서 트랙의 다양한 속성 (악곡 장르, 템포, 노래 밝기, 메이저 마이너 등)을 지정하여 출력 할 수 있으므로이 속성을 감정에 적용 선곡을 실시했습니다.
htps : //로 ゔぇぺぺr. s 포치 fy. 코 m / 도쿠 멘 타치 온 / 우 ぇ b 아피 / 레후 렌세 / b 로 w 세 / 게 트 레 코멘 다치 온 s /

Twitter API



Spotify API에서 선곡한 내용을 트윗에 사용했습니다.
멘션을 얻는 API트윗 게시하기 API 을 사용하고 있습니다.

Wordpress



로직 부분은 제가 평소 익숙한 Wordpress(4.9.8)를 사용했습니다.

Google Apps Script



IBM Tone Analyzer가 영어만 지원하기 때문에 일본어 트윗을 번역하는 API를 Google Apps Script로 만들고 영어화한 후 감정 분석을 하도록 했습니다.
Cloud Translation API는 유료이므로 무료로 사용할 수 있는 이 방법을 사용해 보았습니다.

아래의 기사를 참고로 했습니다.
htps : // 코 m / 타나베 / ms / c79c5c28 바 0537112922

000Webhost



htps //w w. 000 ぇ b 호 st. 코m/
호스팅 서비스에 무료로 사용할 수 있는 000Webhost라는 것을 사용했습니다.
Wordpress도 000Webhost의 관리 화면에서 할 수 있으므로 번거로운 작업도 필요하지 않았습니다.
또, cron 작업도 무료 유저는 1개이면 사용할 수 있기 때문에, 이번 Twitter의 멘션의 체크를 이것으로 했습니다.

향후 개선점



제일의 개선점은 그 악곡이 정말로 그 감정을 나타내는데 최적인가, 라고 하는 점입니다.
Tone Analyzer에서 얻을 수 있는 감정의 점수 중, 기쁨이 80%의 곡과 기쁨이 50%의 곡으로 어떻게 차이를 내는지 등, 분노의 감정이 강하게 나오면 메탈을 장르로 낸다는 형태로 하고 있습니다만, 원래 메탈이 분노의 감정을 나타내는 장르인지 등입니다.

또, 같은 트윗에서도 Spotify API로부터 돌아오는 악곡의 결과가 엉망이거나(사양?)라고 하는 일도 있어, 그 점도 어떻게 최적화해야 하는가 하는 것이 향후의 과제입니다.

좋은 웹페이지 즐겨찾기