File size: 3,791 Bytes
0024afc
 
 
 
 
 
 
9d3990e
 
 
 
fbee7a0
9d3990e
8697e07
9d3990e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
0024afc
9d3990e
 
0024afc
 
9d3990e
 
 
 
 
 
 
 
 
 
 
 
 
0024afc
9d3990e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
import streamlit as st


st.write("""
 # Итоги и результаты работы по проекту🔥
""")


st.write("""
 ### Работа с парсингом и формирование датасета:
 \n- **В sitemap мы нашли 90 038 ссылок на страницы с книгами.**
 \n- **Однако в категориях было найдено только 15 411 ссылок на актуальные продукты, доступные для покупки.**
 \n- **Далее, проходясь по каждой ссылке продуктов из категорий, собрали следующие features: \
  "Имя автора", "Название книги", "Описание", "Ссылка на книгу", "Ссылка на обложку". Работа была запущена с двух компьютеров одновремнно (~ 4 часа работы).**
 \n- **Был сформирован первый вариант рабочего датасета.**
 \n- **На следующий день в датасет были добавлены ещё две дополнительные Features: "Жанр книги", "Возрастное ограничение".**
""")

st.write("""
 ### Очистка датасета от всякой нечести:
 \n- **Были удалены все строки с NaN (около 500).**
 \n- **Были также удалены дубли по авторам, аннотациям и названию книг (около 1500-1800).**
 \n- **К векторам аннотаций было применено косинусное сходство — удалены ещё 1200 дубликатов. Граница для удаления стояла на уровне 0.9.**
""")


st.write("""
 ### Процесс тестирования моделей и различных подходов к решению задачи:
""")

st.write("""
 ##### Алиса: 
 \n- **FastText + Embedding Layer.**
 \n- **RuBERT-tiny2, используя аннотации и возрастное ограничение.**
""")

st.write("""
 ##### Тигран:
 \n- **TF-IDF.**
 \n- **RuBERT-tiny2 + Faiss.**
 \n- **Библиотека SentenceTransformers.**
""")

st.write("""
 ##### Руслан: 
 \n- **TF-IDF + SVD до 1000-ой размерности.**
 \n- **Жалкая попытка использовать GloVe.**
 \n- **Doc2Vec + Faiss.**
""")


st.write("""
 ### Пример работы лучшей модели - RuBERT-tiny2:
""")

st.info("""
 ##### Текст запроса: "Интригующий детектив с неожиданной развязкой, приключение и убийства."
 \n- Использование IndexFlatL2 с помощью библиотеки faiss. Данный Индекс вычисляет Евклидово расстояние.
""")

st.image('images/image_bert_1.jpg')

st.info("""
  ##### Текст запроса: "Интригующий детектив с неожиданной развязкой, приключение и убийства."
 \n- Использование cosine_similarity с помощью библиотеки sklearn. Данная мера находит Косинусное сходство.
""")

st.image('images/image_bert_2.jpg')

st.info("""
  ##### Текст запроса: "Интригующий детектив с неожиданной развязкой, приключение и убийства."
 \n- Использование IndexFlatIP с помощью библиотеки faiss. Данный Индекс вычисляет Скалярное произведение векторов.
""")

st.image('images/image_bert_3.jpg')