예제 #1
0
파일: injector.py 프로젝트: SNACES/core
    def get_injector_from_file(path: str):
        config = parse_from_file(path)
        injector = Injector(config)

        log_config = config.get("Logging", {})
        LoggerFactory.init_root_logger("snaces2.log")

        return injector
예제 #2
0
from src.activity.download_user_tweets_activity import DownloadUserTweetsActivity
import argparse
import time
from src.dependencies.injector import Injector
from src.shared.utils import get_project_root
from src.shared.logger_factory import LoggerFactory
import numpy as np
import matplotlib.mlab as mlab
import matplotlib.pyplot as plt
from src.model.local_neighbourhood import LocalNeighbourhood
import json
import logging
import random
import gc

log = LoggerFactory.logger(__name__, logging.ERROR)

DEFAULT_PATH = str(
    get_project_root()) + "/src/scripts/config/default_config.yaml"


def produce_plots(user_name: str, thresh, i, path=DEFAULT_PATH):

    injector = Injector.get_injector_from_file(path)
    process_module = injector.get_process_module()
    dao_module = injector.get_dao_module()

    user_friend_getter = dao_module.get_user_friend_getter()
    friends_cleaner = process_module.get_extended_friends_cleaner()
    social_graph_constructor = process_module.get_social_graph_constructor()
    clusterer = process_module.get_clusterer()
예제 #3
0
from src.activity.download_user_tweets_activity import DownloadUserTweetsActivity
import argparse
import time
from src.dependencies.injector import Injector
from src.shared.utils import get_project_root
from src.shared.logger_factory import LoggerFactory
import numpy as np
import matplotlib.mlab as mlab
import matplotlib.pyplot as plt
from src.model.local_neighbourhood import LocalNeighbourhood
import json

log = LoggerFactory.logger(__name__)

DEFAULT_PATH = str(get_project_root()) + "/src/scripts/config/default_config.yaml"

def produce_plots(seed_id: str, user_name: str, path=DEFAULT_PATH):
    threshold = 60

    injector = Injector.get_injector_from_file(path)
    process_module = injector.get_process_module()
    dao_module = injector.get_dao_module()

    user_friend_getter = dao_module.get_user_friend_getter()
    friends_cleaner = process_module.get_friends_cleaner()
    social_graph_constructor = process_module.get_social_graph_constructor()
    clusterer = process_module.get_clusterer()
    cluster_word_frequency_processor = process_module.get_cluster_word_frequency_processor()

    tweet_processor = process_module.get_tweet_processor()
예제 #4
0
import networkx as nx
from copy import deepcopy
from src.model.social_graph.social_graph import SocialGraph
from src.model.local_neighbourhood import LocalNeighbourhood
from src.shared.logger_factory import LoggerFactory
import logging

log = LoggerFactory.logger(__name__, logging.INFO)


class IntersectionSocialGraph(SocialGraph):
    def fromLocalNeighbourhood(local_neighbourhood: LocalNeighbourhood,
                               params=None,
                               remove_unconnected_nodes=True):
        graph = nx.DiGraph()

        user_list = local_neighbourhood.get_user_id_list()
        user_list.remove(str(local_neighbourhood.seed_id))
        log.info("Length of list " + str(len(user_list)))
        if remove_unconnected_nodes:
            user_list = SocialGraph.remove_unconnected_nodes(
                local_neighbourhood)
            log.info("Length of list after removing unconnected nodes " +
                     str(len(user_list)))
            user_list.remove(str(local_neighbourhood.seed_id))

        for user in user_list:
            graph.add_node(user)

        for user in user_list:
            friends = local_neighbourhood.get_user_friends(user)
예제 #5
0
from typing import Union, List, Dict
from src.model.word_frequency_vector import WordFrequencyVector
from src.model.user_word_frequency_vector import UserWordFrequencyVector
from copy import deepcopy
from src.shared.logger_factory import LoggerFactory
import logging

log = LoggerFactory.logger(__name__, logging.DEBUG)


class UserWordFrequencyProcessor():
    """
    Process and store a users word frequency
    """
    def __init__(self, processed_tweet_getter,
                 user_word_frequency_vector_getter,
                 user_word_frequency_vector_setter,
                 global_word_frequency_vector_getter,
                 user_relative_word_frequency_vector_setter):
        self.processed_tweet_getter = processed_tweet_getter
        self.user_word_frequency_vector_getter = user_word_frequency_vector_getter
        self.user_word_frequency_vector_setter = user_word_frequency_vector_setter
        self.global_word_frequency_vector_getter = global_word_frequency_vector_getter
        self.user_relative_word_frequency_vector_setter = user_relative_word_frequency_vector_setter

    def process_user_word_frequency_vector(self, id: str):
        user_processed_tweets = self.processed_tweet_getter.get_user_processed_tweets(
            id)
        log.info("Number of processed tweets " +
                 str(len(user_processed_tweets)))
        user_word_freq_vc = self.user_word_frequency_vector_getter.get_user_word_frequency_by_id(