(실습) Amazon Comprehend를 사용하여 리뷰 검토

13장, “인공 지능 및 머신 러닝 활성화.”


지난 기사에서는 AI용 AWS 서비스와 ML용 AWS 서비스를 살펴보았습니다.

이번에는 AI 서비스 중 하나인 Amazon Comprehand를 사용하여 연습합니다!

0. 행사 목적

대형 호텔 체인에서 일하고 웹사이트에서 부정적인 리뷰를 식별하는 프로세스를 개발하는 임무를 맡고 있다고 상상해 보십시오. 매일 수백 개의 리뷰가 있기 때문에 새로운 리뷰가 게시되자마자 모든 새로운 리뷰를 읽는 것은 시간이 많이 걸릴 것입니다.

우리는 Amazon Comprehend라는 서비스를 사용하여 소규모 개념 증명(PoC) 테스트를 개발할 것입니다.

PoC가 성공하면 게시된 리뷰를 Amazon Comprehend로 가져오고 감정을 분석한 다음 리뷰가 부정적이거나 혼합된 경우 후속 조치를 취하는 분리된 프로세스가 필요합니다.

따라서 확인을 위해 Comprehend로 분석을 수행하기 위해 Lambda 함수를 트리거하는 Amazon Simple Queue Service(SQS)를 사용하여 동일한 방식으로 PoC를 생성하기로 결정했습니다.

하나. 새 Amazon SQS 메시지 대기열 설정

  1. AWS Management Console에 로그인하고 아마존 SQS 서비스이동
  2. 대기열 생성 딸깍 하는 소리.
  3. 기본 대기열을 기본값으로 둡니다.

    대기줄 (예: 웹사이트 리뷰 대기열 ).
  4. 다른 모든 옵션은 기본값으로 둡니다.

    바닥에 대기열 생성딸깍 하는 소리


2. Amazon Comprehend를 호출하는 Lambda 함수 생성

2단계에서는 SQS 대기열에서 전달된 텍스트를 구문 분석하기 위해 Amazon Comprehend를 호출하는 새로운 Lambda 함수를 생성합니다.


  1. 아마존 관리 콘솔에서 AWS 람다 서비스이동
  2. 함수 생성 딸깍 하는 소리.
  3. 새로운 옵션을 선택하세요.
  4. 함수 이름 값(예: 웹사이트 리뷰 분석 기능 ) 입력 용어는 파이썬의 최신 버전을 선택하십시오.
  5. 임원 역할 ~에 AWS 정책 템플릿에서 새 역할 생성 선택하다.

  6. 역할 이름 값 (예: 웹사이트 리뷰 분석 역할 ).
  7. 정책 템플릿 ~에 SQS 구하다 Amazon SQS 폴러 권한 에 추가합니다.

  8. 나머지는 모두 기본값으로 둡니다.

    함수 생성 딸깍 하는 소리. 함수를 생성한 후에는 사용자 지정 코드를 추가하여 SQS 메시지를 수신하고, 메시지에서 검증 텍스트를 추출하고, 감성 및 엔터티 분석을 위해 Amazon Comprehend로 보낼 수 있습니다.

  9. 람다 코드 소스 아래에 코드 블록으로 변화, 끼워 넣다코드를 제공합니다.

import boto3

import json

comprehend = boto3.client(service_name="comprehend",

                          region_name="us-east-2")

def lambda_handler(event, context):

    for record in event('Records'):

        payload = record("body")

        print(str(payload))
        
        print('Calling DetectSentiment')

        response = comprehend.detect_sentiment(

            Text=payload, LanguageCode="en")

        sentiment = response('Sentiment')

        sentiment_score = response('SentimentScore')

        print(f'SENTIMENT: {sentiment}')

        print(f'SENTIMENT SCORE: {sentiment_score}')
        
        print('Calling DetectEntities')

        response = comprehend.detect_entities(

            Text=payload, LanguageCode="en")

        print(response('Entities'))

        for entity in response('Entities'):

            entity_text = entity('Text')

            entity_type = entity('Type')

            To the PD: Please add this to the next line in p-regular style
            
             print(f'ENTITY: {entity_text},'

                f'ENTITY TYPE: {entity_type}')

                  ENTITY TYPE: {entity_type}')

    return

위의 코드는 감정 감지를 수행합니다.

~을 위한 API 이해그리고 전화 리뷰 텍스트( 유효 탑재량 ) 그리고 텍스트가 영어로 되어 있음을 표시했습니다.

Comprehend의 답변에서 감정 속성(양수, 혼합 또는 음수) 및 감정 점수 특성이 추출되었습니다.

3. IAM 역할에 Comprehend 권한 추가

Lambda 함수를 생성할 때 공통 사전 설정 권한 목록에서 선택하여 SQS 메시지 대기열을 쿼리할 수 있는 권한을 Lambda 함수에 추가할 수 있었습니다.

