감정 분석(Sentiment Analysis)을 위해 AWS Comprehend API를 사용하는 REST API를 구현해봅니다.
익숙하지 않은 분야라 이상한 점이 있을 수 있습니다.
2021. 10. 2 - 최초작성
우선 Lambda 함수를 작성합니다.
AWS 관리 콘솔 사이트(https://aws.amazon.com/ko/console/ )에 접속하여 로그인 후, 왼쪽 상단에 보이는 서비스를 클릭합니다.
서비스 목록에서 컴퓨팅 항목에 있는 Lambda를 클릭합니다.
오른쪽 상단에 보이는 함수 생성 버튼을 클릭합니다.
상단에 새로 작성이 선택된 상태에서 함수 이름을 적은 후, 런타임을 Python 3.9로 변경합니다. 이제 오른쪽 하단에 보이는 함수 생성을 클릭합니다.
다음 코드를 복사해서 붙여넣은 후, Deploy 버튼을 클릭합니다.
import json import boto3 #Using boto3 to call the Comprehend API client = boto3.client('comprehend') #Lambda function to work with Comprehend def lambda_handler(event, context): #Accessing data text = event['queryStringParameters']['Text'] #Sentiment Analysis sentiment = client.detect_sentiment(Text = text, LanguageCode = 'ko') #API call for sentiment analysis sentRes = sentiment['Sentiment'] #Positive, Neutral, or Negative sentScore = sentiment['SentimentScore'] #Percentage of Positive, Neutral, and Negative print(sentRes) print(sentScore) #Entity Extraction entities = client.detect_entities(Text = text, LanguageCode = 'ko') #API call for entity extraction entities = entities['Entities'] #all entities print(entities) textEntities = [dict_item['Text'] for dict_item in entities] #the text that has been identified as entities typeEntities = [dict_item['Type'] for dict_item in entities] #the type of entity the text is print(textEntities) print(typeEntities) return { 'statusCode': 200, 'body': str(sentiment) + str(entities) #body returned from our function } |
Test 버튼 옆에 있는 역삼각형 아이콘을 클릭하여 보이는 메뉴에서 Configure test event를 선택합니다.
이벤트 이름을 적은 후, 생성 버튼을 클릭합니다. 사용하지는 않습니다.
트리거를 통해 이벤트를 전달받아 Lambda 함수가 실행됩니다.
여기에서는 API Gateway를 트리거로 사용하여 Lambda 함수에 대한 REST API를 생성합니다.
트리거 추가를 클릭합니다.
API 게이트웨이를 선택합니다.
API 유형으로 REST API를 선택하고 보안은 열기를 선택한 후, 추가 버튼을 클릭합니다.
이제 트리거 항목에 API 게이트웨이가 추가되었습니다.
왼쪽 상단에 보이는 서비스를 클릭합니다.
보안, 자격 증명 및 규정 준수 항목에 있는 IAM을 클릭합니다.
왼쪽 항목에서 역할을 클릭합니다.
목록에서 앞에서 추가했던 람다 함수를 선택합니다.
정책 연결을 클릭합니다.
ComprehendReadOnly를 검색하여 체크 후, 정책 연결을 클릭합니다.
왼쪽 상단에 보이는 서비스를 클릭합니다.
서비스 목록에서 컴퓨팅 항목에 있는 Lambda를 클릭합니다.
구성 항목을 클릭한 후, lambda-example-API 링크를 클릭하여 API Gateway 콘솔로 이동합니다.
실행 경로를 표시하기 위해 "ANY" 링크가 기본적으로 선택됩니다. "ANY" 지정은 API가 모든 HTTP 동사(GET, PUT, POST 등)를 허용함을 의미합니다. 이제 "메소드 요청" 링크를 클릭합니다.
이벤트 객체에 쿼리 매개변수를 추가해야 합니다. 요청 검사기 옆에 보이는 연필 아이콘을 클릭합니다.
본문, 퀴리 문자열 파라미터 및 헤더 검사 로 설정하고 업데이트 아이콘을 클릭합니다.
URL 쿼리 문자열 파라미터 옆에 있는 삼각형 아이콘을 클릭합니다.
쿼리 문자열 추가를 클릭합니다.
이름 란에 Text를 적고 업데이트 아이콘을 클릭합니다.
필수 체크 박스를 체크합니다.
메소드 실행을 클릭합니다.
테스트를 클릭합니다.
메소드를 GET으로 변경하고 쿼리 문자열에 Text=”오늘은 서울이라 행복합니다” 를 입력합니다.
테스트 버튼을 클릭합니다.
다음과 같은 실행 결과가 보여집니다. 로그 항목에서 좀 더 많은 정보를 볼 수 있습니다.
참고
https://stackify.com/aws-lambda-serverless/
https://blog.runscope.com/posts/how-to-write-your-first-aws-lambda-function
https://towardsdatascience.com/sentiment-analysis-entity-extraction-with-aws-comprehend-618a7bec60b8
https://blog.wisen.co.kr/pages/blog/blog-detail.html?idx=11993
'WEB > AWS' 카테고리의 다른 글
AWS Rest API를 Android와 연동해보기( Lambda + API Gateway + DynamoDB ) (0) | 2023.10.15 |
---|---|
AWS Lambda 함수와 API Gateway로 만든 REST API 배포하기 (0) | 2023.10.12 |
AWS Lambda를 사용한 DynamoDB 테스트 (0) | 2023.10.12 |
AWS Lambda 함수와 API Gateway를 사용하여 REST API 구현 (0) | 2023.10.12 |
Python으로 AWS Lambda 사용해보기 (0) | 2023.10.12 |
시간날때마다 틈틈이 이것저것 해보며 블로그에 글을 남깁니다.
블로그의 문서는 종종 최신 버전으로 업데이트됩니다.
여유 시간이 날때 진행하는 거라 언제 진행될지는 알 수 없습니다.
영화,책, 생각등을 올리는 블로그도 운영하고 있습니다.
https://freewriting2024.tistory.com
제가 쓴 책도 한번 검토해보세요 ^^
그렇게 천천히 걸으면서도 그렇게 빨리 앞으로 나갈 수 있다는 건.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!