Skip to content

Commit 975b4d2

Browse files
committed
correct check abbr
1 parent 8394b5a commit 975b4d2

File tree

4 files changed

+36
-12
lines changed

4 files changed

+36
-12
lines changed

app/main/check_packs/pack_config.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,11 @@
2222
['pres_image_capture'],
2323
['task_tracker'],
2424
['overview_in_tasks'],
25+
<<<<<<< HEAD
2526
['abbreviations_check_pres'],
27+
=======
28+
['pres_abbreviations_check'],
29+
>>>>>>> 2c581e8 (correct check abbr)
2630
]
2731
BASE_REPORT_CRITERION = [
2832
["simple_check"],

app/main/checks/check_abbreviations.py

Lines changed: 28 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
import re
2+
from pymorphy2 import MorphAnalyzer
3+
morph = MorphAnalyzer()
4+
25

36
def get_unexplained_abbrev(text):
47
abbreviations = find_abbreviations(text)
@@ -22,7 +25,9 @@ def find_abbreviations(text: str):
2225

2326
common_abbr = {
2427
'СССР', 'РФ', 'США', 'ВКР', 'ИТ', 'ПО', 'ООО', 'ЗАО', 'ОАО', 'HTML', 'CSS',
25-
'JS', 'ЛЭТИ', 'МОЕВМ', 'ЭВМ', 'DVD', 'SSD', 'PC', 'HDD',
28+
'JS', 'ЛЭТИ', 'МОЕВМ', 'ЭВМ', 'ГОСТ', 'DVD'
29+
30+
'SSD', 'PC', 'HDD',
2631
'AX', 'BX', 'CX', 'DX', 'SI', 'DI', 'BP', 'SP',
2732
'AH', 'AL', 'BH', 'BL', 'CH', 'CL', 'DH', 'DL',
2833
'CS', 'DS', 'ES', 'SS', 'FS', 'GS',
@@ -38,25 +43,38 @@ def find_abbreviations(text: str):
3843
'LAN', 'WAN', 'WLAN', 'VPN', 'ISP', 'DNS', 'DHCP', 'TCP', 'UDP', 'IP',
3944
'HTTP', 'HTTPS', 'FTP', 'SSH', 'SSL', 'TLS',
4045
'API', 'GUI', 'CLI', 'IDE', 'SDK', 'SQL', 'NoSQL', 'XML', 'JSON', 'YAML',
41-
'MAC', 'IBM'
46+
'MAC', 'IBM', 'ГОСТ'
4247
}
43-
filtered_abbr = [abbr for abbr in abbreviations if abbr not in common_abbr]
48+
filtered_abbr = [abbr for abbr in abbreviations if abbr not in common_abbr and morph.parse(abbr.lower())[0].score != 0]
4449

4550
return list(set(filtered_abbr))
4651

4752

4853
def is_abbreviation_explained(abbr: str, text: str) -> bool:
4954
patterns = [
50-
rf'{abbr}\s*\([^)]+\)', # АААА (расшифровка)
51-
rf'\([^)]+\)\s*{abbr}', # (расшифровка) АААА
52-
rf'{abbr}\s*—\s*[^.,;!?]+', # АААА — расшифровка
53-
rf'{abbr}\s*-\s*[^.,;!?]+', # АААА - расшифровка
54-
rf'[^.,;!?]+\s*—\s*{abbr}', # расшифровка — АААА
55-
rf'[^.,;!?]+\s*-\s*{abbr}' # расшифровка - АААА
55+
rf'{abbr}\s*\(([^)]+)\)', # АААА (расшифровка)
56+
rf'\(([^)]+)\)\s*{abbr}', # (расшифровка) АААА
57+
rf'{abbr}\s*[—\-]\s*([^.,;!?]+)', # АААА — расшифровка
58+
rf'{abbr}\s*-\s*([^.,;!?]+)', # АААА - расшифровка
59+
rf'([^.,;!?]+)\s*[—\-]\s*{abbr}', # расшифровка — АААА
60+
rf'([^.,;!?]+)\s*-\s*{abbr}' # расшифровка - АААА
5661
]
62+
5763

5864
for pattern in patterns:
59-
if re.search(pattern, text, re.IGNORECASE):
65+
match = re.search(pattern, text, re.IGNORECASE)
66+
if match and correctly_explained(abbr, match.group(1)):
6067
return True
6168

6269
return False
70+
71+
def correctly_explained(abbr, explan):
72+
words = explan.split()
73+
74+
first_letter = ""
75+
for word in words:
76+
first_letter += word[0].upper()
77+
78+
if(first_letter == abbr[len(first_letter)]):
79+
return True
80+
return False

app/main/checks/presentation_checks/abbreviations_presentation.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,8 @@ def check(self):
4141
result_str += f"- {abbr} на слайде {slide_links[index_links]}<br>"
4242

4343
result_str += "<br>Каждая аббревиатура должна быть расшифрована при первом использовании в презентации.<br>"
44+
result_str += "Расшифровка должны быть по первыми буквам, например, МВД - Министерство внутренних дел.<br>"
45+
4446
return answer(False, result_str)
4547

4648
except Exception as e:

app/main/checks/report_checks/abbreviations_check.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import re
21
from ..base_check import BaseReportCriterion, answer
32
from ..check_abbreviations import get_unexplained_abbrev
43

@@ -36,11 +35,12 @@ def check(self):
3635
unexplained_abbr_with_page[abbr] = page_num
3736

3837

39-
result_str = "Найдены нерасшифрованные аббревиатуры при первом использовании:"
38+
result_str = "Найдены нерасшифрованные аббревиатуры при первом использовании:<br>"
4039
page_links = self.format_page_link(list(unexplained_abbr_with_page.values()))
4140
for index_links, abbr in enumerate(unexplained_abbr_with_page):
4241
result_str += f"- {abbr} на странице {page_links[index_links]}<br>"
4342
result_str += "Каждая аббревиатура должна быть расшифрована при первом использовании в тексте.<br>"
43+
result_str += "Расшифровка должны быть по первыми буквам, например, МВД - Министерство внутренних дел.<br>"
4444

4545
return answer(False, result_str)
4646

0 commit comments

Comments
 (0)