【Python】テキストの感情スコアを算出したい
【目的】テキストの感情スコアを算出したい
【タスク】
- import tkinter as tk: tkinterをインポートしています。これはPythonの標準ライブラリで、グラフィカルユーザインタフェース(GUI)を作成するために使用されます。
- from tkinter import messagebox: tkinterのmessageboxモジュールをインポートしています。これはユーザにメッセージを表示するために使用されます。
- from tkinter import filedialog: tkinterのfiledialogモジュールをインポートしています。これはユーザがファイルを選択するために使用されます。
- from textblob import TextBlob: textblobのTextBlobクラスをインポートしています。これはテキストの感情分析を行うために使用されます。
- def analyze_sentiment():: analyze_sentimentという関数を定義しています。この関数はテキストの感情分析を行います。
- file_path = filedialog.askopenfilename(title="Select a text file", filetypes=(("Text Files", "*.txt"), ("All Files", "*.*"))): ユーザにテキストファイルを選択するように求めます。選択されたファイルのパスがfile_pathに格納されます。
- with open(file_path, "r") as file:: file_pathで指定されたテキストファイルを読み込みモードで開きます。
- text = file.read(): テキストファイルの内容をすべて読み込みます。
- text_blob = TextBlob(text): textを使ってTextBlobオブジェクトを作成します。
- sentiment = text_blob.sentiment.polarity: text_blobからポラリティ値を取得します。これはテキストの感情スコアです。
- if sentiment > 0:: ポラリティ値が正の数の場合、「Positive」という文字列をsentiment_resultに格納します。
- elif sentiment < 0:: ポラリティ値が負の数の場合、「Negative」という文字列をsentiment_resultに格納します。
- else:: ポラリティ値が0の場合、「Neutral」という文字列をsentiment_resultに格納します。
- sentiment_result = "Sentiment: {0:.2f} ({1})".format(sentiment, sentiment_string): sentiment_stringを使って、感情スコアに対する説明文を作成します。
- messagebox.showinfo("Sentiment Analysis Result", sentiment_result): 感情分析の結果をユーザに表示します。
- root = tk.Tk(): tkinterのTkクラスを使って、メインウィンドウを作成します。
- root.title("Sentiment Analysis"): メインウィンドウのタイトルを設定します。
- root.geometry("300x200"): メインウィンドウのサイズを設定します。
- analyze_button = tk.Button(root, text="Analyze Sentiment", command=analyze_sentiment): analyze_sentiment関数を実行するボタンを作成します。
- analyze_button.pack(): ボタンをメインウィンドウに配置します。
- root.mainloop(): メインウィンドウを実行します。
【コード】
Sentiment_Analysis.ipynb
【結果】
サンプルテキストを読み込み,感情スコアを算出することに成功した.