From 215ff98d00a9647fc0eda39f95bf0ee1b0ca19b2 Mon Sep 17 00:00:00 2001 From: OneNewDev Date: Sat, 28 May 2022 19:29:41 +0200 Subject: [PATCH] performance: check if word already has a score at the beginning --- tagger.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/tagger.py b/tagger.py index 107f035..015bbcb 100644 --- a/tagger.py +++ b/tagger.py @@ -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)