Skip to content

alexandruatomei9/GetSocial

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 

Repository files navigation

GetSocial

This project is focused on gathering data regarding a user profile on one or multiple social networks. The information that we will gather will contain details regarding the users' preferences about books, movies, music and/or other hobbies. Based on the collected data we will "draw" a user profile which we will later use to match individuals from the same social network.

##Keywords

Social Network, User Profiling, Cloud Computing, Stable Matching Algorithms, Local Algorithms, Stable States

##Ideea

Psychologists claim that you have a limit of how many friends you can handle so we thought to try improving the way a user gets his friendship suggestions on a social networks so he could improve his "happiness" and "commodity" in the on-line environment. The main idea is that a user will recieve friendship suggestions based on the hobbies listed on his profile and not on the already existing set of friends. This could be a wrong idea but it is worth a shot.

##Related Work

  1. Stable-matching An early ancestor of our work is the stable marriage problem, introduced by Gale and Shapley in 1962: We are given n nodes, partitioned into two sets commonly denoted as men and women. Each woman has a strictly ordered preference list over all men and vice versa. They now want to create a stable matching. A matching is called stable if there is no pair of man and woman such that, instead of being matched to their current partner, they would prefer to be matched to each other.
  2. User profiling A profile is a description of someone containing the most important or interesting facts about him/her. In the context of users of software applications, a profile(user model) contains essential information about an individual user. Discovering the differences between these users is vital in order to provide personalized services.
    Personalization search is a technique related to User Profiling. It refers to search experiences that are tailored specifically to an individual's interests by incorporating information about the individual beyond specific query provided(see Google Search, Facebook Search)
    Previous user profilling systems:
    1. PointCast - the system allows the user to build an interest profile from a predefined set of broad subject such as "sports", "weather".
    2. NewsPage Direct uses Salton’s SMART system to provide personalized access to news. In this approach the user builds an interest profile from a set of over 2,500 topics ordered in a hierarchy. The user may browse the hierarchy while selecting leaf nodes to include in the profile. ...

##Model

Starting from the central idea of the Gale-Shapley algorithm and given an user(let's call him Luke) from a Social Network we will denote two sets of users for the individual in cause:

  1. one will contain the actual friends of Luke
  2. the other will contain the users that are not YET friends with Luke.(We will select the users that are not friends with the individual in cause based on an algorithm described below).

The algorithm that we will be using to select the users that are not friends with Luke follows the next steps:

  1. Find all the users that are friends with Luke at a moment
  2. For every friend get a list of its friends(removing duplicates so we avoid circularity)
  3. Repeat Step 2 one more time for every individual in the current list

We will create a profile for every user in these two sets and based on the maximum number of friends that Luke can have we will try to make him happy by suggesting the most similar users to become his friends.

When developing our application we will use different APIs like: Facebook DataApi, TwitterApi, IMDB API, ArtistLink, goodreads and others in order to creat a user's profile that should look like this:

{
    "userId": "123",
    "userName": "user.name",
    "books":
    [
        {
          "type": "drama", 
          "titles": ["drama 1", "drama 2"]
        },
        {
          "type": "comedy",
          "titles": ["comedy 1", "comedy 2", "comedy 3"]
        }
    ],
    "music":
    [
       ... 
    ]
    ...
}

We will use the profiles created to find the N best friends for Luke(where N is the maximum number of friends that Luke can have) by calculating a score for every user based on the common "features" between them and Luke(for example they both like comedy moovies and they have watched at least same 10 movies).

##Useful Links

A partner-matching framework for social activity communities

User profile matching in social networks

On Finding Better Friends in Social Networks

Local Matching Dynamics in Social Networks

Using NLP for Machine Learning of User Profiles

Facebook API - get friends

Facebook API - get books

Facebook API - get movies

Facebook API - get music

Facebook API - get TV shows

Twitter API - get friend suggestions

Stable Matching Algorithms Articles

About

Social Networks Users Profiling

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published