fruitpicker01 commited on
Commit
707b7dc
1 Parent(s): 071e077

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +18 -0
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
  # Добавляем слово в словарь