ABSTRACTA social network is a website or application which
enables users to connect with friends. User’s interest in
web search can affect her/his friends who have similar
interests and so if user’s interest can be tracked, then
more relevant information’s can be showed. The main
feature of social network is profile similarity,
friendship and prestige. User’s search preferences are
similar with those who expected with similar interests
and trust.
1
CHAPTER 1
INTRODUCTION
Human centric search is a promising paradigm to
optimize user experience and web search satisfaction. In
Face book and twitter social search can be considered as
systematic information between people. It supports human
activity and decision making. If professional
information’s is available, we can find more relevant
search results. But credible users or an expert user in
SN is unknown so user checks only a small portion of the
web results.
Ranking system is developed for search results and
wrong information is filtered. People are willing to work
with only known people so they can serve credible
information’s. Relations in a social network are
conceptualized by the connections between users.
Relations in a social network can be regarded as the
value of similarity and trust among people. The user’s
2
similarity can be measured by comparing their profiles.
Profile similarity, topic driven profile similarity,
friendship and prestige for accessing trust are important
features to be extracted from social network.
1.1 PROBLEM STATEMENT
In social network user checks only a small portion of
web results and some wrong information’s get displayed
due to lack of common knowledge among users .Friends
interest spoils users personal interest.
1.2 OBJECTIVE
The main objective is by developing ranking system to
identify similar credible users to find more relevant
search results based upon users friends interest and
users personal interest in social network.
1.3 PROPOSED APPROACH
In the proposed approach Interest driven ranking
algorithm is proposed to rank the user’s social
information such as user profile and connectivity by
topics with similar interests and trusts.
3
Algorithm works to assign a numerical
weighting to each node in a social network. This helps in
calculating superposition attention of node which
directly receives from neighbourhood. The similarity of
user profiles to be measured. Similarity can be measured
by generating association matrix between topics and
profile attributes. Social rank algorithm helps to bring
social information into personalized social search.
1.4 OUTLINE REPORT
The rest of the report is organized as follows: In
Chapter 2, Algorithm and architecture is discussed. The
implementation details is discussed in Chapter 3.
Conclusion is discussed in chapter 4.
4
CHAPTER 2
INTEREST DRIVEN RANKING ALGORITHM FOR LARGER
DATA IN SOCIAL NETWORK
2.1 INTRODUCTION
People are strongly willing to work or associate with
those whom they know or trust rather than with strangers.
So that only trustworthy people can obtain credible
information.
Personalized smart finder is our important
implementation prototype system. It extracts user
profiles from social network. By social ranking it
performs topical classification among users and
personalizes web search results. This finder consists of
twelve components which helps us to extract user profiles
from sns and use to extract concerned information and
ranks social relationship among web users.
Social relationship between people in SN assesses the
social rank including their topical preferences by
comparing personal Ratings. This algorithm is to be
evaluating with larger data sets and query sets. In
addition social routing method to be studied to improve
trust and accuracy.
5
2.2 ARCHITECTURE
Fig 2.2.1 personalized smart finder
2.3 ALGORITHM
Interest driven social rank algorithm proceeds with
social rank and page rank. Similarity is to be calculated
so that it uses the following equation to predict ranking
among users based upon interest.
SIM(ui,uj) = 1𝑚Σ∝𝑘𝐴𝑡𝑡𝑘𝑚𝑘=1 (1)
where m is the number of profile attributes, ak is a
weight of the kth profile attribute, ATT is the k Th
attribute.
TSIM(ui,uj) = 1𝑚Σ∝𝑘(𝑤𝑚∗𝐴𝑡𝑡𝑘𝑚𝑘=1) (2)
CL(ui,uj)(d) = max(1 - (1 - f)d, r) (3)
CO(ui,uj)= 1𝑑Σ𝑙𝑘𝑑𝑘=1 (4)
6
FR(ui,uj) = CL(ui,uj)(d) * CO(ui,uj) (5)
Kiin = Σ𝑒𝑗,𝑗=1 (6)
di = 1𝑛−1 Σ𝑒𝑗,𝑖𝑗=1 (7)
PR(ui) = 𝑘𝑖 𝑖𝑛𝑑𝑖 (8)
SRank (uj)
P (s|u) = 1(𝑢)exp [Σ𝜆𝑖𝑓𝑖(𝑢,𝑠)]3𝑖
= 1𝑍(𝑢)exp [Σ𝜆1∗SIM(ui,uj)+𝜆2∗ 𝐹𝑅(ui,uj)+𝜆3∗PR(uj) ]3𝑖
TSRank (uj)
P (s|u) = 1(𝑢)exp [Σ𝜆𝑖𝑓𝑖(𝑢,𝑠)]3𝑖
= 1𝑍(𝑢)exp [Σ𝜆1 𝑇∗SIM(ui,uj)+𝜆2∗ 𝐹𝑅(ui,uj)+𝜆3∗PR(uj) ]3𝑖
2.4 PERFORMANCE METRICS
Relevant search results
CHAPTER 3
IMPLEMENTATION DETAILS
3.1 SOFTWARE REQUIREMENTS
The proposed system is implemented using c# code in
windows form application.
FRONT END: VISUAL STUDIO 2010
BACK END: SQL 2008
7
C# is an elegant and type-safe object-oriented language
that enables developers to build a variety of secure and
robust applications that run on the .NET Framework. You can
use C# to create Windows client applications, XML Web
services, distributed components, client-server applications,
database applications, and much, much more. Visual C# provides
an advanced code editor, convenient user interface designers,
integrated debugger, and many other tools to make it easier to
develop applications based on the C# language and the .NET
Framework.
3.2 HARDWARE REQUIREMENTS
RAM : 6GB HDD : 500 GB
PROCESSOR : INTEL i3
3.3 MODULE DESCRIPTION
3.3.1 USER LOGINUser has to sign in into personalized smart finder to
get search results using Google API.Google API transmits
a users query to google and collects search results to
personalized smart finder. For every users login is very
important get into the finder to perform search actions
by connecting with friends. Login is considered to be an
user authentication. Sign up is an addition option to
register more new users to experience new search results
using personalized smart finder.
8
3.3.2 QUERY SEARCH RESULTSAfter login user can able to enter his search query in
the provided text box in the personalized smart finder.
When system is connected to internet the given query can
processed into google and it is able to retrieve
information from google by Google API.
As google does our personalized smart finder also able
to display number of search results based upon users
query and no of results based on word 1 and word 2 got
displayed. Thus Google API plays an important role in
query search results.
9
CHAPTER 4
CONCLUSIONBy social rank we can measure the social relationship
between people in social network. By comparing personal
ratings we can evaluate its effectiveness and can predict
high social relationship values among users. By
personalized Smart finder process the above process can
performed and thus credible users can issues more
relevant search results than other users.
10
REFERENCES
Aditya Telang, Chengkai Li, and Sharma Chakravarthy One
Size Does Not Fit All: Toward User- and Query-Dependent
Ranking for Web Databases-2012.
Bin Tan, Xuehua Shen, ChengXiang Zhai Mining Long-Term
Search History To Improve Search Accuracy-2006.
C. Srinvas Explicit User Profiles for Semantic Web Search
Using XML-2012.
11
David C. Evans, Samuel D. Gosling, Anthony Carroll What
Elements of an Online Social Networking Profile Predict
Target- Rater Agreement in Personality Impressions?-2008.
David Carmel, Naama Zwerdling, Ido Guy, Shila Ofek-
Koifman, Nadav Har’el,
Eyuphan Bulut and Boleslaw K. Szymanski Friendship Based
Routing in Delay Tolerant Mobile Social Networks-2010
Eyuphan Bulut, Boleslaw K. Szymanski, Fellow Exploiting
Friendship Relations for Efficient Routing in Mobile
Social Networks-2012.
Heasoo Hwang, Hady W. Lauw, Lise Getoor, and Alexandros
Ntoulas Organizing user Search Histories-2012.
Inbal Ronen, Erel Uziel, Sivan Yogev Personalized Social
Search Based on the User’s Social Network-2009.
Irwin King, Jiexing Li, and Kam Tong Chan A Brief Survey
of Computational Approaches in Social Computing-2009.
Jyoti Gautam, Ela Kumar an Improved Framework for Tag-
Based Academic Information Sharing and Recommendation
System-2012.
Kazunari Sugiyama, Kenji Hatano, Masatoshi Yoshikawa
Adaptive Web Search Based on User Profile Constructed
without Any Effort from Users-2004
Ko-Jen Hsiao, Alex Kulesza, and Alfred O. Hero, Fellow
Social Collaborative Retrieval-2014.
Manos Papagelis, Gautam Das, Nick Koudas Sampling Online
Social Networks-2013.
12
Ning-Han Liu Effective Results Ranking for Mobile Query
by Singing/Humming Using a Hybrid Recommendation
Mechanism-2014.
Qi Liu, Enhong Chen, Hui Xiong, Chris H. Q. Ding, Jian
Chen Enhancing Collaborative Filtering by User Interest
Expansion via Personalized Ranking-2012.
Retrieval Effectiveness -2004.
Sangil Song, Sung-Eun Park, Sang-goo Lee, Donghoon Shin A
General Model for Document Ranking using Rich Contextual
Information-2011.
Shenghua Bao, Xiaoyuan Wu, Ben Fei, Guirong Xue, Zhong
Su, and Yong Yu Optimizing Web Search Using Social
Annotations-2007.
T.GnanaJanani, M.SivaKumar Efficient Information
Retrieval System with Higher Priority for User
Preference-2014.
Thi Zin, Pyke Tin, Takashi Toriu A Stochastic Model for
Measuring Popularity and Reliability in Social Network
Systems-2013.
Xin Jin, Jiebo Luo, Fellow, Dhiraj Joshi, Gang Wang
Reinforced Similarity Integration in Image-Rich
Information Networks-2013.
Zhicheng Dou, Ruihua Song, Ji-Rong Wen, and Xiaojie Yuan
Evaluating the Effectiveness of Personalized Web Search-
2009.
14
Gang Chen, Chor Ping Low, Zhonghua Yang Enhancing Search
Performance in Unstructured P2P Networks Based on Users’
Common Interest-2008.
Vu thanh Nguyen Using social annotation and web log to
enhance Search engine-2009.
Fang Liu, Clement Yu, Weiyi Meng Personalized Web Search
for Improving Retrieval Effectiveness -2004.
APPENDIX A
SAMPLE SOURCE CODE
USER LOGIN CODE
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
15
using System.Windows.Forms;
using System.Data.SqlClient;
namespace PreProcesssDB
{
public partial class frmUser : Form
{
clsConnection db = new clsConnection();
string qry;
DataSet ds;
public frmUser()
{
InitializeComponent();
}
private void butRegister_Click(object sender,
EventArgs e)
{ }
private void groupBox2_Enter(object sender,
EventArgs e)
{
}
16
private void butLogin_Click(object sender,
EventArgs e)
{ qry = "select * from [MovieLens].[dbo].[User]
where UserId='" + txtUserName.Text + "'and TwitterId='" +
txtPassword.Text + "'";
ds = db.getDataset(qry);
if (ds.Tables[0].Rows.Count > 0)
{
frmGoogleAPI objGAPI = new
frmGoogleAPI();
//objGAPI.MdiParent = this;
this.Close();
objGAPI.Show();
}
else
{
lblStatus.Text = "Invalid User";
lblStatus.Visible = true; }
}
17
private void frmUser_Load(object sender,
EventArgs e)
{
}
}
}
GOOGLE API CODE
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.Web;
using System.Runtime.Serialization;//.Web;
using Newtonsoft.Json.Serialization;
using Newtonsoft.Json;
using Newtonsoft.Json.Bson;
using Newtonsoft.Json.Converters;
18
using Newtonsoft.Json.Linq;
using Newtonsoft.Json.Schema;
using Newtonsoft.Json.Utilities;
using System.IO;
using System.Runtime.Serialization.Json;
using HtmlAgilityPack;
using System.Text.RegularExpressions;
namespace PreProcesssDB
{
public partial class frmGoogleAPI : Form
{
const int ClusterNo = 10;
public static double theeta = 0.4;
clsConnection db = new clsConnection();
string qry;
DataSet ds;
public frmGoogleAPI()
{
InitializeComponent();
}
public static List<SearchResult>
GoogleSearch(string search_expression, Dictionary<string,
object> stats_dict)
{
19
var results_list = new List<SearchResult>();
try
{
var url_template =
"http://ajax.googleapis.com/ajax/services/search/web?
v=1.0&rsz=large&safe=active&q={0}&start={1}";
Uri search_url;
// int[] offsets = { 0,
8,16,24,32,40,48,56,64,72 };
int[] offsets = { 0,
8,16,24,32,40,48,56,64 };
// int[] offsets = { 0, 8, 16, 24, 32, 40,
48, 56};
foreach (var offset in offsets)
{
try
{
search_url = new
Uri(string.Format(url_template, search_expression,
offset));
var page = new
WebClient().DownloadString(search_url);
JObject o =
(JObject)JsonConvert.DeserializeObject(page);
var results_query = from result
in o["responseData"]["results"].Children()
20
select new
SearchResult(url: result.Value<string>("url").ToString(),
title: result.Value<string>("title").ToString(), content:
result.Value<string>("content").ToString(), engine:
SearchResult.FindingEngine.google);
foreach (var result in
results_query)
{
results_list.Add(result);
}
}
catch (InvalidOperationException iox)
{
continue;
//MessageBox.Show(iox.Message,
"Exception");
}
}
}
catch (Exception ex)
{
}
return results_list;
}
21
private bool checkentry(string input)
{
if (input.Split(' ').Length == 2)
return true;
else
return false;
}
public static double A, B, AB;
private DataSet checkentryinDB(string input1,
string input2)
{
qry = "SELECT SearchID,PCount,PCount1,PCount2
FROM [WordSIM].[dbo].[SimSearch] where [Word1]='" +
input1 + "' and [Word2]='" + input2 + "'";
return db.getDataset(qry);
}
static string SearchID = "";
string SearchPair;
private void clearAll()
{
tbxSnipps.Clear();
tbxPCount.Clear();
tbxPCount1.Clear();
tbxPCount2.Clear();
}
22
List<SearchResult> list;
private void button1_Click(object sender,
EventArgs e)
{
try
{
clearAll();
SearchPair = tbxSearchPair.Text.Trim();
if (checkentry(SearchPair))
{
list = new List<SearchResult>();
DataSet ds_DbResults =
checkentryinDB(SearchPair.Split(' ')[0],
SearchPair.Split(' ')[1]);
if (ds_DbResults.Tables[0].Rows.Count
== 0)//no data in DB for this search. So move to Internet
{
progressBar1.Visible = true;
progressBar1.Style =
ProgressBarStyle.Marquee;
progressBar1.MarqueeAnimationSpee
d = 100;
progressBar1.Refresh();
//Word 1
button1.Enabled = false;
23
var doc = new
HtmlWeb().Load("http://www.google.com/search?q=" +
SearchPair.Split(' ')[0].ToString());
var div =
doc.DocumentNode.SelectSingleNode("//div[@id='resultStats
']");
var text = div.InnerText;
var matches = Regex.Matches(text,
@"About ([0-9,]+) ");
var total =
matches[0].Groups[1].Value;
tbxPCount1.Text =
total.ToString();
progressBar1.Refresh();
//Word 2
doc = new
HtmlWeb().Load("http://www.google.com/search?q=" +
SearchPair.Split(' ')[1].ToString());
div =
doc.DocumentNode.SelectSingleNode("//div[@id='resultStats
']");
text = div.InnerText;
matches = Regex.Matches(text,
@"About ([0-9,]+) ");
total =
matches[0].Groups[1].Value;
24
tbxPCount2.Text =
total.ToString();
progressBar1.Refresh();
//word pair
doc = new
HtmlWeb().Load("http://www.google.com/search?q=" +
tbxSearchPair.Text.Trim());
div =
doc.DocumentNode.SelectSingleNode("//div[@id='resultStats
']");
text = div.InnerText;
matches = Regex.Matches(text,
@"About ([0-9,]+) ");
total =
matches[0].Groups[1].Value;
tbxSnipps.Text = "Exception
Occured";
tbxPCount.Text =
total.ToString();
progressBar1.Refresh();
qry = "INSERT INTO [WordSIM].
[dbo].[SimSearch] VALUES ('" + SearchPair.Split(' ')
[0].ToString() + "','" + SearchPair.Split(' ')
[1].ToString() + "','" + tbxPCount.Text.Replace(",", "")
+ "','" + tbxPCount1.Text.Replace(",", "") + "','" +
tbxPCount2.Text.Replace(",", "") + "')";
25
db.exeQuery(qry);
//string SearchID="";
qry = "SELECT MAX([SearchID])
FROM [WordSIM].[dbo].[SimSearch]";
ds = db.getDataset(qry);
SearchID = ds.Tables[0].Rows[0]
[0].ToString();
Dictionary<string, object> dicObj
= new Dictionary<string, object>();
list =
GoogleSearch(tbxSearchPair.Text.Trim(), dicObj);
for (int i = 0; i < list.Count;
i++)
{
qry = "INSERT INTO [WordSIM].
[dbo].[Snippets] VALUES('" + SearchID + "','" +
list[i].url + "','" + StripTagsCharArray(list[i].title) +
"','" + StripTagsCharArray(list[i].content) + "','" +
list[i].engine + "')";
db.exeQuery(qry);
}
//textBox2.Text =
list.Count.ToString();
//textBox3.Text="";
}
26
else if
(ds_DbResults.Tables[0].Rows.Count > 0)//get data from DB
{
tbxPCount1.Text =
ds_DbResults.Tables[0].Rows[0]["PCount1"].ToString();
tbxPCount2.Text =
ds_DbResults.Tables[0].Rows[0]["PCount2"].ToString();
tbxPCount.Text =
ds_DbResults.Tables[0].Rows[0]["PCount"].ToString();
SearchID =
ds_DbResults.Tables[0].Rows[0]["SearchID"].ToString();
// A =
Convert.ToDouble(ds_DbResults.Tables[0].Rows[0]
["PCount1"]);
//B =
Convert.ToDouble(ds_DbResults.Tables[0].Rows[0]
["PCount2"]);
//AB =
Convert.ToDouble(ds_DbResults.Tables[0].Rows[0]
["PCount"]);
//qry = "SELECT [SnipID],
[Content] FROM [WordSIM].[dbo].[Snippets] where
[SearchID]='" + ds_DbResults.Tables[0].Rows[0]
["SearchID"].ToString() + "'";
qry = "SELECT [SnipID], [url],
[title] ,[engine] ,[Content] FROM [WordSIM].[dbo].
27
[Snippets] where [SearchID]='" +
ds_DbResults.Tables[0].Rows[0]["SearchID"].ToString() +
"'";
ds = db.getDataset(qry);
for (int i = 0; i <
ds.Tables[0].Rows.Count; i++)
{
list.Add(new
SearchResult(url: ds.Tables[0].Rows[i]["url"].ToString(),
title: ds.Tables[0].Rows[i]["title"].ToString(), content:
ds.Tables[0].Rows[i]["Content"].ToString(), engine:
SearchResult.FindingEngine.google));
APPENDIX B
SAMPLE SCREENSHOTS
Fig B.1 [personalized smart finder]
28