Учебник серии на TXTAI (21 часть серии)
Эта статья является частью серии учебников на TXTAI платформа семантической поисковой платформы AI.
В частях от 1 до 4 мы дали общий обзор TXTAI, технологии резервного копирования и примеры того, как использовать его для поиска сходства. Эта статья основывается на этом и распространяется на создание добывающих систем ответа на вопросы.
Установить TXTAI
и все зависимости.
pip install txtai
Экземпляр вложений является основной въездной точкой для TXTAI. Экземпляр вложений определяет метод, используемый для токенизации и преобразования сегмента текста в вектор встроения.
Экземпляр экстрактора представляет собой въездную точку для добываемого вопроса-ответа.
И экземпляры вложений, так и экстракторов делают путь к модели трансформатора. Любая модель на Обнимая модель для лица Hub Может использоваться вместо моделей ниже.
from txtai.embeddings import Embeddings from txtai.pipeline import Extractor # Create embeddings model, backed by sentence-transformers & transformers embeddings = Embeddings({"path": "sentence-transformers/nli-mpnet-base-v2"}) # Create extractor instance extractor = Extractor(embeddings, "distilbert-base-cased-distilled-squad")
data = ["Giants hit 3 HRs to down Dodgers", "Giants 5 Dodgers 4 final", "Dodgers drop Game 2 against the Giants, 5-4", "Blue Jays beat Red Sox final score 2-1", "Red Sox lost to the Blue Jays, 2-1", "Blue Jays at Red Sox is over. Score: 2-1", "Phillies win over the Braves, 5-0", "Phillies 5 Braves 0 final", "Final: Braves lose to the Phillies in the series opener, 5-0", "Lightning goaltender pulled, lose to Flyers 4-1", "Flyers 4 Lightning 1 final", "Flyers win 4-1"] questions = ["What team won the game?", "What was score?"] execute = lambda query: extractor([(question, query, question, False) for question in questions], data) for query in ["Red Sox - Blue Jays", "Phillies - Braves", "Dodgers - Giants", "Flyers - Lightning"]: print("----", query, "----") for answer in execute(query): print(answer) print() # Ad-hoc questions question = "What hockey team won?" print("----", question, "----") print(extractor([(question, question, question, False)], data))
---- Red Sox - Blue Jays ---- ('What team won the game?', 'Blue Jays') ('What was score?', '2-1') ---- Phillies - Braves ---- ('What team won the game?', 'Phillies') ('What was score?', '5-0') --------- Dodgers - Giants ---- ('What team won the game?', 'Giants') ('What was score?', '5-4') --------- Flyers - Lightning ---- ('What team won the game?', 'Flyers') ('What was score?', '4-1') --------- What hockey team won? ---- [('What hockey team won?', 'Flyers')]
Учебник серии на TXTAI (21 часть серии)
Оригинал: “https://dev.to/neuml/extractive-qa-with-txtai-4ida”