From 73708fffd8ea710e9ea3d0c88832fa84bea66b14 Mon Sep 17 00:00:00 2001 From: OneNewDev Date: Wed, 8 Jun 2022 18:48:04 +0200 Subject: [PATCH] update code comments --- tagger.py | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/tagger.py b/tagger.py index c34b920..6ce69c4 100644 --- a/tagger.py +++ b/tagger.py @@ -37,7 +37,7 @@ class FileScanner(HTMLParser): def scan_file(self): # Datei einlesen content = read_file(self.file) - # HTMLParser aufrufen um HTML-Syntax-Elemente zu entfernen. + # HTMLParser aufrufen, um HTML-Syntax-Elemente zu entfernen. self.feed(content) words_with_usage = {} @@ -78,13 +78,14 @@ class FileScanner(HTMLParser): upper_letters_count = len(_UPPER_CHECK.findall(tag_name)) # ... und die Bewertung entsprechen der Anzahl verbessern. score += upper_letters_count * 10 + # Die Bewertung leicht erhöhen, wenn ein Bindestrich im Wort enthalten ist. if '-' in word: score += 1 - # Die Bewertung für das Wort speichern. - # Wenn das Wort bereits eine Bewertung besitzt werden die beiden Bewertungen zusammen gerechnet. if word not in words_with_usage: + # Die Bewertung für das Wort speichern. words_with_usage[word] = Tag(name=tag_name, score=score) else: + # Wenn das Wort bereits eine Bewertung besitzt, werden die beiden Bewertungen zusammen gerechnet. words_with_usage[word].score += score link_words = [] @@ -94,7 +95,10 @@ class FileScanner(HTMLParser): # Link-Teile in einzelne Wörter aufteilen words += re.split(r'[/\-_#.?&=]', link) for link_word in link_words: + # Alle Buchstaben verkleinern link_word = link_word.lower() + # Wenn ein Wort aus dem Text auch in einem Link vorkommt, wird die Bewertung erhöht. + # Somit kann verhindert werden, dass Link-Bestandteile als Tags vorgeschlagen werden (z.B. E7xcsFpR). if link_word in words_with_usage: words_with_usage[link_word] += 10 @@ -112,14 +116,16 @@ class FileScanner(HTMLParser): break def handle_data(self, data): - # Den Text innerhalb eines HTML-Elements mit einbeziehen. + # Den Inhalt des aktuellen HTML-Tags ignorieren, wenn dieser auf der Liste der ausgeschlossenen HTML-Tags steht. if self._current_html_tag in EXCLUDED_HTML_TAGS: return - data = _LINK_PATTERN.sub(self._link_result, data) + # Links aus dem HTML-Text extrahieren und entfernen + data = _LINK_PATTERN.sub(self._link_replace, data) + # Den restlichen Text (ohne Links) innerhalb eines HTML-Elements mit einbeziehen. self.texte.append(data) - def _link_result(self, link_match): + def _link_replace(self, link_match): self.links.append(link_match.group(0)) return ''