अपने स्थानीय TensorFlow के लिए RSVP आज हर जगह घटना!
इस पेज का अनुवाद Cloud Translation API से किया गया है.
Switch to English

बहुभाषी यूनिवर्सल सेंटेंस एनकोडर क्यू एंड ए रिट्रीवल

TensorFlow.org पर देखें Google Colab में चलाएं GitHub पर देखें नोटबुक डाउनलोड करें TF हब मॉडल देखें

यह पाठ के प्रश्न-उत्तर पुनर्प्राप्ति के लिए यूनिवरल एनकोडर बहुभाषी प्रश्नोत्तर मॉडल का उपयोग करने के लिए एक डेमो है, जो मॉडल के question_encoder और response_encoder के उपयोग को दर्शाता है। हम डेमो डेटासेट के रूप में SQuAD पैराग्राफ से वाक्यों का उपयोग करते हैं, प्रत्येक वाक्य और उसका संदर्भ (वाक्य के आसपास का पाठ) response_encoder के साथ उच्च आयाम एम्बेडिंग में एन्कोडेड है। ये एम्बेडिंग सवाल-जवाब की पुनर्प्राप्ति के लिए सिम्पेनिगबोरस लाइब्रेरी का उपयोग करके निर्मित सूचकांक में संग्रहीत किए जाते हैं।

पुनः प्राप्ति पर एक यादृच्छिक सवाल से चयन किया जाता है दस्ते डाटासेट और उच्च आयाम question_encoder और अर्थ अंतरिक्ष में लगभग निकटतम पड़ोसियों की एक सूची वापस भेजने के simpleneighbors सूचकांक के साथ embedding में इनकोडिंग।

अधिक मॉडल

आप सभी वर्तमान में होस्ट किए गए टेक्स्ट एम्बेडिंग मॉडल और यहां सभी मॉडल जो SQuAD पर प्रशिक्षित किए गए हैं, पा सकते हैं

सेट अप

सेटअप पर्यावरण

%%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).')


निम्न कोड ब्लॉक ने टेंसरफ़्लो ग्राफ जी और सत्र को यूनीवेरल एनकोडर बहुभाषी क्यू एंड ए मॉडल के question_encoder और response_encoder हस्ताक्षर के साथ सेट किया।

मॉडल को टेंसरफ़्लो हब से लोड करें

निम्नलिखित कोड ब्लॉक सभी पाठ, संदर्भ ट्यूपल्स के लिए एम्बेडिंग की गणना करता है और उन्हें response_encoder का उपयोग करके एक सरलतम सूचकांक में संग्रहीत करता है।

एम्बेडिंग की गणना करें और simpleeneighbors इंडेक्स बनाएं

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])