لاحظ أن هذا المستودع لم يعد يحتفظ به بابل هيلث. لمزيد من المساعدة ، تواصل مع مؤلفي الورق.
Facebook مؤخرا من مصادر خارجية ناقلات في 89 لغة. لكن هذه المتجهات أحادية اللغة. وهذا يعني أنه على الرغم من أن الكلمات المماثلة داخل لغة تشترك في متجهات مماثلة ، فإن كلمات الترجمة من لغات مختلفة لا تحتوي على متجهات مماثلة. في ورقة حديثة في ICLR 2017 ، أظهرنا كيف يمكن استخدام SVD لتعلم التحول الخطي (مصفوفة) ، والتي تتوافق مع ناقلات أحادية اللغة من لغتين في مساحة متجه واحد. في هذا المستودع ، نقدم 78 مصفوفة ، والتي يمكن استخدامها لمحاذاة غالبية لغات النص السريع في مساحة واحدة.
يشرح هذا ReadMe كيف ينبغي استخدام المصفوفات. نقدم أيضًا مهمة تقييم بسيطة ، حيث نظهر أننا قادرون على التنبؤ بنجاح بترجمات الكلمات بلغات متعددة. يعتمد إجراءاتنا على جمع قواميس التدريب ثنائي اللغة لأزواج الكلمات بلغتين ، لكن بشكل ملحوظ ، يمكننا التنبؤ بنجاح بترجمات الكلمات بين أزواج اللغة التي لم يكن لدينا قاموس تدريب!
تحدد تضمينات الكلمات التشابه بين كلمتين بواسطة المنتج الداخلي الطبيعي للناقلات. وضع المصفوفات في هذا المستودع لغات في مساحة واحدة ، دون تغيير أي من هذه العلاقات التشابه أحادي اللغة . عند استخدام المتجهات المتعددة اللغات الناتجة عن المهام أحادية اللغة ، فإنها ستؤدي نفس المتجهات الأصلية تمامًا. لمعرفة المزيد حول Word Ambdedings ، تحقق من مدونة Colah أو مقدمة Sam في تمثيل المتجهات.
لاحظ أنه منذ أن أصدرنا هذا المستودع ، أصدر Facebook 204 لغة إضافية ؛ ومع ذلك ، لم تتغير ناقلات كلمة 90 لغة الأصلية ، وستظل التحولات المنصوص عليها في هذا المستودع تعمل. إذا كنت ترغب في تعلم مصفوفات المحاذاة الخاصة بك ، فنحن نقدم مثالاً في align_your_own.ipynb.
إذا كنت تستخدم هذا المستودع ، يرجى الاستشهاد:
ناقلات الكلمة ثنائية اللغة دون اتصال بالإنترنت ، والتحولات المتعامدة و softmax المقلوب
صموئيل ل. سميث ، داود هـ هـ.
ICLR 2017 (مسار المؤتمر)
استنساخ نسخة محلية من هذا المستودع ، وقم بتنزيل متجهات FastText التي تحتاجها من هنا. سأفترض أنك قمت بتنزيل المتجهات للفرنسية والروسية بتنسيق النص. دعنا نقول أننا نريد مقارنة تشابه "الدردشة" و "кот". نحن نقوم بتحميل ناقلات كلمة:
from fasttext import FastVector
fr_dictionary = FastVector ( vector_file = 'wiki.fr.vec' )
ru_dictionary = FastVector ( vector_file = 'wiki.ru.vec' )يمكننا استخراج كلمة ناقلات وحساب تشابه جيب التمام الخاص بهم:
fr_vector = fr_dictionary [ "chat" ]
ru_vector = ru_dictionary [ "кот" ]
print ( FastVector . cosine_similarity ( fr_vector , ru_vector ))
# Result should be 0.02يمتد تشابه جيب التمام بين -1 و 1. يبدو أن "الدردشة" و "кот" ليست متشابهة ولا متباينة. لكننا نطبق الآن التحولات لمحاذاة القواميس في مساحة واحدة:
fr_dictionary . apply_transform ( 'alignment_matrices/fr.txt' )
ru_dictionary . apply_transform ( 'alignment_matrices/ru.txt' )وإعادة تقييم تشابه جيب التمام:
print ( FastVector . cosine_similarity ( fr_dictionary [ "chat" ], ru_dictionary [ "кот" ]))
# Result should be 0.43تبين "الدردشة" و "кот" متشابهة إلى حد ما بعد كل شيء. هذا جيد ، لأن كلاهما يعني "القط".
من بين 89 لغة توفرها Facebook ، يتم دعم 78 من قبل Google Translate API. لقد حصلنا أولاً على 10،000 كلمة شائعة في المفردات الإنجليزية Fasttext ، ثم نستخدم واجهة برمجة التطبيقات لترجمة هذه الكلمات إلى 78 لغة متوفرة. قمنا بتقسيم هذه المفردات إلى اثنين ، ونخصص أول 5000 كلمة إلى قاموس التدريب ، والثاني 5000 إلى قاموس الاختبار.
وصفنا إجراء المحاذاة في هذه المدونة. يستغرق مجموعتين من متجهات الكلمات وقاموسًا صغيرًا ثنائي اللغة لأزواج الترجمة بلغتين ؛ ويولد مصفوفة تتوافق مع لغة المصدر مع الهدف. في بعض الأحيان ، يترجم Google كلمة إنجليزية إلى عبارة غير إنجليزية ، وفي هذه الحالات ، نقوم بتقييم ناقلات الكلمة الموجودة في العبارة.
لوضع جميع اللغات الـ 78 في مساحة واحدة ، نقوم بمحاذاة كل لغة مع ناقلات اللغة الإنجليزية (مصفوفة اللغة الإنجليزية هي الهوية).
لإثبات أن الإجراء يعمل ، يمكننا التنبؤ بترجمات الكلمات التي لم يتم رؤيتها في قاموس التدريب. من أجل البساطة ، نتوقع الترجمات من قبل أقرب الجيران. على سبيل المثال ، إذا أردنا ترجمة "الكلب" إلى السويدية ، فسنجد ببساطة ناقل الكلمات السويدية التي يكون تشابه جيب التمام مع ناقل الكلمات "الكلب" أعلى.
أول الأشياء أولاً ، دعنا نختبر أداء الترجمة من اللغة الإنجليزية إلى كل لغة أخرى. لكل زوج لغة ، نستخرج مجموعة من 2500 زوج من الأزواج من قاموس الاختبار. تشير الدقة @n إلى احتمال أن تكون الترجمة الحقيقية من بين أفضلات الكلمة المصدر ، من بين 2500 كلمة مستهدفة في هذه المجموعة. إذا كانت المحاذاة عشوائية تمامًا ، فإننا نتوقع أن تكون الدقة 1 حوالي 0.0004.
| اللغة المستهدفة | الدقة @1 | الدقة @5 | الدقة @10 |
|---|---|---|---|
| الاب | 0.73 | 0.86 | 0.88 |
| حزب العمال | 0.73 | 0.86 | 0.89 |
| ES | 0.72 | 0.85 | 0.88 |
| هو - هي | 0.70 | 0.86 | 0.89 |
| NL | 0.68 | 0.83 | 0.86 |
| لا | 0.68 | 0.85 | 0.89 |
| دا | 0.66 | 0.84 | 0.88 |
| كاليفورنيا | 0.66 | 0.81 | 0.86 |
| SV | 0.65 | 0.82 | 0.86 |
| CS | 0.64 | 0.81 | 0.85 |
| رو | 0.63 | 0.81 | 0.85 |
| دي | 0.62 | 0.75 | 0.78 |
| رر | 0.62 | 0.79 | 0.83 |
| هو | 0.61 | 0.80 | 0.84 |
| Fi | 0.61 | 0.80 | 0.84 |
| eo | 0.61 | 0.80 | 0.85 |
| رو | 0.60 | 0.78 | 0.82 |
| GL | 0.60 | 0.77 | 0.82 |
| MK | 0.58 | 0.79 | 0.84 |
| بطاقة تعريف | 0.58 | 0.81 | 0.86 |
| BG | 0.57 | 0.77 | 0.82 |
| آنسة | 0.57 | 0.81 | 0.86 |
| المملكة المتحدة | 0.57 | 0.75 | 0.79 |
| ش | 0.56 | 0.77 | 0.81 |
| HR | 0.56 | 0.75 | 0.80 |
| tr | 0.56 | 0.77 | 0.81 |
| SL | 0.56 | 0.77 | 0.82 |
| el | 0.54 | 0.75 | 0.80 |
| SK | 0.54 | 0.75 | 0.81 |
| ET | 0.53 | 0.73 | 0.78 |
| ريال | 0.53 | 0.72 | 0.77 |
| AF | 0.52 | 0.75 | 0.80 |
| LT | 0.50 | 0.72 | 0.79 |
| AR | 0.48 | 0.69 | 0.75 |
| بكالوريوس | 0.47 | 0.70 | 0.77 |
| LV | 0.47 | 0.68 | 0.75 |
| الاتحاد الأوروبي | 0.46 | 0.68 | 0.75 |
| فا | 0.45 | 0.68 | 0.75 |
| هاي | 0.43 | 0.66 | 0.73 |
| مربع | 0.43 | 0.65 | 0.71 |
| يكون | 0.43 | 0.64 | 0.70 |
| ZH | 0.40 | 0.68 | 0.75 |
| كا | 0.40 | 0.63 | 0.71 |
| CY | 0.39 | 0.63 | 0.71 |
| أهلاً | 0.39 | 0.58 | 0.63 |
| AZ | 0.38 | 0.60 | 0.67 |
| كو | 0.37 | 0.58 | 0.66 |
| تي | 0.36 | 0.56 | 0.63 |
| KK | 0.35 | 0.60 | 0.68 |
| هو | 0.33 | 0.45 | 0.48 |
| ص | 0.33 | 0.52 | 0.60 |
| السادس | 0.31 | 0.53 | 0.62 |
| تا | 0.31 | 0.50 | 0.56 |
| مليار | 0.30 | 0.49 | 0.56 |
| أور | 0.29 | 0.52 | 0.61 |
| يكون | 0.29 | 0.51 | 0.59 |
| TL | 0.28 | 0.51 | 0.59 |
| كيلوغرام | 0.28 | 0.43 | 0.46 |
| غو | 0.25 | 0.44 | 0.51 |
| MN | 0.25 | 0.49 | 0.58 |
| UZ | 0.24 | 0.43 | 0.51 |
| سي | 0.22 | 0.40 | 0.45 |
| مل | 0.21 | 0.35 | 0.39 |
| كنت | 0.20 | 0.40 | 0.49 |
| السيد | 0.20 | 0.37 | 0.44 |
| ذ | 0.20 | 0.33 | 0.38 |
| لا | 0.19 | 0.34 | 0.42 |
| جا | 0.18 | 0.44 | 0.56 |
| NE | 0.16 | 0.33 | 0.38 |
| السلطة الفلسطينية | 0.16 | 0.32 | 0.38 |
| TG | 0.14 | 0.31 | 0.39 |
| كم | 0.12 | 0.26 | 0.30 |
| لي | 0.10 | 0.19 | 0.23 |
| رطل | 0.09 | 0.18 | 0.21 |
| ملغ | 0.07 | 0.18 | 0.25 |
| CEB | 0.06 | 0.13 | 0.18 |
كما ترون ، فإن المحاذاة أفضل بكثير من عشوائي! بشكل عام ، يعمل الإجراء بشكل أفضل لللغات الأوروبية الأخرى مثل الفرنسية والبرتغالية والإسبانية. نستخدم 2500 زوجًا من الكلمات ، بسبب 5000 كلمة في قاموس الاختبار ، وليس كل الكلمات التي تم العثور عليها من قبل Google Translate API موجودة بالفعل في مفردات FastText.
الآن دعونا نفعل شيئًا أكثر إثارة ، دعنا نقيم أداء الترجمة بين جميع أزواج اللغة الممكنة. نعرض أداء الترجمة هذا على خريطة الحرارة أدناه ، حيث يشير لون العنصر إلى الدقة @1 عند الترجمة من لغة الصف إلى لغة العمود.

