def __boundary_similarity__(*args, **kwargs): metric_kwargs = dict(kwargs) del metric_kwargs['return_parts'] del metric_kwargs['one_minus'] # Arguments return_parts = kwargs['return_parts'] one_minus = kwargs['one_minus'] # Compute statistics = __boundary_statistics__(*args, **metric_kwargs) additions = statistics['additions'] substitutions = statistics['substitutions'] transpositions = statistics['transpositions'] count_unweighted = len(additions) + len(substitutions) + len(transpositions) # Fraction denominator = count_unweighted + len(statistics['matches']) numerator = denominator - statistics['count_edits'] if return_parts: return numerator, denominator, additions, substitutions, transpositions else: value = numerator / denominator if denominator > 0 else 1 if one_minus: return Decimal('1') - value else: return value
def __boundary_similarity__(*args, **kwargs): metric_kwargs = dict(kwargs) del metric_kwargs['return_parts'] del metric_kwargs['one_minus'] # Arguments return_parts = kwargs['return_parts'] one_minus = kwargs['one_minus'] # Compute statistics = __boundary_statistics__(*args, **metric_kwargs) additions = statistics['additions'] substitutions = statistics['substitutions'] transpositions = statistics['transpositions'] count_unweighted = len(additions) + len(substitutions) + len( transpositions) # Fraction denominator = count_unweighted + len(statistics['matches']) numerator = denominator - statistics['count_edits'] if return_parts: return numerator, denominator, additions, substitutions, transpositions else: value = numerator / denominator if denominator > 0 else 1 if one_minus: return Decimal('1') - value else: return value
def __segmentation_similarity__(*args, **kwargs): ''' Segmentation Similarity (S). ''' metric_kwargs = dict(kwargs) del metric_kwargs['return_parts'] del metric_kwargs['one_minus'] # Arguments return_parts = kwargs['return_parts'] one_minus = kwargs['one_minus'] # Compute statistics = __boundary_statistics__(*args, **metric_kwargs) # Process pbs = statistics['pbs'] * len(statistics['boundary_types']) # Fraction denominator = pbs numerator = pbs - statistics['count_edits'] if return_parts: return numerator, denominator else: value = numerator / denominator if denominator > 0 else 1 if one_minus: return Decimal('1') - value else: return value