Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -999,11 +999,13 @@ def check_no_promises(message):
|
|
999 |
|
1000 |
def check_no_double_verbs(message):
|
1001 |
morph = pymorphy2.MorphAnalyzer()
|
1002 |
-
|
|
|
1003 |
morphs = [morph.parse(word)[0] for word in words]
|
1004 |
|
1005 |
for i in range(len(morphs) - 1):
|
1006 |
-
|
|
|
1007 |
return False
|
1008 |
return True
|
1009 |
|
@@ -1093,10 +1095,16 @@ def check_no_subordinate_clauses_chain(message):
|
|
1093 |
# 12. Разделительные повторяющиеся союзы
|
1094 |
|
1095 |
def check_no_repeating_conjunctions(message):
|
1096 |
-
|
|
|
1097 |
|
1098 |
-
|
1099 |
-
|
|
|
|
|
|
|
|
|
|
|
1100 |
return True
|
1101 |
|
1102 |
# 13. Вводные конструкции
|
@@ -1140,7 +1148,7 @@ def check_no_time_parasites(message):
|
|
1140 |
|
1141 |
def check_no_multiple_nouns(message):
|
1142 |
noun_count = 0
|
1143 |
-
words =
|
1144 |
morph = pymorphy2.MorphAnalyzer()
|
1145 |
|
1146 |
for word in words:
|
@@ -1149,8 +1157,8 @@ def check_no_multiple_nouns(message):
|
|
1149 |
# Если слово — существительное
|
1150 |
if 'NOUN' in parsed_word.tag:
|
1151 |
noun_count += 1
|
1152 |
-
# Если встречен
|
1153 |
-
elif
|
1154 |
noun_count = 0
|
1155 |
else:
|
1156 |
noun_count = 0
|
@@ -1159,12 +1167,13 @@ def check_no_multiple_nouns(message):
|
|
1159 |
return False
|
1160 |
return True
|
1161 |
|
1162 |
-
|
1163 |
# 17. Производные предлоги
|
1164 |
|
1165 |
def check_no_derived_prepositions(message):
|
1166 |
derived_prepositions = [
|
1167 |
-
r'\b(в течение|в ходе|вследствие|в связи с|по мере|при
|
|
|
|
|
1168 |
]
|
1169 |
|
1170 |
for pattern in derived_prepositions:
|
@@ -1172,6 +1181,7 @@ def check_no_derived_prepositions(message):
|
|
1172 |
return False
|
1173 |
return True
|
1174 |
|
|
|
1175 |
# 19. Сложноподчиненные предложения
|
1176 |
|
1177 |
def check_no_compound_sentences(message):
|
|
|
999 |
|
1000 |
def check_no_double_verbs(message):
|
1001 |
morph = pymorphy2.MorphAnalyzer()
|
1002 |
+
# Разделяем текст по пробелам и знакам препинания
|
1003 |
+
words = re.split(r'\s+|[.!?]', message)
|
1004 |
morphs = [morph.parse(word)[0] for word in words]
|
1005 |
|
1006 |
for i in range(len(morphs) - 1):
|
1007 |
+
# Проверяем, что оба слова являются глаголами (в любой форме, включая инфинитивы)
|
1008 |
+
if (morphs[i].tag.POS in {'VERB', 'INFN'}) and (morphs[i+1].tag.POS in {'VERB', 'INFN'}):
|
1009 |
return False
|
1010 |
return True
|
1011 |
|
|
|
1095 |
# 12. Разделительные повторяющиеся союзы
|
1096 |
|
1097 |
def check_no_repeating_conjunctions(message):
|
1098 |
+
# Регулярное выражение для поиска разделительных повторяющихся союзов с запятой перед вторым союзом
|
1099 |
+
repeating_conjunctions_patterns = r'\b(и|ни|то|не то|или|либо)\b\s*(.*?)\s*,\s*\b\1\b'
|
1100 |
|
1101 |
+
# Разделяем сообщение на предложения по точке, вопросительному и восклицательному знакам
|
1102 |
+
sentences = re.split(r'[.!?]\s*', message)
|
1103 |
+
|
1104 |
+
# Проверяем каждое предложение отдельно
|
1105 |
+
for sentence in sentences:
|
1106 |
+
if re.search(repeating_conjunctions_patterns, sentence, re.IGNORECASE):
|
1107 |
+
return False
|
1108 |
return True
|
1109 |
|
1110 |
# 13. Вводные конструкции
|
|
|
1148 |
|
1149 |
def check_no_multiple_nouns(message):
|
1150 |
noun_count = 0
|
1151 |
+
words = re.split(r'\s+|[.!?]', message) # Разбиваем по пробелам и знакам препинания
|
1152 |
morph = pymorphy2.MorphAnalyzer()
|
1153 |
|
1154 |
for word in words:
|
|
|
1157 |
# Если слово — существительное
|
1158 |
if 'NOUN' in parsed_word.tag:
|
1159 |
noun_count += 1
|
1160 |
+
# Если встречен конец предложения (точка, вопросительный знак, восклицательный знак)
|
1161 |
+
elif re.match(r'[.!?]', word):
|
1162 |
noun_count = 0
|
1163 |
else:
|
1164 |
noun_count = 0
|
|
|
1167 |
return False
|
1168 |
return True
|
1169 |
|
|
|
1170 |
# 17. Производные предлоги
|
1171 |
|
1172 |
def check_no_derived_prepositions(message):
|
1173 |
derived_prepositions = [
|
1174 |
+
r'\b(в течение|в ходе|вследствие|в связи с|по мере|при помощи|согласно|вопреки|на основании|на случай|',
|
1175 |
+
r'в продолжение|по причине|вблизи|вдалеке|вокруг|внутри|вдоль|посередине|вне|снаружи|благодаря|',
|
1176 |
+
r'невзирая на|исходя из)\b'
|
1177 |
]
|
1178 |
|
1179 |
for pattern in derived_prepositions:
|
|
|
1181 |
return False
|
1182 |
return True
|
1183 |
|
1184 |
+
|
1185 |
# 19. Сложноподчиненные предложения
|
1186 |
|
1187 |
def check_no_compound_sentences(message):
|