Spaces:
Runtime error
Runtime error
from src.subject import Subject | |
from src.algorithms.textrank import TextRank | |
class WikiContext(Subject): | |
def __init__(self, subject, algorithm, params, max_prereqs=5): | |
Subject.__init__(self, subject=subject) | |
self.algorithm = algorithm | |
self.params = params | |
self.max_prereq = max_prereqs | |
self.content = None | |
self.prereq = {} | |
def get_main_content(self): | |
self.content = self._get_summary() | |
def get_prereqs_content(self): | |
keyphrases = self.get_top_keywords_from_rake() | |
hyperlinks = self._get_links() | |
match = [] | |
count = 0 | |
for phrase in keyphrases: | |
match.extend([hyperlink for hyperlink in hyperlinks if hyperlink.lower() in phrase.lower()]) | |
# Make it unique | |
match = list(set(match)) | |
for prereq in match[:self.max_prereq]: | |
s = Subject(prereq) | |
if s._check_page_exists: | |
summary = s._get_content() | |
if summary: | |
self.prereq[prereq] = summary | |
count += 1 | |
if count >= self.max_prereq: | |
break | |
def mapper(self): | |
if self.algorithm == 'TextRank': | |
return TextRank | |
def get_main_summary(self): | |
model_class = self.mapper() | |
model = model_class(text=self.content, **self.params) | |
summary = model.get_summary(self.algorithm) | |
if summary: | |
return summary | |
else: | |
return self.content | |
def get_prereqs_summary(self): | |
model_class = self.mapper() | |
prereq_summary = {} | |
count = 0 | |
for each in self.prereq: | |
try: | |
if count >= self.max_prereq: | |
break | |
model = model_class(self.prereq[each], **self.params) | |
prereq_summary[each] = model.get_summary(self.algorithm) | |
count += 1 | |
except ValueError: | |
continue | |
return prereq_summary | |