update code comments
This commit is contained in:
parent
760dd97855
commit
73708fffd8
18
tagger.py
18
tagger.py
|
@ -37,7 +37,7 @@ class FileScanner(HTMLParser):
|
||||||
def scan_file(self):
|
def scan_file(self):
|
||||||
# Datei einlesen
|
# Datei einlesen
|
||||||
content = read_file(self.file)
|
content = read_file(self.file)
|
||||||
# HTMLParser aufrufen um HTML-Syntax-Elemente zu entfernen.
|
# HTMLParser aufrufen, um HTML-Syntax-Elemente zu entfernen.
|
||||||
self.feed(content)
|
self.feed(content)
|
||||||
|
|
||||||
words_with_usage = {}
|
words_with_usage = {}
|
||||||
|
@ -78,13 +78,14 @@ class FileScanner(HTMLParser):
|
||||||
upper_letters_count = len(_UPPER_CHECK.findall(tag_name))
|
upper_letters_count = len(_UPPER_CHECK.findall(tag_name))
|
||||||
# ... und die Bewertung entsprechen der Anzahl verbessern.
|
# ... und die Bewertung entsprechen der Anzahl verbessern.
|
||||||
score += upper_letters_count * 10
|
score += upper_letters_count * 10
|
||||||
|
# Die Bewertung leicht erhöhen, wenn ein Bindestrich im Wort enthalten ist.
|
||||||
if '-' in word:
|
if '-' in word:
|
||||||
score += 1
|
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:
|
if word not in words_with_usage:
|
||||||
|
# Die Bewertung für das Wort speichern.
|
||||||
words_with_usage[word] = Tag(name=tag_name, score=score)
|
words_with_usage[word] = Tag(name=tag_name, score=score)
|
||||||
else:
|
else:
|
||||||
|
# Wenn das Wort bereits eine Bewertung besitzt, werden die beiden Bewertungen zusammen gerechnet.
|
||||||
words_with_usage[word].score += score
|
words_with_usage[word].score += score
|
||||||
|
|
||||||
link_words = []
|
link_words = []
|
||||||
|
@ -94,7 +95,10 @@ class FileScanner(HTMLParser):
|
||||||
# Link-Teile in einzelne Wörter aufteilen
|
# Link-Teile in einzelne Wörter aufteilen
|
||||||
words += re.split(r'[/\-_#.?&=]', link)
|
words += re.split(r'[/\-_#.?&=]', link)
|
||||||
for link_word in link_words:
|
for link_word in link_words:
|
||||||
|
# Alle Buchstaben verkleinern
|
||||||
link_word = link_word.lower()
|
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:
|
if link_word in words_with_usage:
|
||||||
words_with_usage[link_word] += 10
|
words_with_usage[link_word] += 10
|
||||||
|
|
||||||
|
@ -112,14 +116,16 @@ class FileScanner(HTMLParser):
|
||||||
break
|
break
|
||||||
|
|
||||||
def handle_data(self, data):
|
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:
|
if self._current_html_tag in EXCLUDED_HTML_TAGS:
|
||||||
return
|
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)
|
self.texte.append(data)
|
||||||
|
|
||||||
def _link_result(self, link_match):
|
def _link_replace(self, link_match):
|
||||||
self.links.append(link_match.group(0))
|
self.links.append(link_match.group(0))
|
||||||
return ''
|
return ''
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue