テキストから新しい特徴量を作る

Pythonで学ぶSentiment Analysis

Violeta Misheva

Data Scientist

動画の目的

 

目的:テキスト列(感情を捉える)に関する特徴量で既存データを拡充する

Pythonで学ぶSentiment Analysis

商品レビューのデータ

reviews.head()

Amazon商品のレビュー上位5行

Pythonで学ぶSentiment Analysis

レビュー列から作る特徴量

 

  • 各レビューの長さは?
  • 文はいくつ含む?
  • 品詞は何が含まれる?
  • 句読点はいくつ?
Pythonで学ぶSentiment Analysis

文字列のトークナイズ

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で学ぶSentiment Analysis

列からのトークン化

# General form of list comprehension
[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で学ぶSentiment Analysis

列からトークンを作成

len_tokens = []

# Iterate over the word_tokens list
for i in range(len(word_tokens)):
     len_tokens.append(len(word_tokens[i]))

# Create a new feature for the length of each review
reviews['n_tokens'] = len_tokens
Pythonで学ぶSentiment Analysis

句読点への対応

  • ここでは扱いませんが、除外できます
  • 句読点の数を測る特徴量
    • 句読点が多いレビューは強い感情を示す可能性
Pythonで学ぶSentiment Analysis

レビュー長の特徴量つきデータ

reviews.head()

Amazon商品のレビュー上位5行。レビュー長の列を追加済み

Pythonで学ぶSentiment Analysis

Let's practice!

Pythonで学ぶSentiment Analysis

Preparing Video For Download...