I am using TF-IDF algorithm to retrieve the relevant documents with the query that i input. I have successfully retrieve the relevant documents, and show it too. But i want to show the TOTAL documents that has been retrieved.
I am using this code (in result.html)to count the documents, but it show anything.
{% for i in result %}
{{i.pekerjaan.count}}
{% endfor %}
Here is the main.py :
result = []
for i in range(len(list_of_query)):
l = []
for j in range(len(tokens_doc)):
dic = {}
for kata in list_of_query[i]:
sums = 0
ind = queries.index(kata)
#print(ind)
for val in weight[ind][j].values():
sums += val
if(sums!= 0):
dic['docno'] = j+1
dic['score'] = sums
dic['deskripsi'] = doc_deskripsi[j]
dic['pekerjaan'] = doc_pekerjaan[j]
# dic['text'] = doc_text[j]
if(len(dic) != 0): l.append(dic)
result.append(l)
result
a=0
for i in range(len(list_of_query)):
result[i] = sorted(result[i], key = lambda x : x['score'], reverse = True)
for i in range(len(list_of_query)):
with open('resultquery.txt'.format(counter = i+1), 'w') as f:
f.write('Top 5 Documents :\n')
f.write('q_Id - DOC NO - Pekerjaan - SCORE\n')
if len(result[i]) > 5:
for x in range(5):
c = i + 1
f.write('%s - %s - %s - %s\n' %(c,doc_number[result[i][x]['docno']-1],result[i][x]['title'],result[i][x]['score']))
else:
for x in result[i]:
c = i + 1
f.write('%s - %s - %s - %s\n' %(c,doc_number[x['docno']-1],x['pekerjaan'],x['score']))
The result is like this picture below, that show NULL (after Result :)
Like this picture above, it just show the documents, but not the total document.
The output that I expected should be like this:
I hope some one can help me fix this problem. Thank you.
You are trying to refer to count
that is supposed to be used with Manager
(as if you got results from database using django ORM), but actually you are providing a dict instead.
You can use either length
filter like this:
{% for i in result %}
{{ i.pekerjaan|length }}
{% endfor %}
Or prepopulate length of results into dict, like this:
main.py:
# ...
if(sums!= 0):
dic['docno'] = j+1
dic['score'] = sums
dic['deskripsi'] = doc_deskripsi[j]
dic['pekerjaan'] = doc_pekerjaan[j]
dic['len_pekerjaan'] = len(doc_pekerjaan[j])
if(len(dic) != 0): l.append(dic)
and output it in template:
{% for i in result %}
{{ i.len_pekerjaan }}
{% endfor %}