그러나 이 함수는 Comprehend API도 호출해야 하므로 이에 대한 권한도 추가해 보겠습니다.


  1. AWS 람다 콘솔에서 웹사이트 리뷰 분석 기능와 더불어 구성 왼쪽 탭 클릭 권한 탭을 클릭합니다.

  2. Lambda 함수를 생성할 때 지정한 역할의 이름이 링크로 표시됩니다.

    권한 편집 역할 이름 (예: 웹사이트 리뷰 분석 역할 ) IAM 콘솔을 엽니다.

  3. IAM 콘솔에서 정책 추가 > 링크 정책 딸깍 하는 소리.
  4. Lambda 함수에서 Comprehend API를 호출할 수 있는 충분한 권한이 있습니다.

    읽기 전용 이해 라는 정책을 찾습니다.

  5. 읽기 전용 이해 확인란을 선택하십시오. 다음 링크 정책 딸깍 하는 소리.


4. SQS 메시지 대기열에 대한 트리거로 Lambda 함수 추가

이 단계에서는 처리를 위해 SQS 메시지 대기열에 추가된 새 메시지를 수집하도록 Lambda 함수를 구성합니다.


  1. Amazon SQS 메시지 대기열 콘솔로 돌아갑니다.

  2. 이전에 생성한 SQS 대기열의 이름(예: 웹사이트 리뷰 대기열 ) 클릭합니다.

  3. 람다 트리거 탭을 클릭 Lambda 함수 트리거 구성 딸깍 하는 소리.
  4. 왼쪽 이 스레드에 사용된 범위로 설정되어 있는지 확인하십시오. 다음 드롭다운 목록에서 Lambda 함수를 선택합니다.

  5. 컴퓨터에 저장 SQS 대기열을 Lambda 함수와 연결하려면 여기를 클릭하십시오.

이제 솔루션을 테스트하고 Amazon Comprehend가 어떻게 작동하는지 확인할 수 있습니다!

5. Amazon Comprehend로 솔루션 테스트

마지막!
솔루션을 테스트하고 Amazon Comprehend가 사용자가 제공한 감정 및 엔터티 감지 텍스트를 분석하도록 합시다.


  1. 여전히 Amazon SQS 콘솔에 있고 열린 SQS 대기열이 있는지 확인하십시오.
  2. 맨 위 오른쪽 메시지 보내기 및 받기 딸깍 하는 소리.
  3. 메시징의 메시지 본문 부분 다음 텍스트(또는 자신의 유사한 텍스트)를 문자 보내딸깍 하는 소리

“최근에 케이프타운 시내에 있는 켄싱턴 호텔에 묵었는데 매우 감동했습니다.

호텔은 아름답고 직원들의 서비스는 환상적이며 바다 전망을 이길 수 없습니다.

시간이 있으면 카페인 Mary’s Kitchen을 방문하십시오. 호텔에서 멀지 않은 곳에 커피를 마시고 맛있는 케이크와 패스트리를 맛볼 수 있습니다.

4. Comprehend 분석 결과 보기 CloudWatch 로그다음에서 Lambda 함수의 출력을 검사할 수 있습니다.

별도의 브라우저 탭에서 아직 열려 있지 않은 경우 새 브라우저 탭을 엽니다.

람다 함수모니터 탭으로 돌아가기 그런 다음 클릭 CloudWatch에서 로그 보기 딸깍 하는 소리. 그러면 새 브라우저 탭에서 CloudWatch 콘솔이 열립니다.

CloudWatch 콘솔은 다음과 같은 Lambda 함수의 로그 그룹을 표시합니다.

/aws/lambda/website-reviews-analysis-functions 로그 그룹 ) 열어야 합니다.

최신 로그 스트림을 클릭하여 로그를 엽니다.

5. CloudWatch 로그에서 Lambda 함수 출력을 볼 수 있습니다.

여기에는 구문 분석된 텍스트, 감정( 긍정적인 ), 감정 점수, 텍스트에서 Comprehend가 인식한 세 가지 항목: 호텔 및 카페 이름, 도시 위치.

6. SQS 콘솔의 브라우저 탭으로 돌아가 리뷰 텍스트를 부정적인 리뷰로 변경합니다.

가상의 부정적인 리뷰를 작성하거나 Google을 통해 찾은 부정적인 리뷰를 복사하여 붙여넣을 수 있습니다.

SQS를 통해 메시지를 보내고 CloudWatch에서 분석 결과를 검토하여 Comprehend가 부정적인 감정을 감지하는 방법과 Comprehend가 감지할 수 있는 다른 엔터티를 확인합니다.

Amazon Comprehend가 게시된 리뷰에서 감정을 안정적으로 감지할 수 있음을 테스트하고 확인한 후에 프로덕션에서 이 솔루션을 구현하도록 결정할 수 있습니다.

이번에는 책을 훑어보고 똑같이 연습했는데 오류가 발생했다.

어째서인지 운동이 제대로 끝나지 않는다…


책에서 결과를 빌리면 결과가 잘 나왔다고 볼 수 있다.



이 장에서 13 많은 AWS ML 및 AI 서비스를 탐색하고 작성된 텍스트에서 통찰력을 추출하는 AI 서비스인 Amazon Comprehend를 사용해 볼 수 있었습니다.

이제 책의 주요 내용이 완성되었습니다!
실습이 완료되었으므로 다음 게시물에서는 더 이상 비용이 청구되지 않도록 AWS 계정을 정리하는 방법에 대해 블로그에 올릴 것입니다.