يوفر هذا المستودع قوائم نظيفة بالكلمات الأكثر شيوعًا وn-grams (تسلسلات n من الكلمات)، بما في ذلك بعض الترجمات الإنجليزية من Google Books Ngram Corpus (الإصدار 3/20200217، جميع اللغات)، بالإضافة إلى كود Python القابل للتخصيص الذي يعيد إنتاج هذه القوائم.
يتم توفير القوائم التي تحتوي على n-grams الأكثر شيوعًا بشكل منفصل حسب اللغة وn. اللغات المتاحة هي الصينية (المبسطة)، والإنجليزية، والرواية الإنجليزية، والفرنسية، والألمانية، والعبرية، والإيطالية، والروسية، والإسبانية. يتراوح n من 1 إلى 5. في القوائم المتوفرة، تقتصر المجموعات الفرعية للغة على الكتب المنشورة في الأعوام 2010-2019، ولكن في كود Python يمكن تعديل كل من هذا وعدد N-grams المضمنة الأكثر شيوعًا.
تم العثور على القوائم في دليل ngrams. بالنسبة لجميع اللغات باستثناء العبرية، يتم توفير قوائم نظيفة لـ
بالنسبة للغة العبرية، نظرًا لصغر حجم المجموعة، يتم توفير 200 جرامًا من الـ 4 جرامات الأكثر شيوعًا و80 جرامًا من الـ 5 جرامات الأكثر شيوعًا.
تحتوي جميع القوائم المنظفة أيضًا على عدد المرات التي يحدث فيها كل n-gram في المجموعة (تكرارها، freq
العمود ). بالنسبة لـ 1 جرام (كلمات) هناك عمودان إضافيان:
cumshare
الذي يحتوي لكل كلمة على الحصة التراكمية لجميع الكلمات في المجموعة المكونة من تلك الكلمة وجميع الكلمات الأكثر تكرارًا.en
الذي يحتوي على الترجمة الإنجليزية للكلمة التي تم الحصول عليها باستخدام Google Cloud Translate API (فقط للغات غير الإنجليزية).فيما يلي الصفوف العشرة الأولى من 1grams_french.csv:
ngram | التكرار | شاعر المليون | أون |
---|---|---|---|
دي | 1380202965 | 0.048 | ل |
لا | 823756863 | 0.077 | ال |
وآخرون | 651571349 | 0.100 | و |
لو | 614855518 | 0.121 | ال |
أ | 577644624 | 0.142 | في |
ل' | 527188618 | 0.160 | ال |
ليه | 503689143 | 0.178 | هم |
أون | 390657918 | 0.191 | في |
قصر | 384774428 | 0.205 | التابع |
تم تنظيف القوائم الموجودة مباشرة في دليل ngrams وهي مخصصة للاستخدام عند تطوير مواد تعلم اللغة. يحتوي الدليل الفرعي ngrams/more على إصدارات غير نظيفة وأقل تنظيفًا والتي قد تكون مفيدة للغويين على سبيل المثال:
0_raw
)،1a_no_pos
)،1b_with_pos
)،2_removed
). لتوفير بعض الدوافع لماذا قد يكون الاعتماد على الكلمات الأكثر شيوعًا أولاً فكرة جيدة عند تعلم لغة ما، يتم توفير الرسم البياني التالي.
بالنسبة لكل لغة، فإنه يرسم ترتيب التردد لكل 1 جرام (أي كلمة) على المحور x cumshare
على المحور y. لذلك، على سبيل المثال، بعد تعلم أكثر 1000 كلمة فرنسية تكرارًا، يمكن للمرء أن يفهم أكثر من 70% من جميع الكلمات، المحسوبة مع التكرارات، والتي تحدث في كتاب نموذجي منشور بين عامي 2010 و2019 في الإصدار 20200217 من Google Books Ngram Corpus الفرنسية.
بالنسبة للجرامات n بخلاف 1 جرام، فإن عوائد تعلم الكلمات الأكثر تكرارًا ليست حادة، نظرًا لوجود العديد من المجموعات المحتملة من الكلمات. ومع ذلك، يميل الناس إلى التعلم بشكل أفضل عندما يتعلمون الأشياء في السياق، لذلك يمكن أن يكون أحد استخداماتهم هو العثور على أمثلة شائعة للعبارات لكل 1 جرام. النهج الآخر هو ما يلي: لنفترض أن شخصًا ما يريد تعلم أكثر 1000 كلمة شيوعًا في بعض اللغات. ومن ثم يمكن للمرء، على سبيل المثال، إنشاء قائمة بسيطة من الـ 4 جرامات الأكثر شيوعًا والتي تتضمن هذه الكلمات الـ 1000 وتعلمها.
على الرغم من أن قوائم n-gram قد تم تنظيفها مع وضع تعلم اللغة في الاعتبار وتحتوي على بعض الترجمات الإنجليزية، إلا أنها ليست مخصصة للاستخدام المباشر للتعلم، بل كموارد وسيطة لتطوير مواد تعلم اللغة. الترجمات المقدمة تعطي فقط الكلمة الإنجليزية الأقرب إلى المعنى الأكثر شيوعًا للكلمة. علاوة على ذلك، اعتمادًا على أهداف تعلم اللغة، قد لا تكون Google Books Ngram Corpus هي أفضل مجموعة يمكن أن تعتمد عليها المواد التعليمية - راجع القسم التالي.
يعتمد هذا المستودع على الإصدار 3 من Google Books Ngram Corpus (مع معرف الإصدار 20200217)، الذي أتاحته Google كقوائم n-gram هنا. هذه أيضًا هي البيانات التي يقوم عليها Google Books Ngram Viewer. المجموعة هي مجموعة فرعية، اختارتها Google بناءً على جودة التعرف البصري على الأحرف والبيانات الوصفية، من الكتب التي تم رقمنتها بواسطة Google وتحتوي على حوالي 6% من جميع الكتب المنشورة على الإطلاق (1، 2، 3).
عند تقييم جودة مجموعة ما، فإن حجمها وتمثيلها لنوع المادة التي يهتم بها المرء أمر مهم.
يعد الإصدار 3 من Google Books Ngram Corpus ضخمًا، كما يوضح هذا الجدول الذي يوضح عدد الكلمات فيه حسب اللغة والمتن الفرعي:
لغة | #الكلمات، كل السنوات | #كلمات، 2010-2019 |
---|---|---|
الصينية | 10,778,094,737 | 257,989,144 |
إنجليزي | 1,997,515,570,677 | 283,795,232,871 |
الإنجليزية الأمريكية | 1,167,153,993,435 | 103,514,367,264 |
الإنجليزية البريطانية | 336,950,312,247 | 45,271,592,771 |
الخيال الإنجليزي | 158,981,617,587 | 73,746,188,539 |
فرنسي | 328,796,168,553 | 35,216,041,238 |
الألمانية | 286,463,423,242 | 57,039,530,618 |
العبرية | 7,263,771,123 | 76,953,586 |
ايطالي | 120,410,089,963 | 15,473,063,630 |
الروسية | 89,415,200,246 | 19,648,780,340 |
الأسبانية | 158,874,356,254 | 17,573,531,785 |
لاحظ أن هذه الأرقام تشير إلى إجمالي عدد الكلمات، وليس عدد الكلمات الفريدة. كما أنها تشتمل أيضًا على العديد من الكلمات التي ليست كلمات صالحة، ولكن نظرًا لحجم المجموعة، يتم تنفيذ خطوات التنظيف على الكلمات الأكثر شيوعًا فقط، وبالتالي فإن عدد الكلمات التي ستبقى في المجموعة بأكملها بعد التنظيف غير متاح. علاوة على ذلك، يقوم Google بتحميل الكلمات التي تظهر أكثر من 40 مرة فقط، بينما تتضمن هذه الأعداد أيضًا الكلمات التي تظهر بشكل أقل من ذلك.
نرى أنه حتى بعد حصر المجموعات اللغوية الفرعية في الكتب المنشورة في السنوات العشر الأخيرة المتاحة، فإن عدد الكلمات لا يزال أكبر من 15 مليار كلمة لكل مجموعة فرعية، باستثناء الصينية والعبرية. وهذا أكبر بكثير من جميع المجموعات الأخرى شائعة الاستخدام، والتي لا يبدو أنها تحتوي على أكثر من بضعة مليارات من الكلمات وغالبًا ما تكون أصغر من ذلك بكثير (4).
عندما يتعلق الأمر بالتمثيل، فإن الأمر يعتمد على الاستخدام المقصود. يحتوي Google Books Ngram Corpus على الكتب فقط (لا توجد دوريات أو لغة منطوقة أو مواقع ويب وما إلى ذلك). يتم تضمين كل طبعة كتاب مرة واحدة على الأكثر. معظم هذه الكتب تأتي من عدد صغير من المكتبات الجامعية الكبيرة، "أكثر من 40" في الإصدار 1 من المجموعة، في حين يتم الحصول على حصة أصغر مباشرة من الناشرين (1). لذا، على سبيل المثال، إذا كان أحد ينوي استخدام هذه المجموعة لتعلم لغة يقرأ فيها بشكل أساسي كتبًا من النوع الذي تهتم به المكتبات الجامعية الكبيرة، فمن المرجح أن تكون الكلمات الموجودة في هذه المجموعة ممثلة تمامًا لمجموعة الكلمات قد يواجهها المرء في المستقبل.
الكود الذي ينتج كل شيء موجود في دليل بايثون. كل ملف .py هو برنامج نصي يمكن تشغيله من سطر الأوامر باستخدام python python/filename
، حيث يجب أن يكون دليل العمل هو الدليل الذي يحتوي على دليل python. يحتوي كل ملف .py على قسم إعدادات في الأعلى ويمكن تحديد إعدادات تنظيف إضافية باستخدام الملفات الموجودة في python/extra_settings. تم اختيار الإعدادات الافتراضية لجعل التعليمات البرمجية تعمل بسرعة معقولة والحفاظ على حجم المستودع الناتج صغيرًا بشكل معقول.
اختياريًا، ابدأ بتشغيل create_source_data_lists.py من الدليل الجذر للمستودع لإعادة إنشاء مجلد البيانات المصدر بقوائم الارتباطات إلى ملفات بيانات مصدر Google.
قم بتشغيل download_and_extract_most_freq.py من الدليل الجذر للمستودع لتنزيل كل ملف مدرج في البيانات المصدر ("ملف .gz") واستخراج n-grams الأكثر شيوعًا فيه إلى قائمة محفوظة في ngrams/more/{lang}/most_freq_ngrams_per_gz_file
. لحفظ موارد الكمبيوتر، يتم حذف كل ملف .gz فورًا بعد ذلك. نظرًا لأن قوائم n-grams الأكثر شيوعًا لكل ملف .gz لا تزال تشغل حوالي 36 جيجابايت مع الإعدادات الافتراضية، فقد تم تحميل قائمة أمثلة واحدة فقط إلى GitHub: ngrams_1-00006-of-00024.gz.csv. لم يتم إجراء أي تنظيف في هذه المرحلة، لذلك تبدو البيانات الأولية هكذا.
قم بتشغيل Collect_and_clean.py لتجميع كل n-grams في قوائم الأكثر تكرارًا بشكل عام وتنظيف هذه القوائم (راجع القسم التالي للحصول على التفاصيل).
قم بتشغيل google_cloud_translate.py لإضافة ترجمات إنجليزية لجميع الجرام الواحد غير الإنجليزية باستخدام Google Cloud Translate API (وهذا يتطلب مفتاح واجهة برمجة التطبيقات، راجع رأس الملف). افتراضيًا، تتم ترجمة 1-gram فقط وإلى اللغة الإنجليزية فقط، ولكن عن طريق تغيير الإعدادات، يمكن ترجمة أي 1-gram إلى أي لغة يدعمها Google. يقوم Google بتكبير الترجمات بشكل عشوائي، لذا تتم محاولة لتصحيح ذلك. علاوة على ذلك، يتم تطبيق عدد محدود من التصحيحات اليدوية باستخدام manual_translations_1grams.csv.
أخيرًا، يُنتج graph_1grams_cumshare_rank.py graph_1grams_cumshare_rank_light.svg ونسخته المظلمة.
يتم تنفيذ جميع خطوات التنظيف في موقع Collect_and_clean.py، باستثناء تنظيف ترجمات Google.
يتم تنفيذ خطوات التنظيف التالية برمجياً:
"'"
"'"
و " "
و ","
"-"
للغة الروسية و """
للغة العبريةعلاوة على ذلك، تم تنفيذ خطوات التنظيف التالية يدويًا، باستخدام الترجمات الإنجليزية للمساعدة في اتخاذ القرارات المستنيرة:
extra_{n}grams_to_exclude.csv
.عند تحديد الكلمات المراد تضمينها واستبعادها يدويًا، تم تطبيق القواعد التالية. استبعاد : أسماء الأشخاص (بعض الاستثناءات: يسوع، الله)، وأسماء المدن (بعض الاستثناءات: إذا كانت تختلف كثيرًا عن اللغة الإنجليزية وتكون شائعة بدرجة كافية)، وأسماء الشركات، والاختصارات (بعض الاستثناءات، على سبيل المثال ma، pa)، وأجزاء الكلمات، والكلمات في اللغة الخاطئة (إلا إذا كانت شائعة الاستخدام). لا تستبعد : أسماء البلدان، وأسماء المجموعات العرقية/الوطنية من الأشخاص، والأسماء الجغرافية (مثل الأنهار والمحيطات)، والمصطلحات العامية، والمداخلات.
للحصول على قائمة تم إنشاؤها بعناية بجميع الكلمات في الجزء الإنجليزي من Google Books Ngram Corpus (الإصدار 20200217)، مرتبة حسب التكرار، راجع مستودع hackerb9/gwordlist.
تتوفر قائمة واسعة من قوائم الترددات بالعديد من اللغات على ويكاموس.
ما يتبقى هو إكمال التنظيف اليدوي النهائي للغة العبرية وتنظيف قوائم n-grams لـ n > 1. والمشكلة التي قد تتم معالجتها في المستقبل هي أن بعض الأخيرة تحتوي على "،" ككلمة . وقد يكون من المرغوب فيه أيضًا تضمين المزيد من الاختصارات الشائعة. لم يتم توفير قوائم منفصلة لـ n-gram للغة الإنجليزية الأمريكية والإنجليزية البريطانية. وبطبيعة الحال، لا تزال هناك بعض الأخطاء.
محتوى هذا المستودع مرخص بموجب ترخيص Creative Commons Attribution 3.0 Unported. تقارير الإصدار وطلبات السحب هي موضع ترحيب كبير!