דף זה תורגם על ידי Cloud Translation API.
Switch to English

קידוד משפטים אוניברסלי רב לשוני

צפה ב- TensorFlow.org הפעל בגוגל קולאב צפה ב- GitHub הורד מחברת ראה דגמי TF Hub

זוהי הדגמה לשימוש אוניוורסלי Encoder רב Q & A מודל לשליפת שאלה-תשובה של טקסט, הממחיש את שימוש question_encoder ו response_encoder של המודל. אנו משתמשים במשפטים מפסקאות SQuAD כמערך ההדגמה, כל משפט והקשר שלו (הטקסט שמסביב למשפט) מקודד להטבעה של ממד גבוה עם התגובה . הטבלאות הללו מאוחסנות באינדקס שנבנה באמצעות ספריית הישנים הפשוטים לצורך אחזור שאלות.

בעת אחזור נבחרת שאלה אקראית ממערך הנתונים של SQuAD ומקודדת להטבעה של ממד גבוה עם השאלה מקודדת ושאילתה באינדקס 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 לתוכו:

  • משפטים היא רשימה של טופלים (טקסט, הקשר) - כל פיסקה ממערך 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:

('Warsaw Uprising Hill (121 metres (397.0 ft)), Szczęśliwice hill (138 metres '
 '(452.8 ft) – the highest point of Warsaw in general).')

context:

('Warsaw lies in east-central Poland about 300 km (190 mi) from the Carpathian '
 'Mountains and about 260 km (160 mi) from the Baltic Sea, 523 km (325 mi) '
 'east of Berlin, Germany. The city straddles the Vistula River. It is located '
 'in the heartland of the Masovian Plain, and its average elevation is 100 '
 'metres (330 ft) above sea level. The highest point on the left side of the '
 'city lies at a height of 115.7 metres (379.6 ft) ("Redutowa" bus depot, '
 'district of Wola), on the right side – 122.1 metres (400.6 ft) ("Groszówka" '
 'estate, district of Wesoła, by the eastern border). The lowest point lies at '
 'a height 75.6 metres (248.0 ft) (at the right bank of the Vistula, by the '
 'eastern border of Warsaw). There are some hills (mostly artificial) located '
 'within the confines of the city – e.g. Warsaw Uprising Hill (121 metres '
 '(397.0 ft)), Szczęśliwice hill (138 metres (452.8 ft) – the highest point of '
 'Warsaw in general).')


התקנת בלוק הקוד הבאה הפגישה tensorflow גרף G עם Q הרב קודאי אוניוורסלי ותשובות מודל של question_encoder וחתימות response_encoder.

טען מודל ממרכזת tensorflow

בלוק הקוד הבא מחשב את הטבלאות עבור כל הטקסט, כותרות ההקשר ושומר אותם באינדקס של שקעים פשוטים באמצעות התגובה .

חישוב השבצות ובנה אינדקס שוכן פשוט

Computing embeddings for 10455 sentences

HBox(children=(HTML(value=''), FloatProgress(value=0.0, max=104.0), HTML(value='')))

simpleneighbors index for 10455 sentences built.

ביום אחזור, השאלה מקודדת באמצעות question_encoder ואת הטבעת השאלה משמשת שאילתא מדד simpleneighbors.

אחזר את השכנים הקרובים ביותר לשאלה אקראית מ- SQuAD

num_results = 25

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