Reddit AI Trend ReportsはオープンソースのPythonプロジェクトです。Redditコミュニティにおける人工知能(AI)に関する議論の傾向を、ユーザーが自動的に追跡・分析できるように設計されている。このツールは、ユーザーが指定したRedditのサブボードから関連する投稿を取得することができる。そして、内容を要約し、感情分析を行い、これらの投稿に人気のあるキーワードを特定する。最後に、様々なデータ可視化チャートを生成し、AIにおけるホットな話題やコミュニティのセンチメントを視覚的に理解することができます。AI研究者、市場アナリスト、Reddit上のAIトピックに関心のある人に最適なこのツールは、情報収集と分析の効率を効果的に向上させます。
機能一覧
- Redditの投稿をつかむ: ユーザーが指定したRedditサブパネルから(例えば
r/MachineLearning
,r/StableDiffusion
,r/ChatGPT
など)を使って、最新の投稿や人気のある投稿を得ることができる。 - キーワードフィルタリングユーザーが設定したキーワードリストに従ってクロールされた投稿をフィルタリングし、関連性の高いコンテンツだけを残す。
- センチメント分析特定のAIトピックに対するコミュニティの肯定的、否定的、または中立的な態度を決定するために、投稿タイトルとコンテンツの自動センチメント分析。
- 投稿内容の要約ラージ・ランゲージ・モデル(LLM)を使って投稿内容を要約し、投稿の核となるアイデアやメッセージを素早く抽出します。
- 要約のバックエンドとしてOpenAI APIをサポートし、GPT-3.5などのモデルを使用できる。
- 要約バックエンドとしてHugging Faceモデルをサポートし、より多くのオープンソースモデルの使用を可能にする。
- ホットキーワードの特定投稿内容を分析し、Reddit上のAIにおける現在のホットなキーワードやトレンドを自動的に発見・特定します。
- データの可視化:: 利用
LIDA
このライブラリは、様々なデータ可視化チャートを自動的に生成します。これらのチャートには、棒グラフ、折れ線グラフ、散布図、ワードクラウドなどが含まれますが、これらに限定されるわけではありません。 - 結果出力分析結果(生データ、サマリー、センチメントスコアを含む)を CSV または JSON 形式のファイルとして保存します。生成されたチャートは画像ファイルとして保存されます。
ヘルプの使用
Reddit AIトレンド分析ツールは、Pythonベースのコマンドラインツールです。Pythonの基本的な操作方法とコマンドラインの知識が必要です。以下、詳しいインストール手順と使い方、主な機能の流れを紹介します。
ステップ1:環境とインストールの準備
このツールを使用する前に、Python環境を準備し、すべての依存関係をインストールする必要があります。
- クローン・コード・リポジトリ:
まず、ターミナルかコマンドラインツールを開く。そして、以下のコマンドを実行して、プロジェクトのコードをGitHubからローカルコンピューターにクローンする。git clone https://github.com/liyedanpdx/reddit-ai-trends.git
クローニングが完了したら、プロジェクトのあるディレクトリに移動する。
cd reddit-ai-trends
- 仮想環境の作成と起動:
システム上の他のPythonプロジェクトとの衝突を避けるため、このツール用に別のPython仮想環境を作成することを推奨する。
仮想環境を作る:python -m venv venv
仮想環境をアクティブにする:
- macOSまたはLinuxシステム上で:
source venv/bin/activate
- Windowsの場合:
.\venv\Scripts\activate
仮想環境を有効にすると、コマンドラインプロンプトの前に次のようなメッセージが表示されます。
(venv)
仮想環境に入ったことを示す。 - macOSまたはLinuxシステム上で:
- プロジェクトの依存関係をインストールする:
プロジェクトの依存ライブラリはすべてrequirements.txt
ファイルをインストールします。仮想環境をアクティブにした後、以下のコマンドを実行してインストールする:pip install -r requirements.txt
インターネットの速度によっては、この処理に時間がかかる場合があります。
- API認証情報の取得:
このツールを使用するには、投稿データのためのReddit APIと、投稿内容を要約するためのLarge Language Model (LLM) APIにアクセスする必要があります。そのため、以下の認証情報にアクセスする必要があります:- Reddit API 認証情報 (PRAW):
- Redditの開発者ページをご覧ください。
- クリック "
are you a developer? create an app...
"(あなたは開発者ですか?アプリを作ろう...")。 - セレクト "
script
「タイプ - アプリケーション名を記入する(例.
RedditAITrendsTracker
)、説明。 - で "
redirect uri
「を埋めるhttp://localhost:8080
(このURLは実在する必要はないが、必ず記入すること)。 - クリック "
create app
". - 作成に成功すると
client_id
(アプリ名の下にxxxxxxxxxxxxxx
そしてclient_secret
にてsecret
の横)。 - も必要だ。
user_agent
.これは通常、あなたのRedditユーザー名か、あなたのアプリを説明する文字列(例えばRedditAITrendsTracker by u/YourRedditUsername
).
- LLM API認証情報:
このツールはLLMバックエンドとしてOpenAIとHugging Faceをサポートしている。- OpenAI APIキーGPTモデルを要約に使用したい場合は、OpenAIのAPIキーが必要です。
- ハグ顔APIトークンHugging Faceモデルを使用するには、Hugging Face API Tokenが必要です。
- Reddit API 認証情報 (PRAW):
- 環境変数の設定:
プロジェクトのルート・ディレクトリに.env
ファイルを作成する。このファイルに、先ほど取得したAPI認証情報を記入する。この情報はローカルにのみ保存し、公開しないようにしてください。# Reddit API 凭证 REDDIT_CLIENT_ID='你的Reddit Client ID' REDDIT_CLIENT_SECRET='你的Reddit Client Secret' REDDIT_USER_AGENT='你的Reddit User Agent' REDDIT_USERNAME='你的Reddit 用户名' REDDIT_PASSWORD='你的Reddit 密码' # 注意:出于安全考虑,如果不需要发帖等操作,可以不提供密码,只使用匿名访问。 # LLM API 凭证 (选择其中一个或都配置) OPENAI_API_KEY='你的OpenAI API Key' HUGGINGFACE_API_TOKEN='你的Hugging Face API Token'
ステップ 2: 実行して使用する
環境と認証情報を設定したら、次のように実行を開始します。 main.py
スクリプトを使用して分析タスクを実行します。スクリプトはコマンドライン引数で動作を制御する。
- 基本的な実行コマンド:
これを実行する最も簡単な方法は、クロールするRedditサブパネルを指定することです。python main.py --subreddits MachineLearning
このコマンドは
r/MachineLearning
このサブセクションは、デフォルトの数の投稿を取得するが、それらを要約したり、センチメント分析したり、視覚化したりはしない。 - コア機能の動作フロー:
- 投稿の取得とフィルタリング:
利用する--subreddits
パラメータは1つ以上のRedditサブボードを指定し、複数のボードはカンマとスペースで区切らない。
利用する--keywords
パラメータはキーワードに基づいて投稿をフィルタリングすることができます。これらのキーワードを含むタイトルまたはコンテンツを持つ投稿のみが処理されます。複数のキーワードはカンマで区切られます。
利用する--limit
パラメータは、クロールする投稿の数を制限することができます。python main.py --subreddits MachineLearning,StableDiffusion --keywords "LLM,GPT-4,Diffusion" --limit 50
このコマンドは
r/MachineLearning
歌で応えるr/StableDiffusion
LLM"、"GPT-4"、"拡散 "のキーワードを含む投稿を50件までクロールする。 - センチメント分析の実施:
投稿のセンチメント分析を実行するには、単にコマンドを追加します。--sentiment_analysis
パラメーターpython main.py --subreddits ChatGPT --limit 20 --sentiment_analysis
これは、次のような影響を与えるだろう。
r/ChatGPT
の投稿がセンチメント分析され、センチメントスコアが結果に含まれた。 - 投稿内容の要約:
投稿サマリー機能を有効にするには--summarize_posts
パラメータを渡す必要がある。また--llm_backend
使用するLLMバックエンドを指定する (openai
もしかしたらhuggingface
)、そして--model_name
特定のモデルを指定する。- OpenAIで要約する:
python main.py --subreddits MachineLearning --limit 10 --summarize_posts --llm_backend openai --model_name gpt-3.5-turbo --summary_length 50
このコマンドはOpenAIの
gpt-3.5-turbo
各投稿の内容を約50語に要約したモデル。 - ハギング・フェイスでまとめる:
python main.py --subreddits StableDiffusion --limit 10 --summarize_posts --llm_backend huggingface --model_name facebook/bart-large-cnn --summary_length 100
このコマンドは、ハギング・フェイスの
facebook/bart-large-cnn
各投稿の内容を約100ワードに要約したモデル。選択するモデルが要約モデルであることを確認してください。
- OpenAIで要約する:
- データの可視化:
チャートを自動生成するには--visualize_data
パラメータを使用します。このツールはLIDA
ライブラリーは、取り込んだデータに基づいてさまざまなグラフを自動的に生成する。python main.py --subreddits ChatGPT,MachineLearning --limit 100 --visualize_data --output_dir my_results ``` 这个命令不仅会抓取数据,还会生成图表并保存到 `my_results` 文件夹中。
- 出力ディレクトリの指定:
利用する--output_dir
パラメータを使用して、分析結果(CSV、JSONファイル、生成された画像)が保存されるディレクトリを指定します。ディレクトリが存在しない場合は、スクリプトが自動的に作成します。python main.py --subreddits AITech --limit 30 --output_dir AI_Reports --summarize_posts --visualize_data
生成されたファイルはすべて
AI_Reports
フォルダー
- 投稿の取得とフィルタリング:
コマンドラインパラメータ一覧
これはスクリプトがサポートするパラメーターの完全なリストである:
--subreddits
必須。Redditサブボード名のカンマ区切りリスト。--keywords
オプション。投稿をフィルタリングするキーワードのカンマ区切りリスト。--limit
オプション。デフォルトは50。--llm_backend
オプション。LLMバックエンドを選択します。openai
もしかしたらhuggingface
を有効にした場合summarize_posts
それなら、そうする必要がある。--model_name
LLMモデル名。gpt-3.5-turbo
もしかしたらfacebook/bart-large-cnn
.--summary_length
オプション。投稿サマリーの長さ(単語数)。デフォルトは100。--output_dir
オプション。結果とチャートが保存されるディレクトリ、デフォルトはresults
.--sentiment_analysis
オプション。存在する場合、センチメント分析を行う。--summarize_posts
オプション。投稿が存在する場合、それを要約する。--visualize_data
オプション。存在する場合、データ可視化チャートを生成する。
これらのパラメータを組み合わせることで、ニーズに合わせてReddit AIトレンド分析ツールを柔軟に設定し、実行することができます。
アプリケーションシナリオ
- AI研究者がテクノロジー・ホットスポットを追跡
分析することによってr/MachineLearning
もしかしたらr/ArtificialIntelligence
このような掲示板への書き込みによって、研究者は最新の研究結果、人気のアルゴリズム、業界のトレンドなどをすぐに知ることができ、研究の方向性を調整することができる。 - 市場アナリストがAI製品のユーザー心理を把握
市場アナリストは次のことを監視できる。r/ChatGPT
または特定のAI製品コミュニティにセンチメント分析機能を提供し、新機能やアップデート、競合製品に対するユーザーの反応や感情を理解し、製品戦略をサポートするデータを提供する。 - AI関連の話題を探しているコンテンツ制作者
自費出版作家やブロガーは、このツールを使ってReddit上のAIに関するトレンドトピックやキーワードを特定することで、読者に人気のあるコンテンツを作成し、読者数や記事へのインタラクションを増やすことができる。 - AI開発者監視ツールまたはフレームワークコミュニティのフィードバック
開発者は、特定のAIフレームワーク(例:TensorFlow、PyTorch)やツール(例:Stable Diffusion)に関連するサブボードを追跡し、ユーザーが遭遇した問題、機能要求、使用経験を収集し、製品の改善に役立てることができる。
品質保証
- Q: Reddit API認証情報はどのように入手できますか?
A: Redditの開発者向けページをご覧ください。https://www.reddit.com/prefs/apps/
.を作成する。script
"タイプのアプリを作成し、必要なアプリ情報を入力してください。作成に成功すると、ページにはclient_id
歌で応えるclient_secret
.同時に、アプリにuser_agent
. - Q: なぜLLM API Keyが必要なのですか?
A: LLM API KeyはLarge Language Modelling Serviceを呼び出すために使用します。このツールはLLMを使ってRedditの投稿内容を自動的に要約します。OpenAIのGPTモデルやHugging Faceの他のモデルを使用して要約する必要がある場合は、適切なAPI KeyまたはTokenを提供する必要があります。 - Q:ポスト要約でサポートされているLLMモデルは何ですか?
A: バックエンドにOpenAIを選択した場合はgpt-3.5-turbo
など、OpenAIがサポートする様々なモデルを使用することができます。Hugging Faceをバックエンドとして選択した場合、Hugging Faceモデルライブラリから、テキスト要約タスクに適した以下のようなモデルを使用することができます。facebook/bart-large-cnn
.モデル名に基づいてコマンドラインで指定する必要がある。 - Q: Redditのサブセクションやキーワードを複数指定するにはどうすればよいですか?
A: コマンドラインで--subreddits
もしかしたら--keywords
パラメータで複数のサブパネルまたはキーワードをカンマで区切るだけです。,
分離で十分。例--subreddits MachineLearning,ChatGPT
もしかしたら--keywords "LLM,Diffusion"
.カンマの前後にはスペースを入れてはならない。 - Q: Pythonの基本的な知識がないのですが、このツールを使えますか?
A: このツールはPythonベースのコマンドラインスクリプトであり、ユーザーはターミナルまたはコマンドラインで実行する必要があります。そのため、Pythonの基本的な環境設定、仮想環境の操作、コマンドライン引数の使い方などを理解する必要があります。Pythonやコマンドラインの経験が全くない場合、スムーズに使用する前に基本的なことを学ぶ必要があるかもしれません。