import psutil | |
from src.configuration.config import SessionStateConfig | |
from src.nlp.playground.textsummarization import SumySummarizer | |
from src.utils.markdown_processing.CustomMarkdownAnalyzer.MarkdownAnalyzer import MarkdownAnalyzer | |
import streamlit as st | |
class DescriptionExtractor: | |
def __init__(self): | |
pass | |
def extract_description(self, md, event_title): | |
md_analyzer = MarkdownAnalyzer(md).identify_all()["block_elements"] | |
md_analyzer = sorted(md_analyzer, key=lambda el: el.line) | |
text = "\n\n".join([el.text for el in md_analyzer]) | |
if SessionStateConfig.SUMY_SUMMARIZER not in st.session_state: | |
st.session_state[SessionStateConfig.SUMY_SUMMARIZER] = SumySummarizer() | |
sumy_summary = st.session_state[SessionStateConfig.SUMY_SUMMARIZER].summarize(text) | |
description = [] | |
for element in md_analyzer: | |
if any(sentence in element.markdown for sentence in sumy_summary)and event_title != element.text: | |
description.append(element.markdown) | |
return "\n\n".join(description) |