|
# 繁體中文情緒分類: 負面(0)、正面(1) |
|
|
|
依據ckiplab/albert預訓練模型微調。 |
|
|
|
# 使用範例: |
|
|
|
from transformers import AutoTokenizer, AutoModelForSequenceClassification |
|
tokenizer = AutoTokenizer.from_pretrained("Cheng-Lung/bert-sentiment") |
|
model = AutoModelForSequenceClassification.from_pretrained("Cheng-Lung/bert-sentiment") |
|
|
|
## Pediction |
|
target_names=['Negative','Positive'] |
|
max_length = 200 # 最多字數 若超出模型訓練時的字數,以模型最大字數為依據 |
|
def get_sentiment_proba(text): |
|
# prepare our text into tokenized sequence |
|
inputs = tokenizer(text, padding=True, truncation=True, max_length=max_length, return_tensors="pt") |
|
# perform inference to our model |
|
outputs = model(**inputs) |
|
# get output probabilities by doing softmax |
|
probs = outputs[0].softmax(1) |
|
|
|
response = {'Negative': round(float(probs[0, 0]), 2), 'Positive': round(float(probs[0, 1]), 2)} |
|
# executing argmax function to get the candidate label |
|
#return probs.argmax() |
|
return response |
|
|
|
get_sentiment_proba('不喜歡這款產品') |