mirror of
https://github.com/TheAlgorithms/Python.git
synced 2024-11-27 15:01:08 +00:00
trying to make the code pass ruff auto review
This commit is contained in:
parent
521d7a23fa
commit
653f8e4d4f
|
@ -1,5 +1,5 @@
|
||||||
from __future__ import annotations
|
|
||||||
import sys
|
import sys
|
||||||
|
from __future__ import annotations
|
||||||
from collections import defaultdict
|
from collections import defaultdict
|
||||||
|
|
||||||
# Description for the ppm algorithm can be found at https://en.wikipedia.org/wiki/Prediction_by_partial_matching
|
# Description for the ppm algorithm can be found at https://en.wikipedia.org/wiki/Prediction_by_partial_matching
|
||||||
|
@ -7,7 +7,8 @@ from collections import defaultdict
|
||||||
|
|
||||||
class PPMNode:
|
class PPMNode:
|
||||||
def __init__(self) -> None:
|
def __init__(self) -> None:
|
||||||
# Initialize a PPMNode with a dictionary for child nodes and a count of total occurrences
|
# Initialize a PPMNode with a dictionary for child nodes
|
||||||
|
# and a count of total occurrences
|
||||||
self.counts: dict[str, PPMNode] = defaultdict(PPMNode)
|
self.counts: dict[str, PPMNode] = defaultdict(PPMNode)
|
||||||
self.total: int = 0
|
self.total: int = 0
|
||||||
|
|
||||||
|
@ -47,7 +48,7 @@ class PPM:
|
||||||
context = (context + symbol)[-self.order :] # Keep the context within order
|
context = (context + symbol)[-self.order :] # Keep the context within order
|
||||||
|
|
||||||
return compressed_output
|
return compressed_output
|
||||||
|
|
||||||
def encode_symbol(self, context: str, symbol: str) -> float:
|
def encode_symbol(self, context: str, symbol: str) -> float:
|
||||||
# Encode a symbol based on the current context and return its probability
|
# Encode a symbol based on the current context and return its probability
|
||||||
node = self.root
|
node = self.root
|
||||||
|
@ -92,7 +93,8 @@ class PPM:
|
||||||
else:
|
else:
|
||||||
return None # Return None if the context is not found
|
return None # Return None if the context is not found
|
||||||
|
|
||||||
# Iterate through the children of the node to find the symbol matching the given probability
|
# Iterate through the children of the node to
|
||||||
|
# find the symbol matching the given probability
|
||||||
for symbol, child in node.counts.items():
|
for symbol, child in node.counts.items():
|
||||||
if child.total / node.total == prob:
|
if child.total / node.total == prob:
|
||||||
return symbol # Return the symbol if the probability matches
|
return symbol # Return the symbol if the probability matches
|
||||||
|
|
Loading…
Reference in New Issue
Block a user