from text_extractor import TextExtractor from and_other_pattern_matcher import AndOtherPatternMatcher from such_as_pattern_matcher import SuchAsPatternMatcher from or_other_pattern_matcher import OrOtherPatternMatcher from including_pattern_matcher import IncludingPatternMatcher from especially_pattern_matcher import EspeciallyPatternMatcher from text_extractor_pipe import TextExtractorPipe from knowledge_graph import KnowledgeGraph from matcher_pipe import MatcherPipe import spacy textExtractor1 = TextExtractor("WWII", "Q362") textExtractor1.extract() textExtractor2 = TextExtractor("London", "Q84") textExtractor2.extract() textExtractor3 = TextExtractor("Paris", "Q90") textExtractor3.extract() textExtractor4 = TextExtractor("World War I", "Q361") textExtractor4.extract() textExtractorPipe = TextExtractorPipe() textExtractorPipe.addTextExtractor(textExtractor1) textExtractorPipe.addTextExtractor(textExtractor2) textExtractorPipe.addTextExtractor(textExtractor3) textExtractorPipe.addTextExtractor(textExtractor4) nlp = spacy.load('en_core_web_sm') nlp.add_pipe(nlp.create_pipe('sentencizer')) # updated doc = nlp(textExtractorPipe.extract()) andOtherPatternMatcher = AndOtherPatternMatcher(nlp) suchAsMatcher = SuchAsPatternMatcher(nlp)
from question_processor import QuestionProcessor from text_extractor import TextExtractor from text_extractor_pipe import TextExtractorPipe from context_retriever import ContextRetriever from answer_retriever import AnswerRetriever from find_keywords import FindKeywords # STEP 1: Extract keywords from the question print(fg.green + "Please enter your question here: " + fg.rs) question = input() getKeywords = FindKeywords(question) key_word = getKeywords.distill() # STEP 2: Download text from wikipedia textExtractor = TextExtractor(key_word, "1") textExtractor.extract() textExtractorPipe = TextExtractorPipe() textExtractorPipe.addTextExtractor(textExtractor) # STEP 3: Retrieve corpus from the text. nlp = spacy.load('en_core_web_sm') nlp.add_pipe('sentencizer') doc = nlp(textExtractorPipe.extract()) sentences = [sent.text.strip() for sent in doc.sents] questionProcessor = QuestionProcessor(nlp) contextRetriever = ContextRetriever(nlp, 3) questionContext = contextRetriever.getContext(sentences, questionProcessor.process(question)) # STEP 4: Retrieve answer from the corpus. answerRetriever = AnswerRetriever() answerRetriever.getAnswer(question, questionContext)