استرجاع الأسئلة والأجوبة في برنامج التشفير الشامل متعدد اللغات

عرض على TensorFlow.org تشغيل في Google Colab عرض على جيثب تحميل دفتر شاهد موديلات TF Hub

هذا هو تجريبي لاستخدام العالمي التشفير Q & A متعدد اللغات نموذج لاسترجاع سؤال وجواب من النص، مما يدل على استخدام 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 والجملة والفقرة أشكال النص (النص والسياق) الصفوف (tuple).
  • الأسئلة هي قائمة (السؤال، والإجابة) الصفوف.

تنزيل واستخراج بيانات 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 الرسم البياني ز وجلسة عمل مع العالمي التشفير Q & A متعدد اللغات نموذج الصورة question_encoder والتوقيعات response_encoder.

نموذج التحميل من محور Tensorflow

كتلة التعليمات البرمجية التالية بحساب التضمينات لجميع النص، الصفوف السياق وتخزينها في 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])