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()
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)
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()
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(