Skip to content
Snippets Groups Projects
Commit f342a4f6 authored by dmt's avatar dmt
Browse files

Identify blocks that satisfy the criteria for being a learning block.

parent cedc14be
No related branches found
No related tags found
No related merge requests found
......@@ -57,3 +57,22 @@ class Preprocessor:
class LearnblockIdentifier:
def __init__(self, settings):
self.settings = settings
self.column_pairs = (("T", "Z"), ("T", "Sigma"), ("Sigma", "Z"))
def identify(self, block):
for pair in self.column_pairs:
for possible_learnblock in self._identify_relatives(block, *pair):
if self._is_learn_block(possible_learnblock.length):
yield possible_learnblock
def _is_learn_block(self, block_length):
return block_length > self.settings.learn_block_minimum
def _identify_relatives(self, block, *args):
# TODO (dmt): Implement density and kmeans!
already_seen = set()
for value_pair in block.get_duplicated_pairs(args[0], args[1]):
if value_pair not in already_seen:
already_seen.add(value_pair)
kw = {args[0]: value_pair[0], args[1]: value_pair[1]}
yield block.get_values(**kw)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment