🎯 項目目標:
- 輸入一段藏文短句。
- 自動分析這句話的情感傾向:積極(正面)/消極(負面)/中立。
🔍 技術原理簡介
情感分析是什么?
情感分析(Sentiment Analysis)是自然語言處理的一個重要應用,目的是自動識別和提取文本中的情感傾向。
常用的情感分析方法:
-
基于規則的方法:
使用情感詞典,對句子進行簡單判斷(適合初學)。 -
基于傳統機器學習的方法:
使用分類算法,如支持向量機(SVM),通過特征工程進行分類。 -
基于深度學習的方法:
使用神經網絡模型(如BERT、LSTM),自動學習文本的深層次語義,準確度更高。
我們本次項目使用簡單易上手的規則詞典方法進行演示,適合初學者理解和操作。
🛠? 一、項目環境準備
1?? Python安裝(已安裝可跳過)
- 推薦安裝Python 3.8以上版本。
2?? 安裝所需庫
在命令行輸入:
pip install pybo
📂 二、創建項目文件結構
創建項目文件夾sentiment_analysis
,并準備以下文件:
sentiment_analysis/
│
├── sentiment_analyzer.py
├── sentiment_dict.txt
└── test_sentences.txt
📝 三、準備數據與情感詞典
1?? 創建藏文情感詞典(sentiment_dict.txt)
藏文情感詞典示例如下:
# 積極詞 Positive(每行:詞 空格 正面)
??????? positive
????????? positive
??????? positive# 消極詞 Negative(每行:詞 空格 負面)
???? negative
?????? negative
???????? negative
????? negative
說明:
- 文件用UTF-8格式保存。
- 每行一個藏文詞匯,后面跟情感標簽(positive 或 negative)。
中文釋義對應如下:
# 積極詞 Positive
喜歡
快樂
舒服# 消極詞 Negative
壞的
壞人
壞的
歪曲
2?? 創建測試短句(test_sentences.txt)
例如:
?????????????
???????????????????????
????????????
中文分別為:
我愛快樂。
他不高興。
就這樣。
💻 四、編寫情感分析代碼(sentiment_analyzer.py)
打開sentiment_analyzer.py
,輸入以下代碼:
from pybo import WordTokenizer# 步驟1:加載情感詞典
def load_sentiment_dict(filepath):sentiment_dict = {}with open(filepath, "r", encoding="utf-8") as f:for line in f:line = line.strip()if line and not line.startswith("#"):word, sentiment = line.split()sentiment_dict[word] = sentimentreturn sentiment_dict# 步驟2:分析句子情感
def analyze_sentiment(sentence, sentiment_dict, tokenizer):tokens = tokenizer.tokenize(sentence)print("調試:分詞結果 =", [token.text for token in tokens])positive_count = 0negative_count = 0for token in tokens:sentiment = sentiment_dict.get(token.text, "neutral")if sentiment == "positive":positive_count += 1elif sentiment == "negative":negative_count += 1# 判斷整體情感if positive_count > negative_count:return "積極 (positive)"elif negative_count > positive_count:return "消極 (negative)"else:return "中立 (neutral)"# 主程序運行
if __name__ == "__main__":tokenizer = WordTokenizer()sentiment_dict = load_sentiment_dict("sentiment_dict.txt")# 讀取測試句子with open("test_sentences.txt", "r", encoding="utf-8") as f:sentences = f.readlines()print("藏文情感分析結果:")for sentence in sentences:sentence = sentence.strip()sentiment_result = analyze_sentiment(sentence, sentiment_dict, tokenizer)print(f"句子:{sentence}")print(f"情感傾向:{sentiment_result}\n")
?? 五、運行程序,查看結果
在命令行中進入你的項目目錄并運行:
python sentiment_analyzer.py
輸出示例:
藏文情感分析結果:
調試:分詞結果 = ['??', '???????', '???', '?']
句子:????????????? #中文:我快樂。
情感傾向:積極 (positive)調試:分詞結果 = ['????', '??????', '????', '???', '?']
句子:?????????????????? #中文:他不高興。
情感傾向:消極 (negative)調試:分詞結果 = ['?????', '???', '???', '?']
句子:???????????? #中文:就這樣。
情感傾向:中立 (neutral)
🧠 原理講解
情感分析步驟(完整流程):
-
數據標注:
人工或半自動對文本數據進行標注情感類別(積極、消極、中立)。 -
文本特征提取:
對文本進行分詞,提取詞匯、語法或語義特征。 -
模型訓練與評估:
- 傳統機器學習模型(如SVM):
- 基于標注數據訓練模型,預測情感類別。
- 深度學習模型(如BERT):
- 利用預訓練模型微調,獲得更精準預測能力。
- 傳統機器學習模型(如SVM):
本文采用詞典方法,簡單直觀,適合零基礎快速理解并掌握情感分析的概念。
📌 常見問題與解決辦法
問題 | 原因 | 解決方法 |
---|---|---|
未識別情感 | 情感詞典覆蓋不足 | 擴充情感詞典,增加積極和消極詞匯 |
中文亂碼或文件讀取錯誤 | 文件未用UTF-8編碼保存 | 用記事本或其他編輯器重開并以UTF-8格式保存 |
🚀 拓展練習(推薦):
- 嘗試添加更多藏文句子到測試文件中,豐富你的情感分析結果。
- 擴展情感詞典,增加詞匯數量,提高準確性。
- 探索使用簡單機器學習工具,如
sklearn
的SVM分類器進一步提升性能。
🎉 恭喜你!你已經完成了藏文情感分析器項目的基礎實現。
未來可以進一步探索深度學習模型來提升精度,這個初級項目可以是深入學習人工智能的一個起點!