paint-brush
感情分析にブライトデータを活用する方法@adnanaleeza
新しい歴史

感情分析にブライトデータを活用する方法

Aleeza Adnan5m2024/11/26
Read on Terminal Reader

長すぎる; 読むには

Bright Data は、感情分析に使用できる高品質の Twitter データにアクセスできるプラットフォームです。この記事では、Bright Data の事前構築された Twitter データ セットの使用方法を説明します。感情分析が適用されるツイートのテキストに焦点を当てます。
featured image - 感情分析にブライトデータを活用する方法
Aleeza Adnan HackerNoon profile picture
0-item

機械学習におけるデータの役割

今日の AI 主導の状況では、機械学習、AI、チャットボットがかつてないペースで業界を変革しています。


業務に AI を統合しようとする企業が増えていますが、こうしたシステムの構築方法は見落とされがちです。主な要素は? データです。機械学習モデルの良し悪しは、トレーニングに使用したデータ次第です。しかし、このデータはどこから来るのでしょうか?


私たちが頼りにするデータの大部分は公開されており、ソーシャルメディアの投稿、ユーザーレビュー、その他のオンラインコンテンツによく見られます。感情分析の場合、最も豊富なデータソースの1つはTwitterで、リアルタイムのユーザー生成コンテンツを継続的にストリーミングしています。しかし、このデータをいかに効果的かつクリーンに収集するかが課題です。

従来のTwitterデータ収集の問題点

Twitter データを使用した感情分析プロジェクトに取り組み始めたとき、最初は Twitter API の使用を検討しました。しかし、すぐに重大な制限に遭遇しました。無料レベルの API では、過去 7 日間のツイートにしかアクセスできないのです。包括的な感情分析、特に数週間または数か月にわたるトレンド トピックや政治イベントの場合、この制限により、利用可能なデータの範囲と品質が大幅に制限されます。


より高い API 層にアップグレードすることも選択肢の 1 つでしたが、私のような小規模プロジェクトではコストが高すぎました。そのため、従来のスクレイピング (CAPTCHA、冗長性、不完全なレコードなど、独自の課題が伴う) を通じて手動でデータを収集するか、別のソリューションを見つけるかという 2 つの選択肢が残されました。


ここで Bright Data が役に立ちます。Bright Data は、クリーンでスケーラブルな過去の Twitter データセットを提供することで、これらの問題をシームレスに解決します。API の制限に縛られることなく、通常の煩わしさなしに、プロジェクト用の多様で高品質なデータにアクセスできるようになりました。

Bright Data の事前構築済み Twitter データセットの使用に関するステップバイステップ ガイド

この記事では、Bright Data のマーケットプレイスを活用して感情分析用の高品質な Twitter データを取得する方法について説明し、私の経験を共有します。

ステップ1: サインアップしてBright Data Platformにアクセスする

まずは Bright Data の Web サイトにアクセスし、無料アカウントを作成してください。ログインすると、データ マーケットプレイスに移動し、Twitter に関連するものも含め、さまざまな構築済みデータセットにアクセスできます。

ステップ2: 関連するデータセットを検索する

データセットを選択したら、ローカルマシンに直接ダウンロードするか、API経由でアクセスできます。この簡単なプロセスにより、高品質のデータをすぐに使用できるようになります。私はTwitter投稿データセットを使用しました。

ステップ3: データの読み込みとクリーンアップ

生の Twitter データには通常、ユーザー情報、画像の URL、その他の非テキスト データなど、感情分析には関係のないメタデータが多数含まれています。感情分析が適用されるツイートのテキストと、リポストやいいねなどの関連するエンゲージメント メトリックに焦点を当てます。

 import pandas as pd df = pd.read_csv("path_to_your_dataset.csv") df.head()


次のステップは、欠損値を処理して無関係な列を削除することでデータをクリーンアップすることです。

 df_clean = df[['user_posted', 'description', 'date_posted', 'reposts', 'likes']] df_clean = df_clean.dropna(subset=['description']) df_clean = df_clean.drop_duplicates(subset=['description']) df_clean.head()


ステップ4: 感情分析 - ツイートから意味を抽出する

データをクリーンアップして関連するテキストが揃ったので、感情分析に取り掛かります。感情分析とは、言葉の背後にある感情的な調子、つまりツイートが肯定的か否定的か中立的かを判断することを意味します。


私は、ソーシャル メディアのテキスト用に特別に設計された、 VADER (Valence Aware Dictionary and Sentiment Reasoner) という人気のライブラリを使用しました。これは、スラングや絵文字などの非公式な言語の処理に最適です。


以下のコードスニペットはVADERを使用して感情分析を実行します。

 from vaderSentiment.vaderSentiment import SentimentIntensityAnalyzer analyzer = SentimentIntensityAnalyzer() def get_sentiment(text): sentiment = analyzer.polarity_scores(text) return sentiment['compound'] df_clean['sentiment'] = df_clean['description'].apply(get_sentiment) df_clean.head()

ステップ5: 感情分布の分析

感情スコアが計算されると、分布を分析してツイートが平均してどの程度肯定的または否定的であるかを確認できます。これにより、特定のトピックまたはイベントに関する全体的な世間の感情についての洞察が得られます。ヒストグラムまたはワードクラウドを使用して感情分布を視覚化し、主要な感情を識別することもできます。


このグラフを見ると、感情の広がりがポジティブ、ネガティブ、または中立のいずれに傾いているかがよくわかります。この場合、中立的なツイートが頻繁に見られます。


ステップ6: 感情とエンゲージメントの相関関係

各ツイートの感情スコアがわかったので、次のステップは、感情と「いいね!」やリポストなどのエンゲージメント指標の間に相関関係があるかどうかを調べることです。ソーシャル メディア分析では、肯定的な感情が高まればエンゲージメントも高まる (「いいね!」やリポストが増える) と予想されます。しかし、本当にそうなのでしょうか?


これを調べるために、感情スコアとエンゲージメント指標の相関関係を計算すると、次のようになります。

Correlation between sentiment and likes: 0.022806738610786123

Correlation between sentiment and reposts: 0.008885789875330416


私のデータ分析から得られた相関値が弱いことを考えると、感情とエンゲージメントの間には強いつながりがないことがわかります。感情と「いいね!」の相関は 0.02 で、感情とリポストの相関はわずか 0.008 でした。これらの値は、「いいね!」やリポストなどのエンゲージメント指標がツイートの感情に大きく影響されないことを示唆しています。

エンゲージメントにおける感情の役割を再考する

感情とエンゲージメントの相関関係が弱いことは、他の要因が影響していることを示しています。感情分析は世論を理解するのに役立ちますが、エンゲージメントは次のような追加の要因によって左右される可能性があります。


  • コンテンツの関連性: トレンドのトピックは、感情に関係なく、より多くのエンゲージメントを生み出す傾向があります。
  • ユーザーの影響力: 人気のあるアカウントは、ツイートの感情に関係なく、エンゲージメントが高くなる傾向があります。
  • タイミング: ライブイベント中やピーク時に投稿されたツイートは、注目を集める可能性が高くなります。


感情分析は、人々がトピックについてどう感じているかを理解するための貴重なツールですが、エンゲージメントを予測する信頼できるツールであるとは限りません。ユーザーの行動についてより深い洞察を得るには、コンテンツのタイミング、関連性、ユーザーの影響など、他の要素を考慮することが不可欠です。