Question answering

Natural Language Processing (NLP) in Python

Fouad Trad

Machine Learning Engineer

Extractive QA

  • Answer directly copied from the passage

  Image showing a context "The library closes at 6 PM on weekdays"

Image showing an extractive answer: "6 PM"

Abstractive QA

  • Model generates natural-sounding answer

  Image showing a question: "When does the library close on weekdays?"

Image showing an abstractive answer: "Closure is at 6 PM"

Natural Language Processing (NLP) in Python

Extractive QA

  • Useful in:
    • Search engines
    • Document retrieval systems
    • Reading comprehension apps
  • More accurate, less prone to errors

extractive_photo.png

Abstractive QA

  • Useful in:
    • Conversational agents
    • Virtual assistants
    • Customer support bots
  • Can introduce errors

abstractive_image.png

Natural Language Processing (NLP) in Python

Extractive QA

from transformers import pipeline

qa_pipeline = pipeline(task="question-answering", model="distilbert/distilbert-base-cased-distilled-squad")
context = """The Amazon rainforest is the largest tropical rainforest in the world, covering parts of Brazil, Peru, and Colombia."""
question = "Which countries does the Amazon rainforest cover?"
qa_answer = qa_pipeline(question=question, context=context) print(qa_answer)
{'score': 0.9242347478866577,

'start': 90, 'end': 116,
'answer': 'Brazil, Peru, and Colombia'}
Natural Language Processing (NLP) in Python

Abstractive QA

from transformers import pipeline
qa_pipeline = pipeline(task="text2text-generation",
                       model="fangyuan/hotpotqa_abstractive")

context = """The Amazon rainforest is the largest tropical rainforest in the world, covering parts of Brazil, Peru, and Colombia.""" question = "Which countries does the Amazon rainforest cover?"
input_text = f"question: {question} context: {context}"
result = qa_pipeline(input_text)
print(result)
[{'generated_text': 'The Amazon rainforest covers parts of Brazil, Peru, and Colombia.'}]
Natural Language Processing (NLP) in Python

Let's practice!

Natural Language Processing (NLP) in Python

Preparing Video For Download...