From 05a51cd5e6dcd62f32d50fd8447b00a41aa3403e Mon Sep 17 00:00:00 2001 From: Dominik Roth Date: Fri, 11 Feb 2022 17:50:07 +0100 Subject: [PATCH] Better newBooks --- caliGraph.py | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/caliGraph.py b/caliGraph.py index a2de9b4..724d4d6 100755 --- a/caliGraph.py +++ b/caliGraph.py @@ -992,7 +992,7 @@ def progress(G, minimum=3.5): print('Progress: '+str(perc)+'%') -def analyze(G, books, type_name, name, dist=2.1): +def analyze(G, books, mu, type_name, name, dist=2.1): from fuzzywuzzy import fuzz type_ident = type_name[0] full_name = type_ident + "/" + name @@ -1009,7 +1009,7 @@ def analyze(G, books, type_name, name, dist=2.1): if bestRatio < 70: print("Best Match: "+match['label']) - findNewBooks(G, books, num=-1, minRecSco=1) + findNewBooks(G, books, mu, num=-1, minRecSco=1) menge = set() waveFlow(G, match, n, dist, menge) @@ -1095,8 +1095,8 @@ def shell(G, books, mu, std): def newBooks(G, books, num, mu, std): removeBad(G, mu-std*2) + findNewBooks(G, books, mu, num, minRecSco = mu-std) removeThinRecs(G, 2) - findNewBooks(G, books, num, minRecSco = mu-std) removeUnread(G) removeUselessReadBooks(G) removeTags(G) @@ -1110,7 +1110,7 @@ def newBooks(G, books, num, mu, std): addScoreToLabels(G) -def findNewBooks(G, books, num=-1, minRecSco=5): +def findNewBooks(G, books, mu, num=-1, minRecSco=5): mrbdf = pd.read_csv('mrb_db.csv') recs = [] for n in list(G.nodes): @@ -1148,9 +1148,10 @@ def findNewBooks(G, books, num=-1, minRecSco=5): G.remove_node(n) else: ses.append(min(ses)) - node['fake_se'] = sum(ses)/(len(ses)**1.2) + 0.5 + 0.5 * (len(scores)==1) # This is not how SE works. DILLIGAF? + scores.append(mu) + node['fake_se'] = sum(ses)/(len(ses)**1.2) + 0.5 + 0.5 * (len(scores)==2) # This is not how SE works. DILLIGAF? node['score'] = sum(scores)/len(scores)*1.2 - node['fake_se']*2 + 0.5 - 0.1/math.sqrt(len(scores)) - if len(scores)==1: + if len(scores)==2: node['score']*=0.80 node['value'] = 20 + 5 * float(node['score']) node['label'] += " ({:.2f}±{:.1f})".format(node['score'], node['fake_se']) @@ -1342,7 +1343,7 @@ def cliInterface(): if args.new==-1: args.new = int(args.n / 5) if args.new != 0: - findNewBooks(G, books, args.new, minRecSco = mu-std) + findNewBooks(G, books, mu, args.new, minRecSco = mu-std) if args.tag_based: if args.recommender_based: raise Exception('tag-based and recommender-based can not be be combined') @@ -1356,7 +1357,7 @@ def cliInterface(): elif args.cmd=="read": readBooksAnalysis(G, args.min_rating, args.all_tags, args.only_connected, not args.keep_top_lists) elif args.cmd=="analyze": - analyze(G, books, args.type, args.name, args.d) + analyze(G, books, mu, args.type, args.name, args.d) elif args.cmd=="full": fullGraph(G, not args.keep_top_lists) elif args.cmd=="competence":