Update app.py
Browse files
app.py
CHANGED
@@ -6,15 +6,6 @@ from sklearn.metrics.pairwise import cosine_similarity
|
|
6 |
from sklearn.feature_extraction.text import CountVectorizer
|
7 |
import pandas as pd
|
8 |
import streamlit as st
|
9 |
-
from translate import Translator # Для перевода текста
|
10 |
-
|
11 |
-
# Загрузка модели FastText для определения языка
|
12 |
-
@st.cache_resource
|
13 |
-
def load_language_detection_model():
|
14 |
-
fasttext.util.download_model('lid.176', if_exists='ignore')
|
15 |
-
return fasttext.load_model('lid.176.bin')
|
16 |
-
|
17 |
-
lang_model = load_language_detection_model()
|
18 |
|
19 |
# Загрузка модели FastText для русского языка
|
20 |
@st.cache_resource
|
@@ -27,19 +18,9 @@ ft_model = load_fasttext_model()
|
|
27 |
# Функция для очистки текста от знаков препинания и чисел
|
28 |
def clean_text(text):
|
29 |
text = text.lower() # Приведение к нижнему регистру
|
30 |
-
text = re.sub(r'[^а-яёa-z\s]', '
|
31 |
return text
|
32 |
|
33 |
-
# Функция для определения языка текста
|
34 |
-
def detect_language(text, model):
|
35 |
-
prediction = model.predict(text)[0][0]
|
36 |
-
return prediction.split("__label__")[-1]
|
37 |
-
|
38 |
-
# Функция для перевода текста
|
39 |
-
def translate_to_russian(text):
|
40 |
-
translator = Translator(from_lang="kk", to_lang="ru")
|
41 |
-
return translator.translate(text)
|
42 |
-
|
43 |
# Функция для получения эмбеддинга текста с использованием FastText
|
44 |
def get_fasttext_embedding(text, model):
|
45 |
cleaned_text = clean_text(text)
|
@@ -62,16 +43,9 @@ st.title("Text Similarity Finder using FastText and Jaccard Similarity")
|
|
62 |
# Ввод текста для поиска
|
63 |
text1 = st.text_input("Enter the text to compare:", "Оператор пульта управления")
|
64 |
|
65 |
-
# Определение языка и перевод на русский
|
66 |
-
detected_language = detect_language(text1, lang_model)
|
67 |
-
if detected_language == "kk":
|
68 |
-
st.write("Detected language: Kazakh. Translating to Russian...")
|
69 |
-
text1 = translate_to_russian(text1)
|
70 |
-
st.write(f"Translated text: {text1}")
|
71 |
-
else:
|
72 |
-
st.write("Detected language: Russian or other.")
|
73 |
|
74 |
-
|
|
|
75 |
df = pd.read_csv("nkz_1.csv")
|
76 |
if 'NAME_RU' in df.columns:
|
77 |
# Получение векторов текстов с использованием FastText
|
@@ -81,7 +55,7 @@ if 1 > 0:
|
|
81 |
text1_vector_fasttext = get_fasttext_embedding(text1, ft_model)
|
82 |
|
83 |
# Поиск текстов в колонке NAME_RU, сходство которых с text1 больше заданного порога
|
84 |
-
thresh =
|
85 |
similar_texts_cosine = []
|
86 |
similar_texts_jaccard = []
|
87 |
for index, row in df.iterrows():
|
|
|
6 |
from sklearn.feature_extraction.text import CountVectorizer
|
7 |
import pandas as pd
|
8 |
import streamlit as st
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9 |
|
10 |
# Загрузка модели FastText для русского языка
|
11 |
@st.cache_resource
|
|
|
18 |
# Функция для очистки текста от знаков препинания и чисел
|
19 |
def clean_text(text):
|
20 |
text = text.lower() # Приведение к нижнему регистру
|
21 |
+
text = re.sub(r'[^а-яёa-z\s]', '', text) # Удаление знаков препинания и чисел
|
22 |
return text
|
23 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
24 |
# Функция для получения эмбеддинга текста с использованием FastText
|
25 |
def get_fasttext_embedding(text, model):
|
26 |
cleaned_text = clean_text(text)
|
|
|
43 |
# Ввод текста для поиска
|
44 |
text1 = st.text_input("Enter the text to compare:", "Оператор пульта управления")
|
45 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
46 |
|
47 |
+
|
48 |
+
if 1>0:
|
49 |
df = pd.read_csv("nkz_1.csv")
|
50 |
if 'NAME_RU' in df.columns:
|
51 |
# Получение векторов текстов с использованием FastText
|
|
|
55 |
text1_vector_fasttext = get_fasttext_embedding(text1, ft_model)
|
56 |
|
57 |
# Поиск текстов в колонке NAME_RU, сходство которых с text1 больше заданного порога
|
58 |
+
thresh = 0.59
|
59 |
similar_texts_cosine = []
|
60 |
similar_texts_jaccard = []
|
61 |
for index, row in df.iterrows():
|