Introduction

κ°μ  λΆμ (sentiment analysis) μ΄λ?
: νμ€νΈλ λ°νμ ννλ κ°μ  λλ μκ²¬μ μ»΄ν¨ν°λ‘ μλ³, λΆλ₯νμ¬ ν΄λΉ λν μ£Όμ μ λν μ£Όκ΄μ  νλλ₯Ό λΆμνλ κ².

μ΄ μν°ν΄μμλ νμ΄μ€λΆ analytics μμ μΆμΆν μ’μμ, κ³΅μ , λλ¬λ₯ , λΆμ μ  νΌλλ°± λ±
νμ΄μ€λΆ λ§€νΈλ¦­μ€ raw λ°μ΄ν°λ₯Ό κ°μ  λΆμνμ¬ μΈμ¬μ΄νΈλ₯Ό λμΆν©λλ€.

Note) νμ΄μ€λΆ μ λλ¦¬ν±μ€λ?
νμ΄μ€λΆ μ λλ¦¬ν±μ€λ μ¬μ©μκ° κ΄λ¦¬νκ³  μλ νμ΄μ€λΆ νμ΄μ§, μΉ, μ± λ±μ κ±Έμ³ κ³ κ°μ νλ κ³Όμ μ λΆμν΄μ£Όλ λκ΅¬μλλ€.

μ΄ μν°ν΄μμλ νμ΄μ€λΆ μ λλ¦¬ν±μ€λ₯Ό νμ©νμ¬ λ΄ ν¬μ€νμ μ λ³΄λ₯Ό raw data λ‘ νλ³΄ν©λλ€.
watson studio, Visual Recognition, Tone Analyzer λ±μ νμ©νμ¬ μ΄λ€ ν¬μ€νμ μ΄λ€ κ°μ μ΄ λλ¬λκ³ ,
μ΄λ€ κ°μ μ΄ ννλ κ²μλ¬Όμ engagement κ° λμμ§ νμΈν΄ λ³Ό μ μμ΅λλ€.

Contents

1. Watson studio κ°μ
2. νλ‘μ νΈ μμ± λ° μλΉμ€, λΈνΈλΆ, μΈμ¦ μ λ³΄ μΆκ°
3. λ°μ΄ν° λΆλ¬μ€κΈ°
4. λ°μ΄ν° μ μ²λ¦¬ λ° Enrichment
5. κ²°κ³Ό λΆμ

#1 Watson studio κ°μνκΈ°
– IBM Watson studio μκ° μΉμ¬μ΄νΈ(νκ΅­):https://www.ibm.com/cloud-computing/kr-ko/watson-studio/
– IBM Watson studio μλΉμ€ μΉμ¬μ΄νΈ : https://dataplatform.cloud.ibm.com/

* IBM Watson Studio μλΉμ€ μΉμ¬μ΄νΈ

– IBM Cloud μμ΄λλ‘ λ‘κ·ΈμΈνκ³ , Watson Studioμ κ°μν©λλ€.
(μμ΄λκ° μλ€λ©΄ IBM Cloud μμ΄λλ₯Ό λ§λ  ν κ°μν©λλ€.)

– μΆκ° μκΈμ μ§λΆνμ§ μμΌλ €λ©΄ ‘LITE Plan’μ μ ννμΈμ.

* IBM Watson Studio λ‘κ·ΈμΈ νλ©΄

#2 νλ‘μ νΈ μμ± λ° μλΉμ€, λΈνΈλΆ, μΈμ¦ μ λ³΄ μΆκ°

2.1 νλ‘μ νΈ μμ±
– μλ¨ λ©λ΄ λ°μμ projects > new_project λ₯Ό ν΄λ¦­νμ¬ μλ‘μ΄ νλ‘μ νΈλ₯Ό μμ±ν©λλ€.

– Data Science νλ‘μ νΈ νμΌμ ν΄λ¦­νμΈμ.

– νλ‘μ νΈ μμ± μ IBM Cloud κ³μ μ νλ‘μ νΈλͺκ³Ό κ°μ μ΄λ¦μΌλ‘ object storage μλΉμ€κ° μλμΌλ‘ μμ±λ©λλ€.

* ‘new project’λΌλ μ΄λ¦μ΄ νλ‘μ νΈλ₯Ό μμ±νμ new project λ‘ μμνλ μ΄λ¦μ object storage μλΉμ€κ° μμ±λμμ΅λλ€.
(IBM Cloud κ³μ μμ νμΈν  μ μμ΅λλ€)

