Spaces:
Sleeping
Sleeping
fruitpicker01
commited on
Commit
•
707b7dc
1
Parent(s):
071e077
Update app.py
Browse files
app.py
CHANGED
@@ -751,6 +751,7 @@ def check_forbidden_words(message):
|
|
751 |
# Проверка на запрещённые фразы и леммы
|
752 |
for pattern in forbidden_patterns:
|
753 |
if re.search(pattern, normalized_message, re.IGNORECASE):
|
|
|
754 |
return False
|
755 |
|
756 |
return True
|
@@ -773,6 +774,7 @@ def check_no_greeting(message):
|
|
773 |
|
774 |
# Проверяем, начинается ли сообщение с шаблона приветствия или обращения
|
775 |
if greeting_regex.search(message.strip()):
|
|
|
776 |
return False
|
777 |
return True
|
778 |
|
@@ -789,6 +791,7 @@ def check_no_promises(message):
|
|
789 |
|
790 |
for pattern in promise_patterns:
|
791 |
if pattern in lemmas:
|
|
|
792 |
return False
|
793 |
return True
|
794 |
|
@@ -807,6 +810,7 @@ def check_no_double_verbs(message):
|
|
807 |
if morphs[i].normal_form in ['хотеть', 'начинать', 'начать']:
|
808 |
return True
|
809 |
else:
|
|
|
810 |
return False
|
811 |
return True
|
812 |
|
@@ -821,6 +825,7 @@ def check_no_participles(message):
|
|
821 |
parsed_word = morph.parse(word)[0]
|
822 |
lemma = parsed_word.normal_form
|
823 |
if 'PRTF' in parsed_word.tag and lemma not in exceptions:
|
|
|
824 |
return False
|
825 |
return True
|
826 |
|
@@ -833,6 +838,7 @@ def check_no_adverbial_participles(message):
|
|
833 |
|
834 |
for morph in morphs:
|
835 |
if 'GRND' in morph.tag:
|
|
|
836 |
return False
|
837 |
return True
|
838 |
|
@@ -845,6 +851,7 @@ def check_no_superlative_adjectives(message):
|
|
845 |
|
846 |
for morph in morphs:
|
847 |
if 'COMP' in morph.tag or 'Supr' in morph.tag:
|
|
|
848 |
return False
|
849 |
return True
|
850 |
|
@@ -857,6 +864,7 @@ def check_no_passive_voice(message):
|
|
857 |
|
858 |
for morph in morphs:
|
859 |
if 'PRTF' in morph.tag and ('passive' in morph.tag or 'в' in morph.tag):
|
|
|
860 |
return False
|
861 |
return True
|
862 |
|
@@ -874,6 +882,7 @@ def check_no_written_out_ordinals(message):
|
|
874 |
|
875 |
for word in ordinal_words:
|
876 |
if word in lemmas:
|
|
|
877 |
return False
|
878 |
return True
|
879 |
|
@@ -907,6 +916,7 @@ def check_no_repeating_conjunctions(message):
|
|
907 |
# Проверяем каждое предложение отдельно
|
908 |
for sentence in sentences:
|
909 |
if re.search(repeating_conjunctions_patterns, sentence, re.IGNORECASE):
|
|
|
910 |
return False
|
911 |
return True
|
912 |
|
@@ -920,6 +930,7 @@ def check_no_introductory_phrases(message):
|
|
920 |
|
921 |
for pattern in introductory_phrases:
|
922 |
if re.search(pattern, message, re.IGNORECASE):
|
|
|
923 |
return False
|
924 |
return True
|
925 |
|
@@ -932,6 +943,7 @@ def check_no_amplifiers(message):
|
|
932 |
|
933 |
for pattern in amplifiers:
|
934 |
if re.search(pattern, message, re.IGNORECASE):
|
|
|
935 |
return False
|
936 |
return True
|
937 |
|
@@ -944,6 +956,7 @@ def check_no_time_parasites(message):
|
|
944 |
|
945 |
for pattern in time_parasites:
|
946 |
if re.search(pattern, message, re.IGNORECASE):
|
|
|
947 |
return False
|
948 |
return True
|
949 |
|
@@ -967,6 +980,7 @@ def check_no_multiple_nouns(message):
|
|
967 |
noun_count = 0
|
968 |
|
969 |
if noun_count > 2:
|
|
|
970 |
return False
|
971 |
return True
|
972 |
|
@@ -979,6 +993,7 @@ def check_no_derived_prepositions(message):
|
|
979 |
|
980 |
for pattern in derived_prepositions:
|
981 |
if re.search(pattern, message, re.IGNORECASE):
|
|
|
982 |
return False
|
983 |
return True
|
984 |
|
@@ -995,6 +1010,7 @@ def check_no_compound_sentences(message):
|
|
995 |
# Убедимся, что слово "как" используется не в вопросе
|
996 |
for pattern in subordinating_conjunctions:
|
997 |
if re.search(pattern, message) and not re.search(r'\?', message):
|
|
|
998 |
return False
|
999 |
return True
|
1000 |
|
@@ -1015,6 +1031,7 @@ def check_no_dates_written_out(message):
|
|
1015 |
for month in months:
|
1016 |
for pattern in date_written_out_patterns:
|
1017 |
if re.search(f'{pattern}\\s{month}', message, re.IGNORECASE):
|
|
|
1018 |
return False
|
1019 |
|
1020 |
return True
|
@@ -1050,6 +1067,7 @@ def check_no_word_repetitions(message):
|
|
1050 |
|
1051 |
# Если слово уже встречалось, возвращаем False
|
1052 |
if base_word in normalized_words:
|
|
|
1053 |
return False
|
1054 |
|
1055 |
# Добавляем слово в словарь
|
|
|
751 |
# Проверка на запрещённые фразы и леммы
|
752 |
for pattern in forbidden_patterns:
|
753 |
if re.search(pattern, normalized_message, re.IGNORECASE):
|
754 |
+
print(f"Не пройдена проверка: Запрещенные слова. Сообщение: {message}")
|
755 |
return False
|
756 |
|
757 |
return True
|
|
|
774 |
|
775 |
# Проверяем, начинается ли сообщение с шаблона приветствия или обращения
|
776 |
if greeting_regex.search(message.strip()):
|
777 |
+
print(f"Не пройдена проверка: Обращение к клиенту и приветствие клиента. Сообщение: {message}")
|
778 |
return False
|
779 |
return True
|
780 |
|
|
|
791 |
|
792 |
for pattern in promise_patterns:
|
793 |
if pattern in lemmas:
|
794 |
+
print(f"Не пройдена проверка: Обещания и гарантии. Сообщение: {message}")
|
795 |
return False
|
796 |
return True
|
797 |
|
|
|
810 |
if morphs[i].normal_form in ['хотеть', 'начинать', 'начать']:
|
811 |
return True
|
812 |
else:
|
813 |
+
print(f"Не пройдена проверка: Составные конструкции из двух глаголов. Сообщение: {message}")
|
814 |
return False
|
815 |
return True
|
816 |
|
|
|
825 |
parsed_word = morph.parse(word)[0]
|
826 |
lemma = parsed_word.normal_form
|
827 |
if 'PRTF' in parsed_word.tag and lemma not in exceptions:
|
828 |
+
print(f"Не пройдена проверка: Причастия и причастные обороты. Сообщение: {message}")
|
829 |
return False
|
830 |
return True
|
831 |
|
|
|
838 |
|
839 |
for morph in morphs:
|
840 |
if 'GRND' in morph.tag:
|
841 |
+
print(f"Не пройдена проверка: Деепричастия и деепричастные обороты. Сообщение: {message}")
|
842 |
return False
|
843 |
return True
|
844 |
|
|
|
851 |
|
852 |
for morph in morphs:
|
853 |
if 'COMP' in morph.tag or 'Supr' in morph.tag:
|
854 |
+
print(f"Не пройдена проверка: Превосходная степень прилагательных. Сообщение: {message}")
|
855 |
return False
|
856 |
return True
|
857 |
|
|
|
864 |
|
865 |
for morph in morphs:
|
866 |
if 'PRTF' in morph.tag and ('passive' in morph.tag or 'в' in morph.tag):
|
867 |
+
print(f"Не пройдена проверка: Страдательный залог. Сообщение: {message}")
|
868 |
return False
|
869 |
return True
|
870 |
|
|
|
882 |
|
883 |
for word in ordinal_words:
|
884 |
if word in lemmas:
|
885 |
+
print(f"Не пройдена проверка: Порядковые числительные от 10 прописью. Сообщение: {message}")
|
886 |
return False
|
887 |
return True
|
888 |
|
|
|
916 |
# Проверяем каждое предложение отдельно
|
917 |
for sentence in sentences:
|
918 |
if re.search(repeating_conjunctions_patterns, sentence, re.IGNORECASE):
|
919 |
+
print(f"Не пройдена проверка: Разделительные повторяющиеся союзы. Сообщение: {message}")
|
920 |
return False
|
921 |
return True
|
922 |
|
|
|
930 |
|
931 |
for pattern in introductory_phrases:
|
932 |
if re.search(pattern, message, re.IGNORECASE):
|
933 |
+
print(f"Не пройдена проверка: Вводные конструкции. Сообщение: {message}")
|
934 |
return False
|
935 |
return True
|
936 |
|
|
|
943 |
|
944 |
for pattern in amplifiers:
|
945 |
if re.search(pattern, message, re.IGNORECASE):
|
946 |
+
print(f"Не пройдена проверка: Усилители. Сообщение: {message}")
|
947 |
return False
|
948 |
return True
|
949 |
|
|
|
956 |
|
957 |
for pattern in time_parasites:
|
958 |
if re.search(pattern, message, re.IGNORECASE):
|
959 |
+
print(f"Не пройдена проверка: Паразиты времени. Сообщение: {message}")
|
960 |
return False
|
961 |
return True
|
962 |
|
|
|
980 |
noun_count = 0
|
981 |
|
982 |
if noun_count > 2:
|
983 |
+
print(f"Не пройдена проверка: Несколько существительных подряд. Сообщение: {message}")
|
984 |
return False
|
985 |
return True
|
986 |
|
|
|
993 |
|
994 |
for pattern in derived_prepositions:
|
995 |
if re.search(pattern, message, re.IGNORECASE):
|
996 |
+
print(f"Не пройдена проверка: Производные предлоги. Сообщение: {message}")
|
997 |
return False
|
998 |
return True
|
999 |
|
|
|
1010 |
# Убедимся, что слово "как" используется не в вопросе
|
1011 |
for pattern in subordinating_conjunctions:
|
1012 |
if re.search(pattern, message) and not re.search(r'\?', message):
|
1013 |
+
print(f"Не пройдена проверка: Сложноподчиненные предложения. Сообщение: {message}")
|
1014 |
return False
|
1015 |
return True
|
1016 |
|
|
|
1031 |
for month in months:
|
1032 |
for pattern in date_written_out_patterns:
|
1033 |
if re.search(f'{pattern}\\s{month}', message, re.IGNORECASE):
|
1034 |
+
print(f"Не пройдена проверка: Даты прописью. Сообщение: {message}")
|
1035 |
return False
|
1036 |
|
1037 |
return True
|
|
|
1067 |
|
1068 |
# Если слово уже встречалось, возвращаем False
|
1069 |
if base_word in normalized_words:
|
1070 |
+
print(f"Не пройдена проверка: Повторы слов. Сообщение: {message}")
|
1071 |
return False
|
1072 |
|
1073 |
# Добавляем слово в словарь
|