Bert Sentiment Analisis Indo
模型概述
該模型經過微調,專門用於印尼語文本的情感分析任務,能夠準確識別文本中的情感傾向。
模型特點
高準確率
在評估數據集上取得了0.91的準確率,正面情感分類的F1分數達到0.93。
印尼語優化
專門針對印尼語文本進行微調,能夠更好地理解印尼語的語言特點。
高效推理
基於BERT架構,能夠在合理時間內完成文本分類任務。
模型能力
印尼語文本情感分析
二元情感分類(正面/負面)
自然語言處理
使用案例
社交媒體分析
評論情感分析
分析社交媒體上用戶評論的情感傾向
準確識別正面和負面評論
客戶反饋分析
產品評價分類
自動分類電商平臺上的產品評價
幫助企業快速瞭解客戶滿意度
🚀 基於BERT的印尼語情感分析模型
本倉庫包含一個經過微調的BERT模型,用於進行情感分析。該模型經過訓練,可將文本分為兩種情感類別:0(負面)和1(正面)。以下是該模型的性能和訓練細節總結。
🚀 快速開始
安裝依賴
確保你已經安裝了必要的庫:
pip install transformers torch
加載模型
你可以使用transformers
庫加載經過微調的BERT模型:
from transformers import BertForSequenceClassification, BertTokenizer
## 加載經過微調的模型和分詞器
model = BertForSequenceClassification.from_pretrained("path_to_model")
tokenizer = BertTokenizer.from_pretrained("path_to_tokenizer")
預處理和預測
對你的輸入文本進行預處理並進行預測:
# prompt: use this model to predict a sentence with output sentiment negatif or positif
from transformers import BertTokenizer, BertForSequenceClassification
import torch
# 加載保存的模型和分詞器
model_path = 'bibrani/bert-sentiment-analisis-indo'
tokenizer = BertTokenizer.from_pretrained(model_path)
model = BertForSequenceClassification.from_pretrained(model_path)
# 設置設備
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model.to(device)
print(device)
def predict_sentiment(text):
"""預測給定文本的情感。
參數:
text (str): 輸入文本。
返回:
str: "Negative sentiment" 或 "Positive sentiment"。
"""
# 對輸入文本進行分詞
inputs = tokenizer(text, padding="max_length", truncation=True, max_length=512, return_tensors="pt")
# 將輸入移動到設備上
input_ids = inputs.input_ids.to(device)
attention_mask = inputs.attention_mask.to(device)
# 進行推理
with torch.no_grad():
outputs = model(input_ids, attention_mask=attention_mask)
logits = outputs.logits
# 獲取預測的類別
predicted_class = torch.argmax(logits, dim=1).item()
if predicted_class == 0:
return "Negative sentiment", inputs
else:
return "Positive sentiment", inputs
# 示例用法
text_to_predict = "jadi cerita nya saya sedang ingin makan spaghetti dengan meatball yang kalau menurut ekspektasi saya adalah bakso yang terbuat dari cingcang yang biasa digunakan di menu pasta , setelah sampai , ternyata bakso yang digunakan adalah bakso olahan yang biasa dipakai di tukang bakso , bahkan bentuk nya tidak bulat"
sentiment = predict_sentiment(text_to_predict)
print(f"Text: {text_to_predict}")
print(f"Sentiment: {sentiment}")
✨ 主要特性
該模型能夠對印尼語文本進行情感分析,將其分類為積極或消極情感,在評估數據集上取得了較好的性能。
📦 安裝指南
確保你已經安裝了必要的庫:
pip install transformers torch
💻 使用示例
基礎用法
from transformers import BertForSequenceClassification, BertTokenizer
## 加載經過微調的模型和分詞器
model = BertForSequenceClassification.from_pretrained("path_to_model")
tokenizer = BertTokenizer.from_pretrained("path_to_tokenizer")
高級用法
# prompt: use this model to predict a sentence with output sentiment negatif or positif
from transformers import BertTokenizer, BertForSequenceClassification
import torch
# 加載保存的模型和分詞器
model_path = 'bibrani/bert-sentiment-analisis-indo'
tokenizer = BertTokenizer.from_pretrained(model_path)
model = BertForSequenceClassification.from_pretrained(model_path)
# 設置設備
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model.to(device)
print(device)
def predict_sentiment(text):
"""預測給定文本的情感。
參數:
text (str): 輸入文本。
返回:
str: "Negative sentiment" 或 "Positive sentiment"。
"""
# 對輸入文本進行分詞
inputs = tokenizer(text, padding="max_length", truncation=True, max_length=512, return_tensors="pt")
# 將輸入移動到設備上
input_ids = inputs.input_ids.to(device)
attention_mask = inputs.attention_mask.to(device)
# 進行推理
with torch.no_grad():
outputs = model(input_ids, attention_mask=attention_mask)
logits = outputs.logits
# 獲取預測的類別
predicted_class = torch.argmax(logits, dim=1).item()
if predicted_class == 0:
return "Negative sentiment", inputs
else:
return "Positive sentiment", inputs
# 示例用法
text_to_predict = "jadi cerita nya saya sedang ingin makan spaghetti dengan meatball yang kalau menurut ekspektasi saya adalah bakso yang terbuat dari cingcang yang biasa digunakan di menu pasta , setelah sampai , ternyata bakso yang digunakan adalah bakso olahan yang biasa dipakai di tukang bakso , bahkan bentuk nya tidak bulat"
sentiment = predict_sentiment(text_to_predict)
print(f"Text: {text_to_predict}")
print(f"Sentiment: {sentiment}")
📚 詳細文檔
模型性能總結
該模型在評估數據集上取得了以下性能指標:
類別 | 精確率 | 召回率 | F1分數 | 樣本數 |
---|---|---|---|---|
0 | 0.88 | 0.84 | 0.86 | 799 |
1 | 0.92 | 0.94 | 0.93 | 1467 |
準確率:0.91
宏平均 | 加權平均 |
---|---|
精確率 = 0.90 召回率 = 0.89 F1分數 = 0.90 | 精確率 = 0.90 召回率 = 0.91 F1分數 = 0.90 |
訓練詳情
屬性 | 詳情 |
---|---|
模型架構 | BERT(來自Transformer的雙向編碼器表示) |
任務 | 情感分析(二分類) |
訓練輪數 | 5 |
硬件 | NVIDIA A100 GPU |
結果解釋
類別0:表示負面情感。 類別1:表示正面情感。
該模型在兩個類別上都表現出色,對於正面情感(類別1)的精確率和召回率略高。
🔧 技術細節
該模型基於BERT架構,通過在特定的印尼語情感分析數據集上進行5輪訓練得到。使用NVIDIA A100 GPU進行加速訓練,最終在評估數據集上取得了較好的性能。
📄 許可證
本項目採用MIT許可證。
Distilbert Base Uncased Finetuned Sst 2 English
Apache-2.0
基於DistilBERT-base-uncased在SST-2情感分析數據集上微調的文本分類模型,準確率91.3%
文本分類 英語
D
distilbert
5.2M
746
Xlm Roberta Base Language Detection
MIT
基於XLM-RoBERTa的多語言檢測模型,支持20種語言的文本分類
文本分類
Transformers 支持多種語言