2.2 νλ‘μ νΈμ μλΉμ€ μΆκ°νκΈ°
– μλΉμ€λ νλ‘μ νΈμ μΆκ° κΈ°λ₯μΌλ‘ μ΄ν΄ν  μ μμ΅λλ€.
IBM Watson Studio μμλ Amazon EMR Spark, IBM Analytics Engine, Spark λ±μ λ€μν μΆκ° μλΉμ€λ₯Ό νλ‘μ νΈμ μ μ©ν  μ μμ΅λλ€.

– μλ‘­κ² μμ±λ νλ‘μ νΈλ₯Ό ν΄λ¦­νκ³  μλ¨ λ©λ΄λ°μ settings μ μ νν©λλ€.
μ€ν¬λ‘€μ λ΄λ € associated service ν­λͺ©μμ Add service > Watson μ ν΄λ¦­ν©λλ€.

– μ΄ μν°ν΄μμλ κ°μ  λΆμμ μν΄ Visual Recognition (μ΄λ―Έμ§ μΈμ), Natural Language Understanding (μμ°μ΄ μ²λ¦¬), Tone Analyzer (λΆμκΈ° λΆμ) 3κ°μ§ μλΉμ€λ₯Ό μΆκ°ν©λλ€. ν΄λΉ μλΉμ€ νμΌμ Add λ₯Ό ν΄λ¦­νκ³  μΆκ° μκΈμ λ©λΆνμ§ μμΌλ €λ©΄ LITE νλμ μ ννμΈμ.

2.3 μΈμ¦ μ λ³΄ λ©λͺ¨ν΄ λκΈ°
– μ’μΈ‘ μλ¨ β° μμ΄μ½μ Navigation λ©λ΄μμ Services > Watson Services λ₯Ό μ νν©λλ€.

– 3κ° μ  λͺ¨μμ actions λ©λ΄λ₯Ό μ΄μ©νμ¬ manage in IBM cloudλ₯Ό ν΄λ¦­ν©λλ€.
κ° μλΉμ€μ API Key μ URLμ λΈνΈλΆμμ μ¬μ©νκΈ° μν΄ λ³΅μ¬ν΄ λ‘λλ€.
(2.5 μΈμ¦μ λ³΄ μΆκ° μμμμ μ¬μ©ν©λλ€)

2.4 νλ‘μ νΈμ λΈνΈλΆ μμ±νκΈ°
– Watson Studio μμ Β + Add to projectΒ ν­μ μ΄μ©νμ¬Β Notebook μ ν΄λ¦­ν©λλ€.

– from url ν­μ μ ννκ³  λΈνΈλΆ μ΄λ¦, κ΄λ ¨ μμΈ μ€λͺ(description)μ μλ ₯ν©λλ€.
– κ°μ  λΆμμ μν΄ IBM κ³΅μ κ°μ΄λμμ μ κ³΅νλ λΈνΈλΆμ μμ±ν©λλ€.
μλμ urlμ μλ ₯νμΈμ

https://raw.githubusercontent.com/IBM/pixiedust-facebook-analysis/master/notebooks/pixiedust_facebook_analysis.ipynb
(μ΄κΈ° λΈνΈλΆ μ€κ³ Creditμ Anna Quincy μ Tyler Andersen μκ² μμ΅λλ€.)

– runtime ν­λͺ©μΌλ‘λΒ ‘Default Python 3.5 Free (1 vCPU and 4 GB RAM)’ μ μ νν©λλ€.
– ‘Create Notebook’Β λ²νΌμ ν΄λ¦­ν©λλ€.

* λ€μκ³Ό κ°μ΄ λΈνΈλΆμ΄ μμ±λ©λλ€.

2.5 μΈμ¦μ λ³΄ μΆκ°
– ‘1.5. Add Service Credentials From IBM Cloud for Watson Services’ νλ¨μ λΈνΈλΆ μμ μ°Ύμ΅λλ€.
– ‘add_…’Β ννμ 5κ° placeholder κ°μ 2.3 λ¨κ³μμ κ° μλΉμ€μ ‘Service Credentials’Β ν­μμ κ°μ Έμ¨ μ λ³΄λ‘ λμ²΄ν©λλ€.

* μ΄ μμ λ―Όκ° μ λ³΄μΈ μΈμ¦ μ λ³΄λ₯Ό ν¬ν¨νκΈ° λλ¬Έμ hidden_cellλ‘ νμλ©λλ€.

