add percentage
This commit is contained in:
parent
56fc70dfe0
commit
1d962c388f
Binary file not shown.
|
@ -81,12 +81,23 @@ class MainFrameController:
|
||||||
self.text_data_list.append(text_data)
|
self.text_data_list.append(text_data)
|
||||||
|
|
||||||
def sort_provider(self, text_data_list):
|
def sort_provider(self, text_data_list):
|
||||||
provider_names = [text_data.provider for text_data in text_data_list if text_data.provider]
|
# Gruppiere TextData-Objekte nach Provider
|
||||||
provider_counts = Counter(provider_names)
|
provider_groups = {}
|
||||||
|
for text_data in text_data_list:
|
||||||
|
if text_data.provider:
|
||||||
|
if text_data.provider not in provider_groups:
|
||||||
|
provider_groups[text_data.provider] = []
|
||||||
|
provider_groups[text_data.provider].append(text_data)
|
||||||
|
|
||||||
|
# Zähle die Häufigkeit jedes Providers
|
||||||
|
provider_counts = Counter(text_data.provider for text_data in text_data_list if text_data.provider)
|
||||||
|
|
||||||
|
# Erstelle und sortiere die Provider-Liste
|
||||||
sorted_providers = [
|
sorted_providers = [
|
||||||
Provider(name, count)
|
Provider(name, count, provider_groups.get(name, []))
|
||||||
for name, count in sorted(provider_counts.items(), key=lambda x: x[1], reverse=True)
|
for name, count in sorted(provider_counts.items(), key=lambda x: x[1], reverse=True)
|
||||||
]
|
]
|
||||||
|
|
||||||
return sorted_providers
|
return sorted_providers
|
||||||
|
|
||||||
def update_provider_list(self):
|
def update_provider_list(self):
|
||||||
|
@ -106,7 +117,7 @@ class MainFrameController:
|
||||||
name_label = ctk.CTkLabel(provider_frame, text=provider.title)
|
name_label = ctk.CTkLabel(provider_frame, text=provider.title)
|
||||||
name_label.pack(side="left", padx=5)
|
name_label.pack(side="left", padx=5)
|
||||||
|
|
||||||
count_label = ctk.CTkLabel(provider_frame, text=str(provider.count))
|
count_label = ctk.CTkLabel(provider_frame, text=str(provider.get_fake_percentage())+"%")
|
||||||
count_label.pack(side="right", padx=5)
|
count_label.pack(side="right", padx=5)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,23 @@
|
||||||
class Provider():
|
class Provider():
|
||||||
|
|
||||||
def __init__(self, title: str, count: int) -> None:
|
def __init__(self, title: str, count: int, text_data_list) -> None:
|
||||||
self.title = title
|
self.title = title
|
||||||
self.count = count
|
self.count = count
|
||||||
|
self.text_data_list = text_data_list
|
||||||
|
|
||||||
|
def get_fake_percentage(self) -> float:
|
||||||
|
|
||||||
|
count_all = 0
|
||||||
|
count_fake = 0
|
||||||
|
for text_data in self.text_data_list:
|
||||||
|
print(text_data.is_fake_news)
|
||||||
|
count_all += 1
|
||||||
|
if text_data.is_fake_news:
|
||||||
|
count_fake += 1
|
||||||
|
|
||||||
|
if count_all == 0:
|
||||||
|
return 0.0
|
||||||
|
|
||||||
|
return (count_fake / count_all) * 100
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue