1.Watson Natural Language Understanding 경험해 보기

아래 링크에서 Text 혹은 URL을 입력하고 Watson Natural Language Understanding 결과를 확인해 본다.

(1) Watson Natural Language Understanding Demo에 접속해 로그인을 합니다.

(2) 분석대상이 되는 TEXT 혹은 URL을 넣고 실행하여 결과를 확인해 본다. Watson NLU는 텍스트를 분석하여 Sentiment, Entity, Concept, Keywords, Semantic Roles, Categories의 결과를 제공한다.

2. 필요한 IBM Cloud 서비스 생성하기

1.Watson Natural Language Understanding 서비스 생성

1)IBM Cloud > 카탈로그 > AI > Natural Language Understanding 선택
2)서비스이름, 지역 : 미국남부, 리소스그룹 : default, 가격책정플랜 : 라이트
3)create 클릭
4)서비스 신임정보 복사해 두기

2.Apache Spark 서비스 생성
1)IBM Cloud > 카탈로그 >  Web and Application > Apache Spark 선택
2)서비스이름, 지역 : 미국남부, 리소스그룹 : default, 가격책정플랜 : 라이트
3)create 클릭

3.DB2 Warehouse on Cloud 서비스 생성
1)IBM Cloud > 카탈로그 >  데이터베이스 > DB2 Warehouse  선택
2)서비스이름, 지역 : 미국남부, 리소스그룹 : default, 가격책정플랜 : 라이트
3)create 클릭
4)Manage > Open 클릭

4.Knowledge Catalog 서비스 생성
1)IBM Cloud > 카탈로그 > AI > Knowledge Catalog 선택
2)서비스이름,지역 : 미국남부, 리소스그룹 : Default, 가격책정플랜 : Lite
3)create 클릭

5.Watson Studio 와 Knowledge Catalog 연결
1)IBM Cloud > Dashboard > 생성한 Watson Studio 서비스 클릭 >  Manage > Get Started 클릭
20Watson Studio Get Started 화면에서 Watson Knowledge Studio 클릭 > 생성한 Knowledge Catalog 서비스 선택

3. 데이터 준비하기

1.트위터 데이터

2.DB2 Warehouse on Cloud 에 데이터 업로드

1)IBM Cloud > Dashboard > 생성한  DB2 Warehouse on Cloud 서비스 클릭>  Manage > Open 클릭
2)Load  클릭 > browser files 클릭 > 파일 선택 > Next 선택 
3)Schema 선택 (예:DASH10461) > New Table 선택 > Create a new Table 탭 아래에 테이블 이름 입력(예:TB_TWEETS) > Create 클릭 > Next 클릭
4)Separator을 | 로 변경 > Next 클릭 > Begin Load 클릭
5)View Table 클릭하여 로드된 데이터 확인 

  

3.DB2에 로드된 데이터를 여러 프로젝트에서 사용하기 위해 Knowledge Catalog 에 Asset 으로 적용

  
1)Catalog 생성
-.Catalog > New Catalog 선택 >Catalog name 작성 (예:CTLG_TWEETS)
-.Cloud Object Storage 선택 > Create 클릭
2)Connection 생성
-.Add to Catalog > Connection 선택 > 기존 생성한 DB2 Warehouse 서비스 선택 > Create 클릭
-.생성된 DB2 Warehouse Connection 확인
3)Connected Asset 생성
-.Add to Catalog > Connected Asset 선택 > Select Source 선택 
-.기존 생성한 DB2 Warehouse  Connection 선택 > 스키마 선택(예:DASH10461)  > 테이블 선택 (예:TB_TWEETS) >
-.Select 클릭
-.Asset Name 작성 (예:AST_TB_TWEETS) > Add 클릭 

-.생성된 Data Asset 확인

 

4.Watson NLU + Watson Studio 사용하여 Sentiment 확인하기

