Spaces:
Runtime error
Runtime error
| import gradio as gr | |
| import torch | |
| from src.data.preprocessing_utils import DataPreprocessor | |
| MODEL_FILEPATH = 'models/nnet/nnet.pt' | |
| device = 'cuda' if torch.cuda.is_available() else 'cpu' | |
| with open(MODEL_FILEPATH, 'rb') as file: | |
| clf = torch.load(file, map_location=device) | |
| preprocessor = DataPreprocessor() | |
| strings = { | |
| 'nationality': 'Есть предпочтения по национальности', | |
| 'families': 'Есть предпочтение семьям', | |
| 'sex': 'Есть предпочтения по полу' | |
| } | |
| examples = [ | |
| '''Просьба посредников не беспокоить. Ищем ОДНУ ДЕВУШКУ. | |
| Сдаётся в аренду на длительный срок светлая и уютная квартира - студия | |
| общей площадью 33м2, находящаяся на 4м этаже 5и этажного теплого кирпичного дома. Современный ремонт! | |
| Рядом в пешей доступности парк Красная Пресня (5 мин)/ Красногвардейские Пруды (2 мин)/ | |
| Москва-Сити (10 мин)! Магазины/кофейни/рестораны! 10 мин на машине до любой точки в центре города! | |
| В квартире есть вся необходимая для проживания мебель и техника. | |
| Строго без животных, строго Славян. Просмотр в любое время - ключи на руках. | |
| ''', | |
| '''Сдам на длительный срок семейной паре, только с гражданством РФ. | |
| Квартира после косметического ремонта. Без мебели. | |
| Есть кухонная мебель и мебель в ванной комнате. | |
| Бытовая техника для проживания присутствует. | |
| Оплата = аренда + счётчики (свет, вода). | |
| ''', | |
| '''В современном доме. Собственник без комиссии. | |
| Закрытая территория. Доступ через охрану. | |
| М Прокшино 10 мин пешком. | |
| Без детей и животных. | |
| Возможно без залога. | |
| Счетчики и интернет включены в стоимость | |
| ''' | |
| ] | |
| def make_output_string(labels): | |
| output_list = [] | |
| for label in strings.keys(): | |
| if labels[label]: | |
| output_list.append(strings[label]) | |
| if output_list: | |
| output_str = ', '.join(output_list).capitalize() | |
| else: | |
| output_str = 'Нет особенностей' | |
| return output_str | |
| def predict_label(text): | |
| preprocessed_text = preprocessor.preprocess_texts([text]) | |
| print(preprocessed_text) | |
| if preprocessed_text == [[]]: | |
| return 'Введите текст объявления!' | |
| labels = clf.predict_labels(preprocessed_text) | |
| output_str = make_output_string(labels) | |
| return output_str | |
| demo = gr.Interface(fn=predict_label, inputs=[gr.Text(label="Текст объявления", lines=5)], | |
| outputs=[gr.Textbox(label="Особенности объявления")], | |
| examples=examples) | |
| demo.launch() | |