المسارات
/
SQLite
SQLite
/
التمارين
/
عدّ الكلمات
عدّ الكلمات

عدّ الكلمات

صعب

مقدمة

أنت تُدرّس اللغة الإنجليزية كلغة أجنبية لطلاب المرحلة الثانوية.

قرّرت أن تبني منهجك بالكامل على البرامج التلفزيونية. وتحتاج إلى تحليل الكلمات المستخدمة، وعدد مرات تكرارها.

سيتيح لك ذلك اختيار أبسط البرامج للبدء بها، ثم زيادة الصعوبة تدريجيًا مع مرور الوقت.

التعليمات

مهمتك هي عدّ عدد المرات التي تظهر فيها كل كلمة في ترجمة أحد الأعمال الدرامية.

لا تستخدم الترجمات في هذه الأعمال الدرامية سوى محارف ASCII.

غالبًا ما تتحدث الشخصيات بإنجليزية عامية، مستخدمةً صيغًا مختصرة مثل they're أو it's. ومع أن أصل هذه الصيغ المختصرة كلمتان (مثل we are)، فإن الصيغة المختصرة (we're) تُعدّ كلمة واحدة.

يمكن فصل الكلمات بأي شكل من أشكال الترقيم (مثل ":" أو "!" أو "?") أو المسافات البيضاء (مثل "\t" أو "\n" أو " "). الترقيم الوحيد الذي لا يفصل بين الكلمات هو الفاصلة العليا في الصيغ المختصرة.

تُعدّ الأعداد كلمات. فإذا قالت الترجمة It costs 100 dollars. فإن 100 يُعدّ كلمة بحد ذاتها.

الكلمات لا تتأثر بحالة الأحرف. على سبيل المثال، تظهر كلمة you ثلاث مرات في الجملة التالية:

You come back, you hear me? DO YOU HEAR ME?

ترتيب عدد مرات ورود الكلمات في النتائج لا يهم.

إليك مثالًا يجمع عدة عناصر مما سبق مناقشته:

  • كلمات بسيطة
  • صيغ مختصرة
  • أعداد
  • كلمات لا تتأثر بحالة الأحرف
  • ترقيم (بما في ذلك الفاصلات العليا) لفصل الكلمات
  • أشكال مختلفة من المسافات البيضاء لفصل الكلمات

"That's the password: 'PASSWORD 123'!", cried the Special Agent.\nSo I fled.

ستكون خريطة العدّ لهذه الترجمة كالتالي:

123: 1
agent: 1
cried: 1
fled: 1
i: 1
password: 2
so: 1
special: 1
that's: 1
the: 2

يجب أن يحتوي العمود result على كائن من الكائنات مرمّز بصيغة JSON، تكون فيه كل كلمة مفتاحًا وعدد مرات ظهورها عددًا صحيحًا.

على سبيل المثال، تأمّل الجملة أعلاه: "That's the password: 'PASSWORD 123'!", cried the Special Agent.\nSo I fled. ينبغي أن تكون result لهذا المدخل:

{"123":1,"agent":1,"cried":1,"fled":1,"i":1,"password":2,"so":1,"special":1,"that's":1,"the":2}

مخطط الجدول

CREATE TABLE "word-count" (
    sentence TEXT NOT NULL,
    result   TEXT               -- json object
);

توثيق JSON

دوال JSON وعواملها


المصدر

هذه مسألة تدريبية كلاسيكية، لكننا تذكّرناها عندما رأيناها في Go Tour.
تعديل عبر GitHub يفتح الرابط في نافذة أو علامة تبويب جديدة
SQLite Exercism

مستعد لبدء عدّ الكلمات؟

سجّل في Exercism لتتعلّم وتتقن SQLite عبر 81 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.