X
papluca
2.7M
333
Roberta Hate Speech Dynabench R4 Target
該模型通過動態生成數據集來改進在線仇恨檢測,專注於從最差案例中學習以提高檢測效果。
文本分類
Transformers 英語

R
facebook
2.0M
80
Bert Base Multilingual Uncased Sentiment
MIT
基於bert-base-multilingual-uncased微調的多語言情感分析模型,支持6種語言的商品評論情感分析
文本分類 支持多種語言
B
nlptown
1.8M
371
Emotion English Distilroberta Base
基於DistilRoBERTa-base微調的英文文本情感分類模型,可預測埃克曼六種基本情緒及中性類別。
文本分類
Transformers 英語

E
j-hartmann
1.1M
402
Robertuito Sentiment Analysis
基於RoBERTuito的西班牙語推文情感分析模型,支持POS(積極)/NEG(消極)/NEU(中性)三類情感分類
文本分類 西班牙語
R
pysentimiento
1.0M
88
Finbert Tone
FinBERT是一款基於金融通訊文本預訓練的BERT模型,專注於金融自然語言處理領域。finbert-tone是其微調版本,用於金融情感分析任務。
文本分類
Transformers 英語

F
yiyanghkust
998.46k
178
Roberta Base Go Emotions
MIT
基於RoBERTa-base的多標籤情感分類模型,在go_emotions數據集上訓練,支持28種情感標籤識別。
文本分類
Transformers 英語

R
SamLowe
848.12k
565
Xlm Emo T
XLM-EMO是一個基於XLM-T模型微調的多語言情感分析模型,支持19種語言,專門針對社交媒體文本的情感預測。
文本分類
Transformers 其他

X
MilaNLProc
692.30k
7
Deberta V3 Base Mnli Fever Anli
MIT
基於MultiNLI、Fever-NLI和ANLI數據集訓練的DeBERTa-v3模型,擅長零樣本分類和自然語言推理任務
文本分類
Transformers 英語

D
MoritzLaurer
613.93k
204
精選推薦AI模型
Llama 3 Typhoon V1.5x 8b Instruct
專為泰語設計的80億參數指令模型,性能媲美GPT-3.5-turbo,優化了應用場景、檢索增強生成、受限生成和推理任務
大型語言模型
Transformers 支持多種語言

L
scb10x
3,269
16
Cadet Tiny
Openrail
Cadet-Tiny是一個基於SODA數據集訓練的超小型對話模型,專為邊緣設備推理設計,體積僅為Cosmo-3B模型的2%左右。
對話系統
Transformers 英語

C
ToddGoldfarb
2,691
6
Roberta Base Chinese Extractive Qa
基於RoBERTa架構的中文抽取式問答模型,適用於從給定文本中提取答案的任務。
問答系統 中文
R
uer
2,694
98