Exemple #1
0
def test_get_gen_cand_tree_params():
    event_size = 100
    participants_n = 10
    event = gen_event_with_known_tree_structure(
        event_size=event_size,
        participants=range(participants_n),
        start_time=10, end_time=110,
        event_topic_param=random_topic(10, topic_noise=0.1)[0],
        topic_noise=1,
        alpha=1.0, tau=0.8,
        forward_proba=0.3,
        reply_proba=0.5,
        create_new_proba=0.2
    )
    event = IU.assign_edge_weights(event, cosine)
    params = get_gen_cand_tree_params(event)

    assert_true(params['U'] > 0)
    assert_equal(99, params['preprune_secs'])
    assert_equal([0], params['roots'])
Exemple #2
0
def make_artificial_data(
        # for main events
        n_events,
        event_size_mu, event_size_sigma,
        participant_mu, participant_sigma,
        # for minor events
        n_minor_events,
        minor_event_size_mu, minor_event_size_sigma,
        minor_event_participant_mu, minor_event_participant_sigma,
        # shared
        n_total_participants,
        min_time, max_time, event_duration_mu, event_duration_sigma,
        n_topics, topic_scaling_factor, topic_noise,
        n_noisy_interactions, n_noisy_interactions_fraction,
        alpha, tau,
        forward_proba,
        reply_proba,
        create_new_proba,
        dist_func):
    events, taboo_topics = random_events(
        n_events, event_size_mu, event_size_sigma,
        n_total_participants, participant_mu, participant_sigma,
        min_time, max_time, event_duration_mu, event_duration_sigma,
        n_topics, topic_scaling_factor, topic_noise,
        alpha, tau,
        forward_proba,
        reply_proba,
        create_new_proba,
        accumulate_taboo=True
    )

    minor_events, _ = random_events(
        n_minor_events, minor_event_size_mu, minor_event_size_sigma,
        n_total_participants, minor_event_participant_mu,
        minor_event_participant_sigma,
        min_time, max_time, event_duration_mu, event_duration_sigma,
        n_topics, topic_scaling_factor, topic_noise,
        alpha, tau,
        forward_proba,
        reply_proba,
        create_new_proba,
        taboo_topics=taboo_topics,
        accumulate_taboo=False
    )
    
    (n_noisy_interactions, _) = get_number_and_percentage(
        sum([1 for e in events for _ in e]),
        n_noisy_interactions, n_noisy_interactions_fraction
    )
    noisy_interactions = random_noisy_interactions(
        n_noisy_interactions,
        min_time, max_time,
        n_total_participants,
        n_topics, topic_noise,
        taboo_topics
    )

    event_interactions = [e.node[n] for e in events
                          for n in e.nodes_iter()]
    minor_event_interactions = [e.node[n] for e in minor_events
                                for n in e.nodes_iter()]
    all_interactions = (event_interactions + minor_event_interactions
                        + noisy_interactions)

    # add interaction id
    for i, intr in enumerate(all_interactions):
        intr['message_id'] = i
        intr['topics'] = intr['topics'].tolist()

    # relabel the nodes
    relabeled_events = []
    for e in events:
        mapping = {n: e.node[n]['message_id'] for n in e.nodes_iter()}
        relabeled_events.append(nx.relabel_nodes(e, mapping))

    for e in events:
        e = IU.assign_edge_weights(e, dist_func)

    gen_cand_trees_params = [get_gen_cand_tree_params(e)
                             for e in events]
    return relabeled_events, all_interactions, gen_cand_trees_params
Exemple #3
0
def make_artificial_data(
        # for main events
        n_events,
        event_size_mu,
        event_size_sigma,
        participant_mu,
        participant_sigma,
        # for minor events
        n_minor_events,
        minor_event_size_mu,
        minor_event_size_sigma,
        minor_event_participant_mu,
        minor_event_participant_sigma,
        # shared
        n_total_participants,
        min_time,
        max_time,
        event_duration_mu,
        event_duration_sigma,
        n_topics,
        topic_scaling_factor,
        topic_noise,
        n_noisy_interactions,
        n_noisy_interactions_fraction,
        alpha,
        tau,
        forward_proba,
        reply_proba,
        create_new_proba,
        dist_func):
    events, taboo_topics = random_events(n_events,
                                         event_size_mu,
                                         event_size_sigma,
                                         n_total_participants,
                                         participant_mu,
                                         participant_sigma,
                                         min_time,
                                         max_time,
                                         event_duration_mu,
                                         event_duration_sigma,
                                         n_topics,
                                         topic_scaling_factor,
                                         topic_noise,
                                         alpha,
                                         tau,
                                         forward_proba,
                                         reply_proba,
                                         create_new_proba,
                                         accumulate_taboo=True)

    minor_events, _ = random_events(n_minor_events,
                                    minor_event_size_mu,
                                    minor_event_size_sigma,
                                    n_total_participants,
                                    minor_event_participant_mu,
                                    minor_event_participant_sigma,
                                    min_time,
                                    max_time,
                                    event_duration_mu,
                                    event_duration_sigma,
                                    n_topics,
                                    topic_scaling_factor,
                                    topic_noise,
                                    alpha,
                                    tau,
                                    forward_proba,
                                    reply_proba,
                                    create_new_proba,
                                    taboo_topics=taboo_topics,
                                    accumulate_taboo=False)

    (n_noisy_interactions,
     _) = get_number_and_percentage(sum([1 for e in events for _ in e]),
                                    n_noisy_interactions,
                                    n_noisy_interactions_fraction)
    noisy_interactions = random_noisy_interactions(n_noisy_interactions,
                                                   min_time, max_time,
                                                   n_total_participants,
                                                   n_topics, topic_noise,
                                                   taboo_topics)

    event_interactions = [e.node[n] for e in events for n in e.nodes_iter()]
    minor_event_interactions = [
        e.node[n] for e in minor_events for n in e.nodes_iter()
    ]
    all_interactions = (event_interactions + minor_event_interactions +
                        noisy_interactions)

    # add interaction id
    for i, intr in enumerate(all_interactions):
        intr['message_id'] = i
        intr['topics'] = intr['topics'].tolist()

    # relabel the nodes
    relabeled_events = []
    for e in events:
        mapping = {n: e.node[n]['message_id'] for n in e.nodes_iter()}
        relabeled_events.append(nx.relabel_nodes(e, mapping))

    for e in events:
        e = IU.assign_edge_weights(e, dist_func)

    gen_cand_trees_params = [get_gen_cand_tree_params(e) for e in events]
    return relabeled_events, all_interactions, gen_cand_trees_params