基本的な極性を手早く確認する
感情分析プロジェクトを始めるときは、手短に polarity() を試すことで、全体感をつかんだり課題を理解したりできることがあります。この演習では(時間短縮のため)、comments ベクトルの一部に polarity() を適用し、裏側ではより大きな極性オブジェクトを読み込んでおきます。
カーネル密度プロットを見ると、レビューの中心が0にないことに気づくはずです。しばしば、この感情の「評点インフレ」には2つの原因があります。1つ目は、社会的規範により、回答者が中立よりも好意的な表現を選ぶことです。これはもちろんチャネルによって異なります。たとえば e-sports やソーシャルメディア投稿のように皮肉が多いチャネルでは、ネガティブに偏り「デフレ」になることもあります。こうしたチャネルは期待値が異なります。2つ目の可能性は「特徴ベースの感情」です。あるレビューでは「ベッドは快適で良かったが、キッチンは汚くて最悪だった」のように書かれることがあります。このタイプのレビューは複数の特徴を同時に含むため、平均スコアが偏ることがあります。
次の演習でこの「評点インフレ」を調整しますが、ここでは調整なしでレビューを観察してみましょう。
この演習はコースの一部です
Rで学ぶSentiment Analysis
演習の手順
bos_reviews$comments[1:6]のように、最初の6件のレビューに対してpolarity()を実行し、practice_polを作成します。- 返された極性オブジェクトを確認するため、
practice_polを呼び出します。 practice_pol$all$polarityに対してsummary()を呼び出します。これは6件すべてのコメントの全体極性にアクセスします。- すべての1000件のコメントについて、より大きな極性オブジェクトも読み込んであります。新しいオブジェクト名は
bos_polです。bos_polの「すべての」極性スコアを返す適切なリスト要素に対してもsummary()を適用してください。 - サンプルコードには棒グラフとカーネル密度プロットがほぼ完成した状態で用意されています。残りは「すべての」スコアを表すデータフレームを指定することです。ヒント: 前のステップでの
polarityは、このデータフレームの1列を指します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Practice apply polarity to first 6 reviews
practice_pol <- ___
# Review the object
___
# Check out the practice polarity
___
# Summary for all reviews
___
# Plot Boston polarity all element
ggplot(___, aes(x = polarity, y = ..density..)) +
geom_histogram(binwidth = 0.25, fill = "#bada55", colour = "grey60") +
geom_density(size = 0.75) +
theme_gdocs()