كيفية البحث عن التطابق الأقرب

Kyfyt Albhth N Alttabq Alaqrb



إن البحث عن أقرب تطابق في حفلات الزفاف يعني إيجاد تلك التي لها معنى أقرب لبعضها البعض. الزخارف هي التمثيل المتجهي للجملة التي تغذي نماذج اللغة كمدخلات لمهام محددة. سنناقش هنا الطريقة والتقنيات التي يمكن استخدامها للعثور على الزخارف المماثلة.

بناء الجملة

يوجد الكثير من التقنيات والأدوات التي يمكننا استخدامها لمعرفة الفرق بين حفلات الزفاف بناءً على اختلافهما من حيث التشابه. فيما يلي الطرق وصياغتها المتضمنة التي سنستخدمها لإيجاد أوجه التشابه في التضمين.







من تلك النقاط المذكورة ، نعرف النماذج التي يمكننا استخدامها للعثور على تطابق التشابه بين حفلات الزفاف. الآن ، سوف نتعلم كيفية استخدام كل من هذه النماذج وتنفيذ الأمثلة الفردية على كل من هذه النماذج.



مثال 1: تضمين أقرب تطابق من خلال Word Embeddings

قبل أن ننفذ كلمة embeddings لمطابقة التشابه ، نحتاج إلى معرفة كلمة embeddings. تضمين Word هو عملية تحويل النص إلى شكل متجه (قيم عددية) لأن أنظمتنا لا تفهم إلا الإدخال في شكل أرقام رقمية.



هناك عدة طرق أخرى للقيام بهذه المهمة والتي تشمل تشفير واحد ساخن ، لكننا سنستخدم كلمة التضمينات. بهذه الطريقة ، يتم التعرف على التضمين بواسطة نماذج الشبكة العصبية (مثل word2vec أو Glove) من النصوص. يتم تعيين الكلمات إلى الفضاء المتجه ذي الأبعاد الأعلى. يتم تعيين كل تلك الكلمات المتشابهة في السياق إلى أقرب النقاط. بهذه الطريقة ، يمكن للزفافات التقاط العلاقات والتشابهات بين الكلمات المختلفة في النص.





دعونا ننشئ كلمة لتضمين الجملة. لإنشاء كلمة تضمين ، توفر Python إطار عمل 'gensim'. Gensim هي حزمة مكتبة تسمح باستخدام نموذج 'word2vec' الذي يساعد في إنشاء حفلات الزفاف. لتنفيذ التضمين ، نتأكد أولاً من تثبيت gensim على مترجمي Python. ثم ، من gensim ، نقوم باستيراد نموذج 'word2vec'.

نموذج 'word2vec' هو نوع من الخوارزمية التي تستخدم وسيطتي إدخال فقط حيث تتطلب الوسيطة الأولى النص أو الجملة التي نريد إنشاء تضمينها ، وتحدد الوسيطة الثانية الحد الأدنى للعدد الذي يحدد الحد الأدنى لعدد مرات الكلمة مطلوبة لتظهر أو تُرى.



بعد استيراد نموذج 'word2vec' ، نحدد 'النص'. بمجرد تحديد النص ، نقوم بعد ذلك بتدريب نموذج 'word2vec' هذا عن طريق تمريره مع النص وتعيين الحد الأدنى للعد على '1'. الآن ، نحن نسمي هذا النموذج 'word2vec.wv.most_similar (' المستهلك ')' المدربين ونغذي الكلمة التي نريد أن نتحقق منها في أقرب زخرفة في هذا المثال هي 'استهلك'. للتحقق من نتائج التضمين ، نقوم بطباعة الإخراج من النموذج:

من كأمة عارضات ازياء يستورد Word2Vec
نص = [ [ 'أرنب' و 'لديه' و 'أسنان' ] ]
نموذج = Word2Vec ( نص و min_count = 1 )
متشابه = نموذج. wv . معظم مماثلة ( 'أرنب' )
مطبعة ( متشابه )

في هذا المثال ، نقوم بإنشاء كلمة تضمين لنص باستخدام نموذج 'word2vec' للتحقق من تشابهها من حيث السياق والذي يمكن رؤيته في المقتطف المرفق مسبقًا وهو ناتج الشفرة التي تتحقق من عمليات التضمين المماثلة من كلمة 'تستهلك'.

مثال 2: تضمين أقرب بحث من خلال نموذج BERT