يجب أن نؤكد على أن جميع اللغات كانت محاذاة باللغة الإنجليزية فقط . لم نقدم قواميس التدريب بين أزواج اللغة غير الإنجليزية. ومع ذلك ، ما زلنا قادرين على التنبؤ بالترجمات الناجحة بين أزواج اللغات غير الإنجليزية بدقة بشكل ملحوظ.
نتوقع أن تكون العناصر القطرية للمصفوفة أعلاه 1 ، حيث يجب أن تترجم اللغة تمامًا إلى نفسها. ومع ذلك ، في الممارسة العملية ، لا يحدث هذا دائمًا ، لأننا قمنا ببناء قواميس التدريب واختبارها من خلال ترجمة الكلمات الإنجليزية المشتركة إلى اللغات الأخرى. في بعض الأحيان ، تترجم الكلمات الإنجليزية المتعددة إلى نفس الكلمة غير الإنجليزية ، وبالتالي قد تظهر نفس الكلمة غير الإنجليزية عدة مرات في مجموعة الاختبار. لم نلاحظ ذلك بشكل صحيح ، مما يقلل من أداء الترجمة.
بشكل خاص ، على الرغم من أننا قمنا فقط بمحاذاة اللغات بشكل مباشر مع اللغة الإنجليزية ، فإن اللغة تترجم أحيانًا بشكل أفضل إلى لغة أخرى غير الإنجليزية أكثر من اللغة الإنجليزية! يمكننا حساب دقة بين اللغتين ؛ متوسط الدقة من اللغة 1 إلى اللغة 2 والعكس صحيح. يمكننا أيضًا حساب دقة اللغة الإنجليزية ؛ متوسط الدقة من اللغة الإنجليزية إلى اللغة 1 ومن اللغة الإنجليزية إلى اللغة 2. ندرج أدناه جميع أزواج اللغة التي تتجاوز الدقة بين الزوجين الدقة الإنجليزية:
| اللغة 1 | اللغة 2 | دقة inter-pair @1 | الدقة الإنجليزية @1 |
|---|---|---|---|
| بكالوريوس | ش | 0.88 | 0.52 |
| رو | المملكة المتحدة | 0.84 | 0.58 |
| كاليفورنيا | ES | 0.82 | 0.69 |
| CS | SK | 0.82 | 0.59 |
| HR | ش | 0.78 | 0.56 |
| يكون | المملكة المتحدة | 0.77 | 0.50 |
| GL | حزب العمال | 0.76 | 0.66 |
| بكالوريوس | HR | 0.74 | 0.52 |
| يكون | رو | 0.73 | 0.51 |
| دا | لا | 0.73 | 0.67 |
| ريال | ش | 0.73 | 0.54 |
| حزب العمال | ES | 0.72 | 0.72 |
| كاليفورنيا | حزب العمال | 0.70 | 0.69 |
| GL | ES | 0.70 | 0.66 |
| HR | ريال | 0.69 | 0.54 |
| كاليفورنيا | GL | 0.68 | 0.63 |
| بكالوريوس | ريال | 0.67 | 0.50 |
| MK | ريال | 0.56 | 0.55 |
| KK | كنت | 0.30 | 0.28 |
كل أزواج اللغة هذه تشترك في جذور لغوية وثيقة جدا. على سبيل المثال ، الزوج الأول أعلاه هو البوسني والصروي كرويان. البوسنيان هو البديل من الصربي كرواني. الزوج الثاني هو الروسي والأوكراني. كل من اللغات الشرق الغريبة. يبدو أنه كلما كانت اللغتين أكثر تشابهًا ، كلما زادت هندسة متجهات النص السريع ؛ مما يؤدي إلى تحسين أداء الترجمة.
المصفوفات الواردة في هذا المستودع متعامد. بشكل حدسي ، يمكن تقسيم كل مصفوفة إلى سلسلة من التناوب والانعكاسات. الدورات والانعكاسات لا تغير المسافة بين أي نقطتين في مساحة المتجه ؛ وبالتالي لم يتم تغيير أي من المنتجات الداخلية بين متجهات الكلمات داخل لغة ما ، فقط المنتجات الداخلية بين ناقلات كلمة مختلفة تتأثر.
هناك عدد من الأوراق الرائعة حول هذا الموضوع. لقد أدرجنا عدد قليل منهم أدناه:
أعرب عدد من القراء عن اهتمامه بقواميس التدريب والاختبار التي استخدمناها في هذا المستودع. ومع ذلك ، كنا نرغب في تحميلها ، في حين أننا لم نقدم المشورة القانونية ، فإننا نشعر بالقلق من أنه يمكن تفسير ذلك على أنه كسر شروط واجهة برمجة تطبيقات الترجمة من Google.
يتم توزيع مصفوفات التحول تحت رخصة المشاع الإبداعي-تشبه 3.0 .