#3 λ°μ΄ν° λΆλ¬μ€κΈ°

3.1 λΈνΈλΆμ CSV νμΌ μΆκ°

– μ° μλ¨ 10/01 μμ΄μ½μ μ ννμ¬ Find and Add Data κΈ°λ₯μ μ¬μ©ν©λλ€.
Files ν­ > browse λ₯Ό ν΄λ¦­νμ¬ .csv νμΌμ μΆκ°νμΈμ.

– λ§μ½ λΆμνκ³ μ νλ νμ΄μ€λΆ Analytics λ°μ΄ν°κ° μλ€λ©΄ IBM μμ μ κ³΅νλ μμ λ°μ΄ν°λ₯Ό λ€μ΄λ‘λ νμ¬ μ¬μ©ν  μ μμ΅λλ€.
μλ λ§ν¬λ₯Ό ν΅ν΄ Github μ μ μν ν data > example_input μΌλ‘ λ€μ΄κ°λ©΄ μμ λ°μ΄ν°κ° μμ΅λλ€.
– IBM GitHub url : https://github.com/IBM/pixiedust-facebook-analysis?cm_sp=IBMCode-_-discover-hidden-facebook-usage-insights-_-Get-the-Code

3.2 pandas DataFrame μ½λ μ½μ

– ‘2.1 Load data from Object Storage’ μ€λͺ νλ¨μ λΈνΈλΆ μμ μ°Ύμ΅λλ€.
‘# Insert pandas DataFrame’ κ° μλ ₯λ μμ μ νν©λλ€. μ½λλ₯Ό μ½μνκΈ° μ  μ΄ μμ μ ννλμ§ λ°λμ νμΈνμΈμ.