توجد نماذج معالجة اللغة الطبيعية المدربة مسبقًا والتي يمكن استخدامها لحساب التشابه بين النصوص حيث يمكنها فهم وتعلم العلاقة السياقية بين الكلمات. BERT هو أحد نماذج اللغة المدربة مسبقًا من 'محولات الجملة' ويمكنه معرفة أوجه التشابه بين النصوص. للعثور على التشابه بين النصوص ، علينا أولاً ضبط هذا النموذج على النص أو الجمل.

بمجرد الانتهاء من ذلك ، يمكننا استخدام هذا النموذج لمعرفة حفلات الزفاف. بعد ذلك ، يمكننا حساب التشابه بين النصوص باستخدام وظيفة 'تشابه جيب التمام'. نطبق هذا المثال على منصة Python عبر الإنترنت وهي 'google colab'. لضبط النموذج ، نقوم بتحميل نموذج (BERT). لهذا الغرض ، نقوم أولاً بتثبيت واستيراد 'SentenceTransformers'. بعد ذلك ، نقوم بتحميل النموذج من النموذج المدرب مسبقًا باستخدام SentenceTransformer. لتحميل النموذج ، نسمي SentenceTransformer ونموذج BERT معًا باسم '$ SentenceTransformer ('bert-base-nli-mean-tokens')' حيث نحدد اسم نموذج BERT المدرب مسبقًا في معلمة الإدخال و ثم نحفظ هذا في متغير 'BERTmodel'.

بعد أن ننتهي من تحميل هذا النموذج ، نحدد الآن النصوص الأربعة ، كل منها يتكون من جملة واحدة للتحقق من التشابه بينهما. بمجرد تحديد النصوص على سبيل المثال ، نقوم الآن بإنشاء حفلات الزفاف لهذا النص. نقوم بشكل فردي بإنشاء الزخارف لكل نص باستخدام وظيفة 'التشفير'.

نسمي وظيفة التشفير ببادئة نموذج BERT باسم 'BERTmodel.encoding ()'. ثم نقوم بتمرير 'النص' و 'الحد الأقصى للطول' الذي حددناه ليكون مساويًا لـ '512' إلى معلمات هذه الوظيفة. نسمي هذه الوظيفة الترميزية في كل نص ، وتقوم بتحويل النص إلى حفلات الزفاف.

الآن ، نستخدم كل من هذه الزخارف ونستبدلها في دالة تشابه جيب التمام لإيجاد التشابه بين هذه الزخارف. تُستخدم وظيفة تشابه جيب التمام على نطاق واسع في جميع مهام معالجة اللغة الطبيعية لتصنيف وتجميع النصوص / المستندات.

للعثور على التشابه بين هذه التضمينات ، نستخدم دالة تشابه جيب التمام واستبدال قيمة الجملة المضمنة بالفهرس '0' والجملة المضمنة الأخرى بفهرس '1 إلى 3' للتحقق من تشابه الجملة 0 مع 3 الأخرى جمل. تتراوح قيم ناتج دالة تشابه جيب التمام من -1 إلى 1. هنا ، يخبرنا 1 أن التضمين متشابهان وأن -1 يقول أن التضمين ليسا متشابهين. لقد قمنا بإرفاق مقتطف الشفرة الذي يوضح طريقة تنفيذ دالة تشابه جيب التمام باستخدام التضمينات الأربع للجملة التي أنشأناها للتو في الأمثلة باستخدام نموذج BERT المدروس مسبقًا.

! pip تثبيت جملة المحولات
الجمل = [
'قبل أربع سنوات ، كانت الزجاجة ممتلئة و.' ،
'الكلب يحلم بالهروب من القفص وفي الشارع حيث رأت صديقتها ذاهبة' ،
'كان الشخص يلعب بقنديل البحر لعدة أشهر' ،
'وجد حلزونًا في خزانة ملابسه.']
من الجملة_transformers استيراد SentenceTransformer
Bertmodel = محوّل الجمل ('bert-base-nli-mean-tokens')
جملة_embeddings = Bertmodel.encode (جمل)
الجملة_embeddings. شكل
من sklearn.metrics.pairwise استيراد cosine_similarity
# حساب = تشابه جيب التمام للجملة 0:
جيب التمام (
[wholesale_embeddings [0]] ،
الجملة_embeddings [1:])

تعرض المصفوفة في المخرجات قيمة تشابه 'الجملة 0' مع الجمل الثلاث الأخرى ، على سبيل المثال 1 و 2 و 3.

خاتمة

ناقشنا طرق إيجاد التشابه بين حفلات الزفاف. عرضنا مثالين مختلفين للبحث عن أقرب تطابق للتضمين باستخدام نموذج جينسيم 'word2vec' ونموذج BERT المدروس مسبقًا.