بازیابی پرسش و پاسخ رمزگذار جمله جهانی چند زبانه

مشاهده در TensorFlow.org در Google Colab اجرا شود در GitHub مشاهده کنید دانلود دفترچه یادداشت مدل های TF Hub را ببینید

این نسخه ی نمایشی برای استفاده است جهانی رمزگذار چند زبانه پرسش و پاسخ مدل برای بازیابی پرسش و پاسخ از متن، نشان دادن استفاده از question_encoder و response_encoder از مدل. ما با استفاده از جملات از تیم ملی پاراگراف به عنوان مجموعه داده نسخه ی نمایشی، هر جمله و زمینه آن (متن اطراف جمله) به درونه گیریها ابعاد بالا با response_encoder کد گذاری. این درونه گیریها در یک شاخص ساخته شده با استفاده از ذخیره شده simpleneighbors کتابخانه برای بازیابی پرسش و پاسخ.

در بازیابی یک سوال تصادفی از انتخاب تیم ملی مجموعه داده ها و کد گذاری را به بعد بالا تعبیه با question_encoder و پرس و جو از شاخص simpleneighbors بازگشت یک لیست از نزدیکترین همسایگان تقریبی در فضای معنایی.

مدل های بیشتر

شما می توانید تمام متن در حال حاضر به میزبانی تعبیه مدل پیدا اینجا و تمام مدل های که در تیم ملی و همچنین آموزش داده شده است در اینجا .

برپایی

تنظیم محیط

%%capture
# Install the latest Tensorflow version.
!pip install -q tensorflow_text
!pip install -q simpleneighbors[annoy]
!pip install -q nltk
!pip install -q tqdm

واردات و توابع رایج را راه اندازی کنید

[nltk_data] Downloading package punkt to /home/kbuilder/nltk_data...
[nltk_data]   Unzipping tokenizers/punkt.zip.

بلوک کد زیر را اجرا کنید تا مجموعه داده SQuAD را دانلود و استخراج کنید:

  • هر پاراگراف از تیم ملی مجموعه داده ها به جملات با استفاده از کتابخانه nltk و جمله و پاراگراف اشکال متن (متن، زمینه) تاپل خرد - جملات یک لیست از (متن، زمینه) تاپل است.
  • پرسش یک لیست از (سوال، پاسخ) تاپل است.

داده های SQuAD را دانلود و استخراج کنید

squad_url = 'https://rajpurkar.github.io/SQuAD-explorer/dataset/dev-v1.1.json'

squad_json = download_squad(squad_url)
sentences = extract_sentences_from_squad_json(squad_json)
questions = extract_questions_from_squad_json(squad_json)
print("%s sentences, %s questions extracted from SQuAD %s" % (len(sentences), len(questions), squad_url))

print("\nExample sentence and context:\n")
sentence = random.choice(sentences)
print("sentence:\n")
pprint.pprint(sentence[0])
print("\ncontext:\n")
pprint.pprint(sentence[1])
print()
10455 sentences, 10552 questions extracted from SQuAD https://rajpurkar.github.io/SQuAD-explorer/dataset/dev-v1.1.json

Example sentence and context:

sentence:

('The Mongol Emperors had built large palaces and pavilions, but some still '
 'continued to live as nomads at times.')

context:

("Since its invention in 1269, the 'Phags-pa script, a unified script for "
 'spelling Mongolian, Tibetan, and Chinese languages, was preserved in the '
 'court until the end of the dynasty. Most of the Emperors could not master '
 'written Chinese, but they could generally converse well in the language. The '
 'Mongol custom of long standing quda/marriage alliance with Mongol clans, the '
 'Onggirat, and the Ikeres, kept the imperial blood purely Mongol until the '
 'reign of Tugh Temur, whose mother was a Tangut concubine. The Mongol '
 'Emperors had built large palaces and pavilions, but some still continued to '
 'live as nomads at times. Nevertheless, a few other Yuan emperors actively '
 'sponsored cultural activities; an example is Tugh Temur (Emperor Wenzong), '
 'who wrote poetry, painted, read Chinese classical texts, and ordered the '
 'compilation of books.')

در زیر راه اندازی بلوک کد tensorflow نمودار گرم و جلسه با جهانی رمزگذار چند زبانه پرسش و پاسخ مدل question_encoder را و امضا response_encoder.

مدل بارگذاری از هاب تنسورفلو

بلوک کد زیر محاسبه درونه گیریها برای تمام متن، تاپل زمینه و ذخیره آنها را در یک simpleneighbors شاخص با استفاده از response_encoder.

تعبیه‌ها را محاسبه کرده و نمایه همسایگان ساده بسازید

Computing embeddings for 10455 sentences
0%|          | 0/104 [00:00<?, ?it/s]
simpleneighbors index for 10455 sentences built.

در بازیابی، سوال با استفاده از question_encoder کد گذاری شده و تعبیه درخواست استفاده شده است به پرس و جو شاخص simpleneighbors.

نزدیکترین همسایگان را برای یک سوال تصادفی از SQuAD بازیابی کنید

num_results = 25

query = random.choice(questions)
display_nearest_neighbors(query[0], query[1])