Ejemplo n.º 1
0
def mine_file(input_file_path, dyadic_context_file_path,
              dyadic_concepts_file_path, dyadic_links_file_path,
              dyadic_generators_file_path, dyadic_rules_file_path,
              report_file_path):
    report = Report(report_file_path, input_file_path)
    Timer.start('Reading triadic context from: {0}'.format(input_file_path))
    triadic_context = TriadicContext.read_triadic_context(input_file_path)
    obj_count, attr_count, cond_count = TriadicContext.show_size(
        triadic_context)
    time = Timer.stop()
    report.add_timed_section('Reading triadic context', time)
    report.add_qt_section('TRIADIC objects count', obj_count)
    report.add_qt_section('TRIADIC Attributes count', attr_count)
    report.add_qt_section('TRIADIC Conditions count', cond_count)

    Timer.start('Flattening the triadic context...')
    context, objects_count, attributes_count = TriadicContext.to_dyadic(
        triadic_context)
    dyadic_context = DyadicContext(context, objects_count, attributes_count)
    obj_count, attr_count = dyadic_context.show_size()
    dyadic_context.save_context(dyadic_context_file_path)
    time = Timer.stop()
    report.add_timed_section('Flattening triadic context to a dyadic context',
                             time)
    report.add_qt_section('DYADIC objects count', obj_count)
    report.add_qt_section('DYADIC Attributes count', attr_count)

    Timer.start('Generating concepts: {0} -> {1}'.format(
        dyadic_context_file_path, dyadic_concepts_file_path))
    dyadic_context.mine_concepts(dyadic_context_file_path,
                                 dyadic_concepts_file_path)
    dyadic_context.read_concepts_from_file(dyadic_concepts_file_path)
    concepts_count = dyadic_context.show_concepts_count()
    time = Timer.stop()
    report.add_timed_section('Generating concepts', time)
    report.add_qt_section('Concepts count', concepts_count)

    Timer.start('Running iPred on concepts...')
    dyadic_context.iPred()
    links_count = dyadic_context.show_links_count()
    dyadic_context.save_links(dyadic_links_file_path)
    time = Timer.stop()
    report.add_timed_section('Running iPred', time)
    report.add_qt_section('Links count', links_count)

    Timer.start('Computing feature generators')
    dyadic_context.compute_feature_generators()
    generators_count = dyadic_context.show_generators_count()
    dyadic_context.save_generators(dyadic_generators_file_path)
    time = Timer.stop()
    report.add_timed_section('Computing feature generators', time)
    report.add_qt_section('Generators count', generators_count)

    Timer.start('Computing association rules')
    dyadic_context.compute_association_rules()
    rules_count = dyadic_context.show_rules_count()
    dyadic_context.save_rules(dyadic_rules_file_path)
    time = Timer.stop()
    report.add_timed_section('Computing association rules', time)
    report.add_qt_section('Rules count', rules_count)

    report.save_report()