1.Notebooks 생성

 
1)Notebooks을 작성할 프로젝트 선택 (예)WatsonStudioWithWatson
2)Settings 탭  > Associated services > +Add service > Spark > Existing 탭 > 기존 생성한 Apache Spark
3)서비스 선택 > Select 선택
4)New notebook 클릭
5)Notebook 이름 작성 : TwitterAnalysisWithNLU
6)Runtime : 기존 생성한 Apache Spark 서비스 선택
7)Language 선택 : Python 2 선택
8)Create Notebook 클릭

 
2.Project에서 사용할 Data assets 가져오기

 
1)오른쪽 Pane에서 Catalog 선택 
2)생성한 Catalog 선택 : CTLG_TWEETS 
3)생성한 Asset 선택 :  AST_TB_TWEETS
4)Add to Project 클릭
5)연결한 Catalog, Asset 확인후 Add 클릭
6)왼쪽 Pane에서 등록된 Data Assets 확인

 
3.Watson NLU 사용해서 Sentiment 확인후 DB2에 업로드 하기

1)생성한 노트북 열기 (예:TwitterAnalysisWithNLU)

Cell 1 – 오른쪽 Pane에서 Asset 선택 (예:AST_TB_TWEETS) > Insert Pandas DataFrame 선택
Cell 2 – NLU 호출 위한 모듈 import   
import json
from watson_developer_cloud import NaturalLanguageUnderstandingV1
from watson_developer_cloud.natural_language_understanding_v1 import Features, EntitiesOptions,
KeywordsOptions, SentimentOptions, EmotionOptions
Cell 3 -NLU 서비스 신임정보 붙여넣기
nlu = NaturalLanguageUnderstandingV1(
    version=’2018-03-16′,
    username=’내신임정보’,
    password=’내신임정보’ )
Cell 4 – 트위터 정보 1건만 추출해서 NLU 실행 결과 보기
text = data_df_1.loc[0] features = Features(entities=EntitiesOptions(), keywords=KeywordsOptions(), emotion=EmotionOptions(), sentiment=SentimentOptions())

response = nlu.analyze(text=text, features=features,language=’en’ )

nlu_dump = json.dumps(response, indent=2)
print nlu_dump

Cell 5 – DATABASE에 저장된 전체 트위터 정보 읽어 Sentiment Type과 Sentiment Score를 추출
overallSentimentScore = [] overallSentimentType = []

for row in data_df_1.iteritems():
    text  = row[1]     
    enriched_json = nlu.analyze(text=text, features=features, language=’en’)
    
    if ‘sentiment’ in enriched_json:
        if(‘score’ in enriched_json[‘sentiment’][“document”]):
            overallSentimentScore.append(enriched_json[“sentiment”][“document”][“score”])
        else:
            overallSentimentScore.append(‘0’)

        if(‘label’ in enriched_json[‘sentiment’][“document”]):
            overallSentimentType.append(enriched_json[“sentiment”][“document”][“label”])
        else:
            overallSentimentType.append(‘0’)
    else:
        overallSentimentScore.append(‘0’)
        overallSentimentType.append(‘0’)

print overallSentimentType,overallSentimentScore

Cell 6 – Graph로 보기 위해 결과를 DataFrame으로 변경하기
import pandas as pd    
import numpy as np

data=np.column_stack((overallSentimentScore,overallSentimentType))
df = pd.DataFrame(data, columns=[“SentimentScore”, “SentimentType”])
print df

Cell 7 – Display 해 보기
import pixiedust
display(df)
Cell 8 – DB2에 로드하기 위해 데이터 타입 변경하기
from pyspark.sql import SQLContext
sqlCtx = SQLContext(sc)
sdf = sqlCtx.createDataFrame(df)
Cell 9 – DB2에 로드하기
conn_properties = {
   ‘user’: 내정보입력,
   ‘password’: 내정보입력,
   ‘driver’: ‘com.ibm.db2.jcc.DB2Driver’
}

db2_jdbc_url = ‘내정보입력’

# Save Spark DataFrame to Db2 Warehouse
sdf.write.jdbc(db2_jdbc_url, ‘TB_TWEETS_SENTIMENT’, properties=conn_properties, mode=”overwrite”)

4.DB2 에 생성된 테이블 확인하기

1)IBM Cloud > Dashboard > 생성한 Db2 Warehouse on cloud 서비스 선택 > Manage > Open 클릭
2)Explorer > Schema 선택 > 생성한 테이블 선택 (예:TB_TWEETS_SENTIMENT) > View Data 클릭

토론 참가

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다