alizhgir commited on
Commit
ddcb237
1 Parent(s): 760a301

app changed

Browse files
Files changed (1) hide show
  1. app.py +11 -14
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
- # Проверка и добавление токена <UNK>, если он отсутствует
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, vocab_to_int["<UNK>"]) for word in words][:max_length]
150
- vector += [vocab_to_int["<PAD>"]] * (max_length - len(vector)) # Дополнение вектора
151
- return np.array(vector, dtype=np.int64) # Убедитесь, что тип данных int64
 
 
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
+