– [’10/01′Β νμΌ ν­ νλ¨ Find and Add Data λ©λ΄μμ ‘Insert to code’Β λ₯Ό ν΄λ¦­, λλ‘­λ€μ΄ λ©λ΄λ₯Ό μ νν©λλ€.
λλ‘­λ€μ΄ λ©λ΄μΒ ‘Insert Pandas DataFrame’Β μ μ νν©λλ€.

– non utf-8 λ°μ΄ν° μΈμ½λ©μ κ²½μ° λΈνΈλΆμ μ€ννμ λ μλ¬κ° λ°μν  μ μμ΅λλ€.
νλΌλ―Έν°λ₯Ό μμ νμ¬ μΈμ½λ© μ λ³΄λ₯Ό μ€μ ν¨μΌλ‘μ¨ μ€λ₯λ₯Ό μμ ν  μ μμ΅λλ€.

μλ₯Ό λ€μ΄. example_facebook_data.csv νμΌμ κ²½μ°
df_data_1 = pd.read_csv(body, encoding=’latin-1′) μ κ°μ΄ μμ νλ©΄
μλ¬ μμ΄ μ μμ μΌλ‘ λΈνΈλΆμ μ€νν  μ μμ΅λλ€.

* μ΄ μμ λ―Όκ° μ λ³΄μΈ μΈμ¦ μ λ³΄λ₯Ό ν¬ν¨νκΈ° λλ¬Έμ hidden_cellλ‘ νμλ©λλ€.

3.3 df λ³μ μ€μ 

– 3.1 λ¨κ³μμ ‘2.1 Load data from Object Storage’ μ€λͺ νλ¨μ
μμ λ°μ΄ν°λ₯Ό pandas DataFrameμ ννλ‘ λΆλ¬μμ΅λλ€.

λΆλ¬μ¨ λ°μ΄ν°μ μ½λμ λ°λΌ ν΄λΉ μμ λ§μ§λ§ λ μ€μ μ½λ ννκ° λ¬λΌμ§λλ€.
μμλ‘ μ κ³΅ν example_facebook_data.csv νμΌμ μ μ©ν  κ²½μ°
df_data_2 λΌλ λ³μμ pandas Dataframe λ°μ΄ν°λ₯Ό μ μ₯ν©λλ€.

λ°μ΄ν° μ½λμ λ°λΌ df_data_1 μ΄λΌλ λ³μμ λ°μ΄ν°λ₯Ό μ μ₯ν  μλ μμ΅λλ€.

pandas DataFrameμ μ μ₯νλ λ³μμ μ΄λ¦μ΄ λ¬΄μμΈμ§ μ²΄ν¬νκ³ ,
‘2.2 Set variables’ μ€λͺ νλ¨μ μμμ df = df_data_1 λλ df_data_2,
dfλ₯Ό padas DataFrameμ μ μ₯ν λ³μλ‘ μ€μ ν©λλ€.

* μ΄ μμμμλ padas DataFrame μ λ³΄λ₯Ό df_data_2 λ³μμ μ μ₯νκΈ° λλ¬Έμ
df λ₯Ό df_data_2 μ κ°κ² λ§μΆ° μ€λλ€.

3.4 νμΌ μΈμ¦ μ λ³΄ μΆκ°

– 3.3 λ¨κ³μμ df λ³μλ₯Ό μ€μ ν ν, νλ¨μ νμΌ μΈμ¦ μ λ³΄λ₯Ό μΆκ°νκΈ° μν μμ΄ μμ΅λλ€.
‘#insert credentials for file – Change to credentials_1’ λΌκ³  μλ ₯λ μμ μ νν©λλ€.

– μ°μΈ‘ Find and Add Data λ©λ΄μμ insert to code > Insert credentials λ₯Ό ν΄λ¦­ν©λλ€.

* μ΄ μμ λ―Όκ° μ λ³΄μΈ μΈμ¦ μ λ³΄λ₯Ό ν¬ν¨νκΈ° λλ¬Έμ hidden_cellλ‘ νμλ©λλ€.

3.5 Credential λ³μ λͺ μμ 

– 3.4 λ¨κ³μμ νμΌ μΈμ¦ μ λ³΄λ₯Ό μΆκ°ν ν μ€ν¬λ‘€μ λ΄λ¦½λλ€.
μ½μν μ½λλ credentials_1 λλ credentials_2 λ³μμ ν λΉλ μΈμ¦ μ λ³΄ dictionary λ₯Ό μ μ₯ν©λλ€.
credentials λ³μλ μ½λμ λ°λΌ λ€λ₯Έ μ΄λ¦μ κ°μ§λλ€.

– ν΄λΉ μ¬μ§μμ λ³Ό μ μλ―μ΄, μ μμμμλ dictionary μΈμ¦ μ λ³΄λ₯Ό credentials_2 μ μ μ₯ν©λλ€.
μΈμ¦ μ λ³΄κ° μ μ₯λ μμ μλ μμμ credentials λ³μλ₯Ό μΈμ¦ μ λ³΄κ° μ μ₯λ credentials_2 λ³μλ‘ μ€μ ν©λλ€.

(λ§μΌ dictionary μΈμ¦ μ λ³΄κ° credentials_1 μ μ μ₯λμ΄ μμΌλ©΄, credentials λ³μλ₯Ό credentials_1 λ‘ μ€μ ν©λλ€.)

4. λ°μ΄ν° μ μ²λ¦¬ λ° Enrichment

4.1 λ°μ΄ν° μ μ²λ¦¬
– missing value λ₯Ό μ κ±°νκ³  μΈλ€μΌμ μΆμΆν©λλ€.
λΈνΈλΆμ μ μλ κ°μ΄λ μ½λλ₯Ό νμ©ν©λλ€.

4.2 Enrichment

– 2.2 λ¨κ³μμ μΆκ°νλ μλΉμ€λ₯Ό λ°μ΄ν°μ μ μ©μν΅λλ€.
λΈνΈλΆμ μ μλ κ°μ΄λ μ½λλ₯Ό νμ©ν©λλ€.

5.κ²°κ³Ό λΆμ

– λ³μλ₯Ό μ€μ νκ³  Pixie Visualization λΌμ΄λΈλ¬λ¦¬λ₯Ό νμ©νμ¬ νμ΄μ€λΆ ν¬μ€νμ λνλ κ°μ  λλ λΆμκΈ°λ₯Ό μ°¨νΈλ‘ λνλΌ μ μμ΅λλ€.

– λΈνΈλΆμ κ° μμ μ€ννλ©΄ display ν¨μκ° ν€μλ, κ°μ  λΆμ μ°¨νΈλ₯Ό μΆλ ₯ν©λλ€.

* ν€μλ λΆμ μ°¨νΈ

– renderer, chart μ’λ₯, μ λ ¬ κΈ°μ€ λ±μ λ³κ²½νμ¬ λ€μν κ²°κ³Ό κ°μ μ»μ μ μμ΅λλ€.