Natural Language API로 간편한 감정 분석 (감정 분석)
(=감정 분석).
GCP의 서비스 중 하나 「Natural Language API」를 사용한 결과, 손쉽게 센티멘트 분석을 할 수 있었으므로, 메모가 굳이 기술해 둡니다.
Natural Language API란 무엇입니까?
Google Cloud Platform에서 제공하는 머신러닝 서비스 중 하나입니다.
h tps : // c ぉ d. 오, ぇ. 코 m / 나츠라 l ぁんぐあげ? hl = 그럼
텍스트 데이터의 분석을 간편하게 실시할 수 있다.
등이 가능하다.
Natural Language API 사용 방법
자세한 내용은 아래를 참조하십시오.
h tps : // c ぉ d. 오, ぇ. 코 m / 나츠라 l ぁんぐあげ? hl = 그럼
이하의 가이드를 보면, 헤매는 부분은 거의 없다.
htps : // 코데아 bs. 로 ゔぇぺぺrs. 오, ぇ. 코 m/코데아 bs/응 lp-f로 m-오 gg-도 cs-그럼/어서 x. HTML? 그럼 x =. . % 2F. . 네 xt17-k # 0
Google Apps Script에서 Twitter 트윗 분석하기
라는 유스 케이스로 구현해 보았습니다.
Google 스프레드시트 준비
먼저 분석하고자 하는 문장 준비
Google Apps Script 작성
그런 다음 텍스트 데이터를 분석하는 스크립트를 준비.
이번에는
의 2 종류로 기술했습니다.
Natural Language API를 호출하는 함수
Google Code Lab 코드 을 거의 그대로 유용
retrieveSentiment.gs
function retrieveSentiment (textData) {
var apiKey = 'APIキーを記述';
var apiEndpoint =
'https://language.googleapis.com/v1/documents:analyzeSentiment?key='
+ apiKey;
// Create a structure with the text, its language, its type,
// and its encoding
var docDetails = {
language: 'ja-jp',
type: 'PLAIN_TEXT',
content: textData
};
var nlData = {
document: docDetails,
encodingType: 'UTF8'
};
// Package all of the options and the data together for the call
var nlOptions = {
method : 'post',
contentType: 'application/json',
payload : JSON.stringify(nlData)
};
// And make the call
var response = UrlFetchApp.fetch(apiEndpoint, nlOptions);
Logger.log('json is :' + response)
return response;
}
시트에서 텍스트 데이터를 검색하여 API 호출하는 함수로 전달하고 반환 값을 입력하는 함수
함수 내에서 앞에서 설명한 함수 "retrieveSentiment"를 호출합니다.
getSentiment.gs
// 取得したい開始行と終了行を記述
var start = '2';
var end = '5';
// シート情報取得
var mySheet = SpreadsheetApp.openById('シートのID').getSheetByName('シート名');
function getSentiment() {
// 開始行と終了行でループを回す
for (i = start; i <= end; i++) {
var tweet = mySheet.getRange(i, 1).getValue();
var response = retrieveSentiment(tweet);
var json = JSON.parse(response);
var score = json['documentSentiment']['score'];
var magnitude = json['documentSentiment']['magnitude'];
// 取得したScore Magnitudee,Jsonをシートに記述
mySheet.getRange(i, 2).setValue(score);
mySheet.getRange(i, 3).setValue(magnitude);
mySheet.getRange(i, 4).setValue(response);
}
}
실행 결과
score는 감정이 긍정인지 부정인지를 나타냅니다. 0이 중앙값. 마이너스라고 부정적.
Magnitude는 감정의 흔들림 폭. 이 수치가 크면 포지티브 네거티브 각각의 감정이 더 강하다.
Score, Magnitude 모두 1을 넘으면 긍정적이고 감동 정도가 크다. 이미지의 2행째가 그 예.
반대라고 부정적이고 감정적이다.
라고 말할 것 같습니다.
감정 분석의 어려움
Score는, 분석한 텍스트 전체로부터 인덱싱하고 있기 때문에, 복잡한 문장이라고 정확한 감정의 추출이 어렵다.
이번 예에서 말하면, 시트의 5행째. 잘 읽으면 AAA에 대한 평가가 매우 높고 호의적인 감정을 가지고 있음을 알 수 있지만, Score는 0.1에 그쳤다. 이것은, 문장 전체의 감정을 평균화해 내고 있기 때문.
특정 단어에 대한 정확한 감정 분석을 수행하려고하면 엔티티 추출이 필요하고 상당히 어렵습니다.
업무로 사용하려면 수중 조정이 필수적인 느낌이었습니다.
그것은 그것으로 매우 쉽게 감정 분석을 할 수 있으며, 재미있는 것은 변하지 않습니다.
Reference
이 문제에 관하여(Natural Language API로 간편한 감정 분석 (감정 분석)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/TakeshiNickOsanai/items/84cdd0da017a5d5d56b9텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)