從文字建立新特徵

Python 情感分析

Violeta Misheva

Data Scientist

本影片目標

 

目標:用與文字欄位相關的特徵(擷取情緒)來強化現有資料集。

Python 情感分析

產品評論資料

reviews.head()

Amazon 產品評論的前 5 列

Python 情感分析

從評論欄位擷取特徵

 

  • 每則評論多長?
  • 有多少句子?
  • 涉及哪些詞性?
  • 有多少標點符號?
Python 情感分析

將字串斷詞(Tokenize)

from nltk import word_tokenize
anna_k = 'Happy families are all alike, every unhappy family is unhappy in its own way.'
word_tokenize(anna_k)

['Happy','families','are', 'all','alike',',',
 'every','unhappy', 'family', 'is','unhappy','in',
 'its','own','way','.']
Python 情感分析

從欄位產生詞元

# 一般的串列生成式語法
[expression for item in iterable]
word_tokens = [word_tokenize(review) for review in reviews.review]
type(word_tokens)
list
type(word_tokens[0])
list
Python 情感分析

從欄位產生詞元

len_tokens = []

# 走訪 word_tokens 串列
for i in range(len(word_tokens)):
     len_tokens.append(len(word_tokens[i]))

# 建立每則評論長度的新特徵
reviews['n_tokens'] = len_tokens
Python 情感分析

處理標點符號

  • 我們尚未處理它,不過你可以排除它
  • 可用一個特徵計算標點符號數量
    • 標點很多的評論,可能代表情緒更強烈
Python 情感分析

加入長度特徵的評論

reviews.head()

Amazon 產品評論前 5 列,含新增的評論長度欄位

Python 情感分析

一起來練習吧!

Python 情感分析

Preparing Video For Download...