-
Notifications
You must be signed in to change notification settings - Fork 0
/
binary.py
34 lines (26 loc) · 817 Bytes
/
binary.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# -*- coding: utf-8 -*-
import os
import ast
import csv
from lematization import lemm_str
from pagerank import pagerank
import operator
def search(query: str, index_csv_path: str) -> [str]:
lemms = lemm_str(query)
doc_lists = []
with open(index_csv_path) as f:
reader = csv.DictReader(f, delimiter=',')
for line in reader:
for word in lemms:
doc_lists.append(ast.literal_eval(line.get(word, '[]')))
result = set()
if len(doc_lists) > 0:
result.update(set(doc_lists[0]))
for docs in doc_lists:
result.intersection_update(docs)
return list(result)
if __name__ == "__main__":
query = input("Enter your request:")
answers = search(query, "./inverted_index.csv")
for item in pagerank(answers):
print(item)