Skip to content

Commit 688a7a8

Browse files
committed
Added Interests Similarity based weight computation
Renamed graphalytics serializer with weights to extended
1 parent 34d2558 commit 688a7a8

File tree

2 files changed

+25
-4
lines changed

2 files changed

+25
-4
lines changed

src/main/java/ldbc/snb/datagen/objects/similarity/InterestsSimilarity.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,21 @@
22

33
import ldbc.snb.datagen.objects.Person;
44

5+
import java.util.Set;
6+
import java.util.TreeSet;
7+
58
/**
69
* Created by aprat on 22/01/16.
710
*/
811
public class InterestsSimilarity implements Person.PersonSimilarity {
912
public float Similarity(Person personA, Person personB) {
10-
return 0;
13+
Set<Integer> union = new TreeSet<Integer>(personA.interests());
14+
union.addAll(personB.interests());
15+
union.add(personA.mainInterest());
16+
union.add(personB.mainInterest());
17+
Set<Integer> intersection = new TreeSet<Integer>(personA.interests());
18+
intersection.retainAll(personB.interests());
19+
if(personA.mainInterest() == personB.mainInterest()) intersection.add(personA.mainInterest());
20+
return union.size() > 0 ? intersection.size() / (float)union.size() : 0;
1121
}
1222
}

src/main/java/ldbc/snb/datagen/serializer/graphalytics/CSVPersonSerializerWithWeights.java renamed to src/main/java/ldbc/snb/datagen/serializer/graphalytics/CSVPersonSerializerExtended.java

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,11 +50,12 @@
5050
import java.util.ArrayList;
5151
import java.util.Iterator;
5252

53-
public class CSVPersonSerializerWithWeights extends PersonSerializer {
53+
public class CSVPersonSerializerExtended extends PersonSerializer {
5454

5555
private HDFSCSVWriter [] writers;
5656

5757
private enum FileNames {
58+
PERSON("person"),
5859
PERSON_KNOWS_PERSON("person_knows_person");
5960

6061
private final String name;
@@ -67,7 +68,7 @@ public String toString() {
6768
}
6869
}
6970

70-
public CSVPersonSerializerWithWeights() {
71+
public CSVPersonSerializerExtended() {
7172
}
7273

7374
public void initialize(Configuration conf, int reducerId) {
@@ -78,9 +79,15 @@ public void initialize(Configuration conf, int reducerId) {
7879
}
7980

8081
ArrayList<String> arguments = new ArrayList<String>();
82+
arguments.add("id");
83+
arguments.add("creationDate");
84+
writers[FileNames.PERSON.ordinal()].writeEntry(arguments);
85+
86+
arguments.clear();
8187
arguments.clear();
8288
arguments.add("Person.id");
8389
arguments.add("Person.id");
90+
arguments.add("CreationDate");
8491
arguments.add("Weight");
8592
writers[FileNames.PERSON_KNOWS_PERSON.ordinal()].writeEntry(arguments);
8693

@@ -96,7 +103,10 @@ public void close() {
96103

97104
@Override
98105
protected void serialize(Person p) {
99-
106+
ArrayList<String> arguments = new ArrayList<String>();
107+
arguments.add(Long.toString(p.accountId()));
108+
arguments.add(Dictionaries.dates.formatDateTime(p.creationDate()));
109+
writers[FileNames.PERSON.ordinal()].writeEntry(arguments);
100110
}
101111

102112
@Override
@@ -111,6 +121,7 @@ protected void serialize(Person p, Knows knows) {
111121
ArrayList<String> arguments = new ArrayList<String>();
112122
arguments.add(Long.toString(p.accountId()));
113123
arguments.add(Long.toString(knows.to().accountId()));
124+
arguments.add(Dictionaries.dates.formatDateTime(knows.creationDate()));
114125
arguments.add(Float.toString(knows.weight()));
115126
writers[FileNames.PERSON_KNOWS_PERSON.ordinal()].writeEntry(arguments);
116127
}

0 commit comments

Comments
 (0)