Spaces:
Sleeping
Sleeping
import numpy as np | |
import torch | |
import streamlit as st | |
from transformers import BertTokenizer | |
from transformers import BertForSequenceClassification | |
from sklearn.preprocessing import LabelEncoder | |
from keras.utils import pad_sequences | |
from torch.utils.data import TensorDataset, DataLoader, RandomSampler, SequentialSampler | |
st.markdown("### Hello, world!") | |
st.markdown("<img width=200px src='https://rozetked.me/images/uploads/dwoilp3BVjlE.jpg'>", unsafe_allow_html=True) | |
# ^-- можно показывать пользователю текст, картинки, ограниченное подмножество html - всё как в jupyter | |
text = st.text_area("TEXT HERE") | |
# ^-- показать текстовое поле. В поле text лежит строка, которая находится там в данный момент | |
tokenizer = BertTokenizer.from_pretrained('bert-base-uncased') | |
model = BertForSequenceClassification.from_pretrained | |
"bert-base-uncased", # Use the 12-layer BERT model, with an uncased vocab. | |
num_labels = 44,) | |
MAX_LEN = 64 | |
tokens = tokenizer.encode_plus(text, add_special_tokens=True, max_length=MAX_LEN, truncation=True, padding='max_length') | |
input_ids = torch.tensor(tokens['input_ids']).unsqueeze(0) | |
attention_mask = torch.tensor(tokens['attention_mask']).unsqueeze(0) | |
logits = model(input_ids, attention_mask)[0] | |
probs = torch.softmax(logits, dim=1) | |
predicted_category = torch.argmax(probs).item() | |
# from transformers import pipeline | |
# pipe = pipeline("ner", "Davlan/distilbert-base-multilingual-cased-ner-hrl") | |
raw_predictions = predicted_category#le.inverse_transform(prediction)#pipe(text) | |
# тут уже знакомый вам код с huggingface.transformers -- его можно заменить на что угодно от fairseq до catboost | |
st.markdown(f"{raw_predictions}") | |
# выводим результаты модели в текстовое поле, на потеху пользователю |