Spaces:
Runtime error
Runtime error
app changed
Browse files
app.py
CHANGED
@@ -22,6 +22,9 @@ import json
|
|
22 |
import gensim
|
23 |
import torch.nn.functional as F
|
24 |
|
|
|
|
|
|
|
25 |
|
26 |
st.title('10-я неделя DS. Классификация отзывов, определение токсичности и генерация текста')
|
27 |
|
@@ -57,8 +60,6 @@ if page == "Классификация отзывов":
|
|
57 |
vocab_to_int = json.load(f)
|
58 |
|
59 |
word2vec_model = gensim.models.Word2Vec.load("lstm/word2vec.model")
|
60 |
-
|
61 |
-
stop_words = ['и', 'в', 'во', 'не', 'что', 'он', 'на', 'я', 'с', 'со', 'как', 'а', 'то', 'все', 'она', 'так', 'его', 'но', 'да', 'ты', 'к', 'у', 'же', 'вы', 'за', 'бы', 'по', 'только', 'ее', 'мне', 'было', 'вот', 'от', 'меня', 'еще', 'нет', 'о', 'из', 'ему', 'теперь', 'когда', 'даже', 'ну', 'вдруг', 'ли', 'если', 'уже', 'или', 'ни', 'быть', 'был', 'него', 'до', 'вас', 'нибудь', 'опять', 'уж', 'вам', 'ведь', 'там', 'потом', 'себя', 'ничего', 'ей', 'может', 'они', 'тут', 'где', 'есть', 'надо', 'ней', 'для', 'мы', 'тебя', 'их', 'чем', 'была', 'сам', 'чтоб', 'без', 'будто', 'чего', 'раз', 'тоже', 'себе', 'под', 'будет', 'ж', 'тогда', 'кто', 'этот', 'того', 'потому', 'этого', 'какой', 'совсем', 'ним', 'здесь', 'этом', 'один', 'почти', 'мой', 'тем', 'чтобы', 'нее', 'сейчас', 'были', 'куда', 'зачем', 'всех', 'никогда', 'можно', 'при', 'наконец', 'два', 'об', 'другой', 'хоть', 'после', 'над', 'больше', 'тот', 'через', 'эти', 'нас', 'про', 'всего', 'них', 'какая', 'много', 'разве', 'три', 'эту', 'моя', 'впрочем', 'хорошо', 'свою', 'этой', 'перед', 'иногда', 'лучше', 'чуть', 'том', 'нельзя', 'такой', 'им', 'более', 'всегда', 'конечно', 'всю', 'между']
|
62 |
|
63 |
def data_preprocessing(text: str) -> str:
|
64 |
text = text.lower()
|
@@ -136,20 +137,15 @@ if page == "Классификация отзывов":
|
|
136 |
model_lstm.load_state_dict(torch.load("lstm/lstm_model.pth"))
|
137 |
model_lstm.eval()
|
138 |
|
139 |
-
|
140 |
-
if '<UNK>' not in vocab_to_int:
|
141 |
-
vocab_to_int['<UNK>'] = len(vocab_to_int) # Присвоение нового уникального индекса
|
142 |
-
|
143 |
-
# Проверка и добавление токена <PAD>, если он отсутствует
|
144 |
-
if '<PAD>' not in vocab_to_int:
|
145 |
-
vocab_to_int['<PAD>'] = len(vocab_to_int) # Присвоение нового уникального индекса
|
146 |
-
|
147 |
-
def text_to_vector(text, max_length=SEQ_LEN):
|
148 |
words = text.split()
|
149 |
-
vector = [vocab_to_int.get(word,
|
150 |
-
vector
|
151 |
-
|
|
|
|
|
152 |
|
|
|
153 |
def classify_review_lstm(review):
|
154 |
# Векторизация отзыва
|
155 |
review_vector = text_to_vector(review)
|
@@ -194,3 +190,4 @@ if page == "Классификация отзывов":
|
|
194 |
# if page == "Генерация текста":
|
195 |
|
196 |
|
|
|
|
22 |
import gensim
|
23 |
import torch.nn.functional as F
|
24 |
|
25 |
+
from nltk.corpus import stopwords
|
26 |
+
stop_words = set(stopwords.words('english'))
|
27 |
+
|
28 |
|
29 |
st.title('10-я неделя DS. Классификация отзывов, определение токсичности и генерация текста')
|
30 |
|
|
|
60 |
vocab_to_int = json.load(f)
|
61 |
|
62 |
word2vec_model = gensim.models.Word2Vec.load("lstm/word2vec.model")
|
|
|
|
|
63 |
|
64 |
def data_preprocessing(text: str) -> str:
|
65 |
text = text.lower()
|
|
|
137 |
model_lstm.load_state_dict(torch.load("lstm/lstm_model.pth"))
|
138 |
model_lstm.eval()
|
139 |
|
140 |
+
def text_to_vector(text, max_len=SEQ_LEN, unknown_token_id=VOCAB_SIZE-1):
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
141 |
words = text.split()
|
142 |
+
vector = [vocab_to_int.get(word, unknown_token_id) for word in words]
|
143 |
+
vector = vector[:max_len] # Обрезка, если вектор слишком длинный
|
144 |
+
while len(vector) < max_len: # Добавление паддинга, если вектор слишком короткий
|
145 |
+
vector.append(0)
|
146 |
+
return np.array(vector, dtype=np.int64) # Указываем явный тип данных
|
147 |
|
148 |
+
|
149 |
def classify_review_lstm(review):
|
150 |
# Векторизация отзыва
|
151 |
review_vector = text_to_vector(review)
|
|
|
190 |
# if page == "Генерация текста":
|
191 |
|
192 |
|
193 |
+
|