Idea Transcript
MASTER THESIS INFORMATION SCIENCES
Delivering Content: The Right Content At the Right Time and at the Right Place to the Right Person
Author:
Supervisor:
Rikko Filiano
Prof. dr. ir. Arjen P. de Vries Second Assessor: Prof. dr. ir. Theo P. van der Weide
March 16, 2017
Abstract The number of User Generated Content providers and media contenders in Indonesia has been growing fast. Consequently, Keepo.me, as one of Indonesian User Generated Content providers, needs to overcome several challenges in order to, at least, hold their base in the high-risk competition. One of this challenges is to improve the User Engagement. Therefore, this master thesis has been carried out to find the truth whether incorporating Recommender Systems and contextual information on the Recommender Systems as organic circulation can improve the User Engagement on Keepo.me. This research has analysed the performances of two different Recommender Systems, a Content-based Filtering Recommender System and a Contextual User Modeling Recommender System. In Content-based Filtering approach, the recommendation is made by calculating the similarity between user’s interest profile and the items (in our case, the content article). While in Contextual User Modeling, the recommendation is made to the user based on their contextual information. Topic Modeling is used in the Contextual User Modeling technique to generate topics or keywords from content article collections in Keepo.me rankB ="," rankC ="," output ="])
9 10 11 12 13 14 15
for opt , arg in opts: if opt in ("-A", "--rankA "): rankA = ast. literal_eval (arg) elif opt in ("-B", "--rankB "): rankB = ast. literal_eval (arg) elif opt in ("-C", "--rankC "):
16
rankC = ast. literal_eval (arg)
17
elif opt in ("-o", "--output "):
18
output = str(arg)
19 20
except Exception :
21
print ’invalid ’
22
sys.exit ()
23 24
# Set interleaving
25
method = interleaving . TeamDraft ([ rankA , rankB , rankC ])
26
ranking = method . interleave ()
27 67
68
Appendix C Team-draft Multileaving script
28
# Store ranking to file
29
with open(’/var/www/ interleaving / data3 /’ + output + ’.rank ’, ’wb ’) as f:
30
pickle .dump(ranking , f, pickle . HIGHEST_PROTOCOL )
31 32
print ranking
33 34 # 35 # Other code 36 #
Appendix D
Team-draft Multileaving evaluation script 1 #!/ usr/bin/ python 2 3 # 4 # Other code 5 # 6 7 def ev(input , file): 8
# Check if file exists
9
if (os.path. isfile (’/var/www/ interleaving / data3 /’ + input [1] + ’.rank ’) == False ):
10
return
11 12
try:
13
# Read stored rank
14
with open(’/var/www/ interleaving / data3 /’ + input [1] + ’.rank ’, ’rb ’) as f:
15
ranking = pickle .load(f)
16 17
# Evaluate multileaving
18
result = interleaving . TeamDraft . evaluate (ranking , input [0])
19 20
# Write to file
21
with open(’/var/www/ interleaving / data_eval3 / eval_ ’ + file , ’ab ’) as f:
22
f. write (json. dumps ( result ) + "\n") 69
70
Appendix D Team-draft Multileaving evaluation script
23 24
except Exception , e:
25
print ’failed :’ + input [1] + ’ ; ’ + str(e)
26
result = None
27 28 # 29 # Other code 30 #
Appendix E
Stopword list Stopword ada
antum
begini
boleh
dia
adanya
apa
beginian
bolehkah
dialah
adalah
apaan
beginikah
bolehlah
diantara
adapun
apabila
beginilah
buat
diantaranya
agak
apakah
begitu
bukan
dikarenakan
agaknya
apalagi
begitukah
bukankah
dini
agan
apatah
begitulah
bukanlah
diri
agan-agan
atau
begitupun
bukannya
dirinya
agar
ataukah
belum
cuma
disini
aja
ataupun
belumlah
dahulu
disinilah
akan
bagai
berapa
dalam
dong
akankah
bagaikan
berapakah
dan
dulu
akhirnya
bagaimana
berapalah
dapat
enggak
aku
bagaimanakah
berapapun
dari
enggaknya
akulah
bagaimanapun
bermacam
daripada
entah
amat
bagi
bersama
deh
entahlah
amatlah
bahkan
betulkah
dekat
ente
anda
bahwa
biasa
demi
gak
andalah
bahwasanya
biasanya
demikian
gan
ane
bakal
bila
demikianlah
gimana
antar
banget
bilakah
dengan
gini
antara
banyak
bisa
depan
gitu
antaranya
beberapa
bisakah
di
gue
71
72
Appendix E Stopword list
gw
kalau
lah
meski
sama
hal
kalaulah
lain
meskipun
sambil
hampir
kalaupun
lainnya
mungkin
sampai
hanya
kalian
lalu
mungkinkah
sana
hanyalah
kalo
lama
nah
sangat
harus
kami
lamanya
namun
sangatlah
haruslah
kamilah
lebih
nanti
saya
harusnya
kamu
loe
nantinya
sayalah
hendak
kamulah
lu
neh
se
hendaklah
kan
macam
nggak
sebab
hendaknya
kapan
macem
nih
sebabnya
hingga
kapankah
maka
nyaris
sebagai
ia
kapanpun
makanya
oleh
sebagaimana
ialah
karena
makin
olehnya
sebagainya
ibarat
karenanya
malah
pada
sebaliknya
ingin
kau
malahan
padahal
sebanyak
inginkah
kaulah
mampu
padanya
sebegini
inginkan
ke
mampukah
paling
sebegitu
ini
kecil
mana
pantas
sebelum
inikah
kemudian
manakala
para
sebelumnya
inilah
kenapa
manalagi
pasti
sebenarnya
itu
kepada
masih
pastilah
seberapa
itukah
kepadanya
masihkah
per
sebetulnya
itulah
ketika
masing
percuma
sebisanya
jadi
khususnya
mau
pernah
sebuah
jangan
kini
maupun
pula
sedang
jangankan
kinilah
melainkan
pun
sedangkan
janganlah
kiranya
melalui
rupanya
sedemikian
jika
kita
memang
saat
sedikit
jikalau
kitalah
mengapa
saatnya
sedikitnya
juga
kok
mereka
saja
segala
justru
lagi
merekalah
sajalah
segalanya
kala
lagian
merupakan
saling
segera
Appendix E Stopword list
73
seharusnya
seolah
sudahkah
wong
sehingga
seorang
sudahlah
yaitu
sejak
sepanjang
supaya
yakni
sejenak
sepantasnya
tadi
yang
sekali
sepantasnyalah
tadinya
sekalian
seperti
tak
sekaligus
sepertinya
tanpa
sekalipun
sering
tapi
sekarang
seringnya
telah
seketika
serta
tentang
sekiranya
serupa
tentu
sekitar
sesaat
tentulah
sekitarnya
sesama
tentunya
sela
sesegera
terdiri
selagi
sesekali
terhadap
selain
seseorang
terhadapnya
selaku
sesuatu
terlalu
selalu
sesuatunya
terlebih
selama
sesudah
tersebut
selamanya
sesudahnya
tersebutlah
seluruh
setelah
tertentu
seluruhnya
seterusnya
tetapi
semacam
setiap
tiap
semakin
setidaknya
tidak
semasih
sewaktu
tidakkah
semaunya
siapa
toh
sementara
siapakah
tokh
sempat
siapapun
untuk
semua
sih
waduh
semuanya
sini
wah
semula
sinilah
wahai
sendiri
suatu
walau
sendirinya
sudah
walaupun
Appendix F
Team-draft Multileaving evaluation result
74
25/12/2016 26/12/2016 27/12/2016 28/12/2016 29/12/2016 30/12/2016 31/12/2016 01/01/2017
[0, 1], [0, 2] 292 463 398 1029 600 1239 525 462
[0, 1], [0, 2], [2, 1] 6 5 7 17 11 18 7 4
[0, 1], [2, 0], [2, 1] 2 7 5 12 8 15 6 6
[0, 1], [2, 1] 20 34 37 111 41 96 34 28
Table F.1: Team-draft Multileaving evaluation result
[0, 1], [0, 2], [1, 2] 3 6 4 18 11 32 5 8
[0, 2], [1, 2] 15 31 23 68 45 117 32 31
[1, 0], [0, 2], [1, 2] 4 7 6 15 13 19 6 7
Appendix F Team-draft Multileaving evaluation result 75
Appendix F Team-draft Multileaving evaluation result 76
25/12/2016 26/12/2016 27/12/2016 28/12/2016 29/12/2016 30/12/2016 31/12/2016 01/01/2017
[1, 0], [1, 2] 175 246 285 961 486 1040 422 370
[1, 0], [2, 0] 7 17 25 71 45 94 37 34
[1, 0], [2, 0], [1, 2] 2 5 5 8 12 14 8 8
[1, 0], [2, 0], [2, 1] 3 6 4 7 11 20 5 2 Table F.2: Team-draft Multileaving evaluation result
[2, 0], [2, 1] 217 317 245 967 486 986 360 339
[] 0 5 9 24 14 19 15 5