performance: check if word already has a score at the beginning

This commit is contained in:
OneNewDev 2022-05-28 19:29:41 +02:00
parent 2802b83649
commit 215ff98d00

View file

@ -51,6 +51,11 @@ class FileScanner(HTMLParser):
continue
# Alle Buchstaben verkleinern, aber gleichzeitig originales Wort merken
word = tag_name.lower()
# Wenn das Wort bereits eine Bewertung besitzt, wird die vorhandene Bewertung verdoppelt
# und mit dem nächsten Wort fortgefahren.
if word in words_with_usage:
words_with_usage[word].score *= 2
continue
# Standard Bewertung für jedes Wort ist 10
score = 10
# Wörter, die in der Liste der ausgeschlossenen Wörter stehen, ignorieren
@ -72,11 +77,7 @@ class FileScanner(HTMLParser):
# ... und die Bewertung entsprechen der Anzahl verbessern.
score += upper_letters_count * 5
# 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:
words_with_usage[word] = Tag(name=tag_name, score=score)
else:
words_with_usage[word].score += score
words_with_usage[word] = Tag(name=tag_name, score=score)
# Die Wörter nach ihrer Bewertung sortieren
return sorted(words_with_usage.values(), key=lambda tag: tag.score, reverse=True)