【COTOHA API】NTT그룹의 40년에 걸친 연구 성과를 사용해, 니시노 카나씨의 나이를 예측한다【Python】

안녕하세요. 이 기사는 국산 웹 API Advent Calendar 2018 의 10일째의 기사입니다.

1. 하고 싶은 일



NTT 커뮤니케이션즈가 제공하는 COTOHA API 중에서 유저 속성 추정 API(베타판)를 이용하여 니시노 카나 씨의 가사로부터 연령을 예측합니다.
유저 속성 추정 API(베타판)는 입력으로서 일본어로 기술된 복수의 문장으로 이루어지는 텍스트를 받아, 연대, 성별, 취미, 직업 등의 인물에 관한 속성을 추정·출력한다고 합니다.
htps : // 아피. 그래. 코 m/콘텐 ts/레후오렌세. HTML



2. 왜 니시노 카나씨인가



【마케팅】왜 니시노 카나는 히트하는 노래를 만들 수 있을까 의 기사에서도 소개된 바와 같이, 니시노 카나씨는 철저하게 마케팅을 연구되고 있습니다.

아래의 기사에서도 여러가지 실험되고 있는 바와 같이, 자연언어 처리의 소재로서 매우 흥미롭습니다.
  • 니시노 카나의 가사를 분석하고 빈번한 단어를 보았습니다.
  • 니시노 카나에게 「사랑」이란 무엇인가 물어 보았다

  • 3. API 이용 준비



    공식 기사를 참고로 했습니다.
  • 초보자의 내가 브라우저에서 자연 언어 처리 API(COTOHA API)를 시도할 수 있을 때까지 【기본 가이드】
  • 자연 언어 처리를 쉽게 다룰 수 있다면 소문의 COTOHA API를 Python에서 사용해 보았습니다.

  • 4. 실행 코드



    main.py
    import requests
    import json
    
    #TOKEN(トークン)をゲットする
    headers = {
        'Content-Type': 'application/json',
        'charset': 'UTF-8',
    }
    data = {
    "grantType":"client_credentials",
    "clientId":"自分で取得してね",
    "clientSecret":"自分で取得してね"
    }
    data = json.dumps(data).encode()
    response = requests.post('https://api.ce-cotoha.com/v1/oauth/accesstokens', headers=headers, data=data)
    access_token = response.json()['access_token']
    
    #年齢を分析する
    URL = "https://api.ce-cotoha.com/api/dev/nlp/beta/user_attribute"
    headers = {
        'Content-Type': 'application/json',
        'charset': 'UTF-8',
        'Authorization': 'Bearer ' + access_token
    }
    data = {
    "document":"""会いたくて 会いたくて 震える君想うほど遠く感じてもう一度聞かせて嘘でもあの日のように"好きだよ"って… 今日は記念日 本当だったら二人過ごしていたかなきっと君は全部忘れてあの子と笑いあってるの? ずっと私だけにくれてた言葉も優しさも大好きだった""",
    "type": "default"
    }
    
    data = json.dumps(data).encode()
    r = requests.post(URL, headers=headers, data=data)
    data = r.json()
    print(data)
    

    ※개행을 포함한 문자열은 트리플 쿼트 ''' 또는 """를 사용하여 둘러싸도록 합시다.

    참고 파이썬에서 줄 바꿈을 포함한 문자열 출력, 연결, 분할, 삭제, 바꾸기

    5. 실행 결과



    우선은 「보고 싶어서 만나고 싶어서」를 분석한 결과로부터.

    result.json
    {'result': {
    'age': '30-39歳',
    'civilstatus': '未婚', 
    'earnings': '-1M',
    'gender': '女性',
    'hobby': ['GOURMET', 'INTERNET', 'MOVIE', 'MUSIC', 'SHOPPING'],
    'location': '関東',
    'moving': ['WALKING'],
    'occupation': '会社員'
    }, 'status': 0, 'message': 'OK'}
    

    칸토에 사는 미혼 여성, 30-39세인 것 같습니다. 소속 레코드 회사는 소니 뮤직 라벨즈이므로 회사원이라는 것도 옳다고 생각합니다. 웃음 글쎄 Wikipedia 정보와 가깝습니다. 니시노 카나 출처: 무료 백과사전 '위키피디아(Wikipedia)'

    계속해서 「트리세츠」를 이용해 분석해 보겠습니다.

    data.json
    {
    "document":"""この度はこんな私を選んでくれて
    どうもありがとう
    ご使用の前にこの取り扱い説明書をよく読んで
    ずっと正しく扱ってね
    一点物につき返品交換は受け付けません
    ご了承ください
    
    急に不機嫌になることがあります
    わけを聞いても答えないくせにほっとくと怒ります
    いつもごめんね
    でもそんな時は懲りずにとことん付き合ってあげましょう
    
    定期的に褒めると長持ちします
    爪が綺麗とか 小さな変化にも気づいてあげましょう
    ちゃんと見ていて
    でも 太ったとか余計なことは気づかなくていいからね""",
    "type": "default"
    }
    

    실행 결과를 살펴 보겠습니다.

    result.json
    {'result': {
    'age': '20-29歳', 
    'civilstatus': '既婚', 
    'earnings': '-1M', 
    'gender': '女性', 
    'hobby': ['COOKING', 'GOURMET', 'STUDY'], 'location': '近畿'}, 
    'status': 0, 
    'message': 'OK'
    }
    

    이번에는 20-29세로 바뀌었습니다.
    이 노래는 '보고 싶어서 만나고 싶어서'보다 어린 세대를 대상으로
    더 젊은 세대에 사용되는 빈도가 높은 표현이 많을지도 모릅니다.

    베타판이라고 하는 일도 있어, 향후의 업데이트에 기대군요!



    사람들에게 가르치고 공부하는 것을 좋아합니다. 여러가지 배운 것을 기사로 공유해 가고 싶습니다!

    - 【COTOHA API】NTT그룹의 40년에 걸친 연구 성과를 사용해, 니시노 카나씨의 나이를 예측한다【Python】
    - 【Python 단지 12 라인】 리크 루트 인공 지능 API에 고기의 인스타 감성 진단을 받는다

    좋은 웹페이지 즐겨찾기