- vừa được xem lúc

Phân tích cảm xúc dựa trên BERT và dùng PyTorch

0 0 41

Người đăng: Do Nhu Vy

Theo Viblo Asia

Chọn cấu hình thư viện

Ta có câu lệnh

pip3 install torch==1.9.0+cu111 torchvision==0.10.0+cu111 torchaudio===0.9.0 -f https://download.pytorch.org/whl/torch_stable.html

Khi đưa vào colab, hoặc Jupyter Notebook, bạn phải nhớ có dấu ! ở phía trước, tức là

!pip3 install torch==1.9.0+cu111 torchvision==0.10.0+cu111 torchaudio===0.9.0 -f https://download.pytorch.org/whl/torch_stable.html

Cài đặt các thư viện khác ngoài PyTorch

!pip install transformers requests beautifulsoup4 pandas numpy

Bắt đầu viết chương trình

from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch
import requests
from bs4 import BeautifulSoup
import re tokenizer = AutoTokenizer.from_pretrained('nlptown/bert-base-multilingual-uncased-sentiment')
model = AutoModelForSequenceClassification.from_pretrained('nlptown/bert-base-multilingual-uncased-sentiment')

Mã hóa và tính toán (lượng hóa) cảm xúc

tokens = tokenizer.encode('I hated this, absolutely the worst', return_tensors='pt')
tokens

Kết quả

tensor([[ 101, 151, 39487, 10163, 10372, 117, 35925, 10563, 10103, 43060, 102]])

tokenizer.decode(tokens[0])
result = model(tokens)
result

Kết quả

SequenceClassifierOutput([('logits', tensor([[ 4.8750, 1.7880, -0.8356, -3.0027, -2.0727]], grad_fn=<AddmmBackward>))])
torch.argmax(result.logits)

Kết quả

tensor(0)
result.logits

trả về kết quả

tensor([[ 4.8750, 1.7880, -0.8356, -3.0027, -2.0727]], grad_fn=<AddmmBackward>)
int(torch.argmax(result.logits))+1

Giá trị trả về là 1. Đây là giá trị của cảm xúc Tiêu cực.

Thử nghiệm với một văn bản khác:

tokens2 = tokenizer.encode('This is amazing, I loved it, great!', return_tensors='pt')
tokens2
result2 = model(tokens2)
int(torch.argmax(result2.logits))+1

Giá trị trả về là 5. Đây là giá trị của cảm xúc Tích cực.

Thử nghiệm thêm nữa với một văn bản khác, để xem giá trị cảm xúc trả về là bao nhiêu?

tokens3 = tokenizer.encode('It was good but could been better.', return_tensors='pt')
tokens3
result3 = model(tokens3)
int(torch.argmax(result3.logits))+1

Giá trị trả về là 3. Đây là giá trị của cảm xúc Trung lập.

Bài viết được dựa phần lớn từ video tutorial https://www.youtube.com/watch?v=szczpgOEdXs

Bình luận

Bài viết tương tự

- vừa được xem lúc

Thao tác với File trong Python

Python cung cấp các chức năng cơ bản và phương thức cần thiết để thao tác các file. Bài viết này tôi xin giới thiệu những thao tác cơ bản nhất với file trong Python.

0 0 63

- vừa được xem lúc

Tập tành crawl dữ liệu với Scrapy Framework

Lời mở đầu. Chào mọi người, mấy hôm nay mình có tìm hiểu được 1 chút về Scrapy nên muốn viết vài dòng để xem mình đã học được những gì và làm 1 demo nho nhỏ.

0 0 166

- vừa được xem lúc

Sử dụng Misoca API (oauth2) với Python

Với bài viết này giúp chúng ta có thể nắm được. ・Tìm hiểu cách xử lý API misoca bằng Python.

0 0 49

- vừa được xem lúc

[Series Pandas DataFrame] Phân tích dữ liệu cùng Pandas (Phần 3)

Tiếp tục phần 2 của series Pandas DataFrame nào. Let's go!!. Ở phần trước, các bạn đã biết được cách lấy dữ liệu một row hoặc column trong Pandas DataFame rồi phải không nào. 6 Hoc.

0 0 63

- vừa được xem lúc

Lập trình socket bằng Python

Socket là gì. Một chức năng khác của socket là giúp các tầng TCP hoặc TCP Layer định danh ứng dụng mà dữ liệu sẽ được gửi tới thông qua sự ràng buộc với một cổng port (thể hiện là một con số cụ thể), từ đó tiến hành kết nối giữa client và server.

0 0 79

- vừa được xem lúc

[Series Pandas DataFrame] Phân tích dữ liệu cùng Pandas (Phần 2)

Nào, chúng ta cùng đến với phần 2 của series Pandas DataFrame. Truy xuất Labels và Data. Bạn đã biết cách khởi tạo 1 DataFrame của mình, và giờ bạn có thể truy xuất thông tin từ đó. Với Pandas, bạn có thể thực hiện các thao tác sau:.

0 0 95