Skip to content

Commit 3a57f9d

Browse files
committed
added parameter for cf engine
1 parent 3025891 commit 3a57f9d

File tree

5 files changed

+16
-11
lines changed

5 files changed

+16
-11
lines changed

src/engine/CFResourceRecommenderEngine.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ License, or (at your option) any later version.
3131
import common.Features;
3232
import common.Similarity;
3333

34-
public class CFResourceRecommenderEngine implements EngineInterface {
34+
public class CFResourceRecommenderEngine implements ResourceEngineInterface {
3535

3636
private BookmarkReader reader = null;
3737
private BM25Calculator calculator = null;
@@ -55,10 +55,13 @@ public void loadFile(String filename) throws Exception {
5555
resetStructure(reader, calculator);
5656
}
5757

58-
public synchronized Map<String, Double> getEntitiesWithLikelihood(String user, String resource, List<String> topics, Integer count) {
58+
public synchronized Map<String, Double> getEntitiesWithLikelihood(String user, String resource, List<String> topics, Integer count, Boolean filterOwnEntities) {
5959
if (count == null || count.doubleValue() < 1) {
6060
count = 10;
6161
}
62+
if (filterOwnEntities == null) {
63+
filterOwnEntities = true;
64+
}
6265
Map<String, Double> resourceMap = new LinkedHashMap<>();
6366
if (this.reader == null || this.calculator == null) {
6467
return resourceMap;
@@ -68,7 +71,7 @@ public synchronized Map<String, Double> getEntitiesWithLikelihood(String user, S
6871
userID = this.reader.getUsers().indexOf(user);
6972
}
7073

71-
Map<Integer, Double> resourceIDs = this.calculator.getRankedResourcesList(userID, true, false, false);
74+
Map<Integer, Double> resourceIDs = this.calculator.getRankedResourcesList(userID, true, false, false, filterOwnEntities.booleanValue());
7275
for (Map.Entry<Integer, Double> tEntry : resourceIDs.entrySet()) {
7376
if (resourceMap.size() < count) {
7477
resourceMap.put(this.reader.getResources().get(tEntry.getKey()), tEntry.getValue());

src/engine/EngineUtils.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,8 +65,7 @@ public static Map<String, Double> calcTopResources(BookmarkReader reader) {
6565
countSum += reader.getResourceCounts().get(i);
6666
}
6767

68-
Map<Integer, Integer> sortedCountMap = new TreeMap<Integer, Integer>(
69-
new IntMapComparator(countMap));
68+
Map<Integer, Integer> sortedCountMap = new TreeMap<Integer, Integer>(new IntMapComparator(countMap));
7069
sortedCountMap.putAll(countMap);
7170

7271
for (Map.Entry<Integer, Integer> entry : sortedCountMap.entrySet()) {

src/processing/BM25Calculator.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ public BM25Calculator(BookmarkReader reader, int trainSize, boolean predictTags,
9999
}
100100
}
101101

102-
public Map<Integer, Double> getRankedResourcesList(int userID, boolean sorting, boolean allResources, boolean bll) {
102+
public Map<Integer, Double> getRankedResourcesList(int userID, boolean sorting, boolean allResources, boolean bll, boolean filterOwnEntities) {
103103
List<Integer> userResources = null;
104104
Map<Integer, Double> userBllResources = null;
105105
if (this.resBased) {
@@ -127,7 +127,7 @@ public Map<Integer, Double> getRankedResourcesList(int userID, boolean sorting,
127127
if (bm25 != 0.0) {
128128
List<Integer> resources = Bookmark.getResourcesFromUser(this.trainList, neighbor.getKey());
129129
for (Integer resID : resources) {
130-
if (!userResources.contains(resID)) {
130+
if (!filterOwnEntities || !userResources.contains(resID)) {
131131
double bllVal = (bll ? userBllResources.get(resID) : 1.0);
132132
Double val = rankedResources.get(resID);
133133
double entryVal = bllVal * bm25;
@@ -284,7 +284,7 @@ private static List<Map<Integer, Double>> startBM25CreationForResourcesPredictio
284284
List<Map<Integer, Double>> results = new ArrayList<Map<Integer, Double>>();
285285
for (Integer userID : reader.getUniqueUserListFromTestSet(trainSize)) {
286286
Map<Integer, Double> map = null;
287-
map = calculator.getRankedResourcesList(userID, true, allResources, bll); // TODO
287+
map = calculator.getRankedResourcesList(userID, true, allResources, bll, true); // TODO
288288
results.add(map);
289289
}
290290

src/test/Pipeline.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ License, or (at your option) any later version.
4444
import engine.CFResourceRecommenderEngine;
4545
import engine.EngineInterface;
4646
import engine.LanguageModelEngine;
47+
import engine.ResourceEngineInterface;
4748
import engine.TagRecommenderEngine;
4849
import engine.ThreeLayersEngine;
4950
import file.BookmarkReader;
@@ -167,15 +168,17 @@ public static void main(String[] args) {
167168
}
168169
System.out.println("TagRec with Topics: " + tagrecEngine.getEntitiesWithLikelihood("41", "545", Arrays.asList("ontology", "conference", "tutorial", "web2.0", "rss", "tools"), 10));
169170
System.out.println("TagRec without Topics: " + tagrecEngine.getEntitiesWithLikelihood("41", "545", null, 10));
170-
EngineInterface resrecEngine = new CFResourceRecommenderEngine();
171+
ResourceEngineInterface resrecEngine = new CFResourceRecommenderEngine();
171172
try {
172-
resrecEngine.loadFile("hugo2");
173+
resrecEngine.loadFile(path);
173174
} catch (Exception e2) {
174175
e2.printStackTrace();
175176
}
176-
System.out.println("CF: " + resrecEngine.getEntitiesWithLikelihood("0", null, null, 10));
177+
System.out.println("CF Filter: " + resrecEngine.getEntitiesWithLikelihood("0", null, null, 20, true));
178+
System.out.println("CF -Filter: " + resrecEngine.getEntitiesWithLikelihood("0", null, null, 20, false));
177179
*/
178180

181+
179182
// Commandline Arguments
180183
if (args.length < 3) {
181184
System.out.println("Too few arguments!");

tagrec.jar

355 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)