Source code for similarityPy.measure.similarity_measure

# coding=utf-8
"""
Created on 18 January 2014
@author: Cenk Bircanoglu
"""
import heapq

from similarityPy.measure.similarity_measure_type import SimilarityMeasureType, SIMILARITY_RATIO, DISTANCE, \
    DISSIMILARITY, \
    DISSIMILARITY_RATIO, DISTANCE_RATIO


[docs]class SimilarityMeasure: similarity_measure_type = SimilarityMeasureType.DISTANCE_ABBR def __init__(self, data): """ :param data: :return: """ if type(data) is list: self._data = data self._result = None else: raise TypeError("You must initialize array.") def _algorithm(self): raise NotImplementedError("Subclasses should implement this!")
[docs] def process(self): self._algorithm()
[docs] def get_result(self): """ :return: """ return self._result
@classmethod
[docs] def calculate(cls, data): distance = cls(data) distance.process() return distance.get_result()
@classmethod
[docs] def min_max(cls, data, k=1): if cls.similarity_measure_type == DISTANCE or cls.similarity_measure_type == DISSIMILARITY or cls.similarity_measure_type == DISSIMILARITY_RATIO or cls.similarity_measure_type == DISTANCE_RATIO: return heapq.nsmallest(k, data) elif cls.similarity_measure_type == SIMILARITY_RATIO: return heapq.nlargest(k, data)