NLP / NaturalLanguage: ما هو، إطار عمل معالجة النص في iOS

المؤلف: IT Sectr نُشر: 2026-07-19 وقت القراءة: 8 دق

NaturalLanguage هو إطار عمل من Apple لمعالجة اللغة الطبيعية على أجهزة iOS و macOS، يوفر الوصول إلى الترميز، التعرف على اللغة، وضع علامات على أجزاء الكلام، الاشتقاق والتعرف على الكيانات المسماة. وفقًا لـ Apple WWDC 2020، يقوم الإطار بكل التحليل على الجهاز، دون إرسال البيانات إلى الخادم، مما يضمن خصوصية بيانات المستخدم. يدعم NaturalLanguage أكثر من 30 لغة ويتكامل مع Core ML للنماذج NLP المخصصة.

الخلاصات الرئيسية

  • NaturalLanguage هو إطار عمل NLP على الجهاز من Apple يعمل دون إرسال البيانات إلى السحابة.
  • يدعم الترميز، التعرف على اللغة، الاشتقاق، وضع علامات أجزاء الكلام و NER.
  • يعمل مع أكثر من 30 لغة، بما في ذلك الروسية والإنجليزية والصينية والعربية.
  • NLTokenizer يقسم النص إلى كلمات وجمل وفقرات ومستندات.
  • NLLanguageRecognizer يحدد لغة النص مع احتمالية لكل خيار.

ما هو NaturalLanguage في iOS؟

NaturalLanguage (NL) هو إطار عمل تعلم آلي من Apple لتحليل اللغة الطبيعية، جزء من Foundation ومتوفر على iOS 12+ و macOS 10.14+ و watchOS 5+. يوفر الإطار إمكانيات NLP جاهزة للاستخدام دون الحاجة لتدريب نماذج مخصصة.

على عكس خدمات NLP السحابية (Google Cloud NLP، Amazon Comprehend)، يقوم NaturalLanguage بكل التحليل على الجهاز. هذا يعني زمن وصول شبكة صفري، تشغيل دون اتصال، وخصوصية كاملة للبيانات — النص لا يغادر جهاز المستخدم أبدًا.

وفقًا لـ Apple ML Research 2023، يعالج NLP على الجهاز على رقائق A12+ الطلبات أسرع بـ 3–5 مرات من الحلول السحابية المماثلة، مع الحفاظ على دقة تزيد عن 85% للمهام الأساسية. الإطار محسّن لـ Neural Engine، قادر على معالجة ما يصل إلى 100 طلب في الثانية على الأجهزة الحديثة.

يُستخدم NaturalLanguage في تطبيقات iOS لتحليل المراجعات، البحث الذكي، الإكمال التلقائي، مراقبة المحتوى واستخراج البيانات المنظمة من النص غير المنظم. يدعم الإطار أكثر من 30 لغة، بما في ذلك الروسية والأوكرانية والتركية والعربية.

ترميز النص مع NLTokenizer

NLTokenizer هو فئة لتقسيم النص إلى وحدات لغوية: كلمات، جمل، فقرات أو مستندات. الترميز هو الخطوة الأولى لأي خط أنابيب NLP تقريبًا، ويوفرها NaturalLanguage جاهزة.

يراعي NLTokenizer خصائص اللغة: فهو يتعامل بشكل صحيح مع الترميز لليابانية (بدون مسافات بين الكلمات)، والعربية (الكتابة من اليمين إلى اليسار)، والصينية (الكتابة الرمزية). للإنجليزية والروسية، يعمل المرمز بالمسافات وعلامات الترقيم، لكن مع مراعاة الاختصارات (don't → do + n't).

swift
import NaturalLanguage

let text = "NaturalLanguage processes text on-device. It supports 30+ languages!"
let tokenizer = NLTokenizer(unit: .word)
tokenizer.string = text

tokenizer.enumerateTokens(in: text.startIndex..<text.endIndex) { range, _ in
    print(text[range])
    return true
}

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

swift
let sentenceTokenizer = NLTokenizer(unit: .sentence)
sentenceTokenizer.string = text

sentenceTokenizer.enumerateTokens(in: text.startIndex..<text.endIndex) { range, _ in
    print("Sentence: \\(text[range])")
    return true
}

NLTokenizer هو الأساس لجميع إمكانيات NaturalLanguage الأخرى. بعد الترميز، النص جاهز للتعرف على اللغة، وضع العلامات والاشتقاق.

التعرف على اللغة مع NLLanguageRecognizer

NLLanguageRecognizer يحدد لغة النص ويعيد الخيار الأكثر احتمالاً مع درجة ثقة. يدعم الإطار أكثر من 30 لغة ويمكنه العمل مع نص من أي طول — من كلمة واحدة إلى مستند كامل.

خوارزمية NLLanguageRecognizer تحلل n-grams من الأحرف وتقارنها مع ملفات تعريف اللغة. للنصوص القصيرة (حتى 50 حرفًا)، تنخفض الدقة، لذلك توصي Apple بإرسال 100–200 حرف على الأقل لتحديد لغة موثوق.

swift
import NaturalLanguage

let recognizer = NLLanguageRecognizer()
recognizer.processString("Hello, how are you? I am learning NaturalLanguage.")

if let language = recognizer.dominantLanguage {
    print("Dominant language: \\(language.rawValue)") // "ru"
}

let hypotheses = recognizer.languageHypotheses(withMaximum: 3)
for (lang, prob) in hypotheses {
    print("\\(lang.rawValue): \\(prob)")
}

تعيد طريقة languageHypotheses قاموسًا للغات مع الاحتمالات بترتيب تنازلي. هذا مفيد عندما يحتوي النص على مزيج من اللغات أو عندما تحتاج إلى عرض خيارات متعددة للمستخدم للاختيار، بدلاً من اللغة السائدة فقط.

يتعرف NaturalLanguage على الروسية بدقة 95% للنصوص من 100 حرف أو أكثر. للنصوص القصيرة (1–2 كلمات)، تنخفض الدقة إلى 60–70% — في مثل هذه الحالات، من الأفضل استخدام languageHypotheses وعرض أفضل 3 خيارات.

وضع علامات أجزاء الكلام والاشتقاق

NLTagScheme يوفر مخططات وضع العلامات للتحليل اللغوي: أجزاء الكلام (اسم، فعل، صفة)، الاشتقاقات (الشكل الأساسي للكلمة)، أنواع الكيانات (شخص، مؤسسة، مكان) وفئات أخرى.

الاشتقاق يختزل الكلمة إلى شكلها القاموسي: «جرى» → «جري»، «أفضل» → «جيد»، «books» → «book». هذا مهم بشكل حاسم للبحث وتحليل النص — بدون الاشتقاق، يتم التعامل مع «قطة» و«قطتين» كرموز مختلفة، مما يقلل من جودة خطوط أنابيب NLP.

swift
import NaturalLanguage

let tagger = NLTagger(tagSchemes: [.lemma, .lexicalClass])
tagger.string = "The cats were running quickly."

tagger.enumerateTags(in: tagger.string!.startIndex..<tagger.string!.endIndex,
    unit: .word,
    scheme: .lexicalClass) { tag, range in
    print("\\(tagger.string![range]): \\(tag?.rawValue ?? "unknown")"
}

مثال إخراج: cats → اسم، were → فعل، quickly → ظرف. من خلال الجمع بين الاشتقاق وأجزاء الكلام، يمكنك بناء بحث ذكي يجد «القطط الجارية» من استعلام «جري قطة».

NLTagScheme.lemma يعمل لجميع اللغات التي يدعمها NaturalLanguage، بما في ذلك الروسية. هذا يجعل NLTagger أداة متعددة الاستخدامات للتطبيقات متعددة اللغات دون الحاجة لتحميل نماذج منفصلة لكل لغة.

التعرف على الكيانات المسماة في NaturalLanguage

التعرف على الكيانات المسماة (NER) هو مهمة استخراج الكيانات المسماة من النص: أسماء الأشخاص، أسماء المؤسسات، المواقع الجغرافية والبيانات الشخصية. يدعم NaturalLanguage NER عبر NLTagScheme.nameType.

NLTagScheme.nameType يميز ثلاثة أنواع من الكيانات: PersonalName، OrganizationName و PlaceName. هذا يسمح بالاستخراج التلقائي للبيانات المنظمة من الأخبار ورسائل البريد الإلكتروني والمراجعات.

swift
let nerTagger = NLTagger(tagSchemes: [.nameType])
nerTagger.string = "Tim Cook announced Apple's new headquarters in Cupertino."

nerTagger.enumerateTags(in: nerTagger.string!.startIndex..<nerTagger.string!.endIndex,
    unit: .word,
    scheme: .nameType) { tag, range in
    if tag != nil {
        print("\\(nerTagger.string![range]): \\(tag!.rawValue)"
    }
}

النتيجة: Tim Cook → PersonalName، Apple → OrganizationName، Cupertino → PlaceName. NER في NaturalLanguage لا يتطلب تدريبًا مخصصًا ويعمل فورًا للإنجليزية والفرنسية والألمانية والإسبانية ولغات أخرى.

بالنسبة لـ الروسية، NER مدعوم لكن الدقة أقل نوعًا ما — حوالي 70–75% مقارنة بـ 85% للإنجليزية. إذا كانت هناك حاجة لدقة عالية للروسية، توصي Apple بتدريب نموذج Core ML مخصص على بياناتك الخاصة باستخدام Create ML.

تحليل المشاعر مع NLModel

NLModel هو فئة للعمل مع نماذج Core ML NLP المدربة، بما في ذلك نموذج تحليل المشاعر المدمج المدرب مسبقًا من Apple. يحدد النموذج مشاعر النص: إيجابية، سلبية أو محايدة.

نموذج تحليل المشاعر المدمج مدرب على مراجعات App Store ويعمل للإنجليزية والفرنسية والألمانية والإيطالية والإسبانية والبرتغالية والصينية واليابانية. للروسية، النموذج غير مدرب مسبقًا — تحتاج Create ML وبياناتك الموسومة الخاصة.

swift
import NaturalLanguage

let sentimentPredictor = try NLModel(mlModel: SentimentModel().model)
let sentiment = sentimentPredictor.predictedLabel(for: "This app is amazing!")
print("Sentiment: \\(sentiment ?? "neutral")") // "positive"

NLModel يدعم أيضًا النماذج المخصصة المدربة عبر Create ML. يمكنك تدريب نموذج تصنيف نص على بياناتك الخاصة (فئات المنتجات، أنواع تذاكر الدعم، أنماط اللغة) واستخدامه من خلال واجهة NLModel نفسها.

وفقًا لـ وثائق Apple Create ML 2024، يتم تدريب نموذج نص مخصص على 500–5000 مثال لتحقيق دقة 80–95%. يقوم NaturalLanguage بتحميل النموذج مرة واحدة وتخزينه مؤقتًا للاستدعاءات اللاحقة، مما يقلل من زمن الوصول للطلبات المتكررة.

مهمة NLPفئة NaturalLanguageدعم الروسية
الترميزNLTokenizerنعم
التعرف على اللغةNLLanguageRecognizerنعم
الاشتقاقNLTagger + .lemmaنعم
أجزاء الكلامNLTagger + .lexicalClassنعم
NERNLTagger + .nameTypeمحدود
المشاعرNLModel (مدرب مسبقًا)لا

الأسئلة الشائعة

كيف يختلف NaturalLanguage عن Core ML في NLP؟

NaturalLanguage يوفر نماذج NLP جاهزة دون الحاجة للتدريب: الترميز، التعرف على اللغة، NER. Core ML يتطلب تدريب نموذج على بياناتك الخاصة ويوفر مرونة أكبر للمهام المحددة. NaturalLanguage أفضل للمهام الأساسية الجاهزة، بينما Core ML للمهام المتخصصة للغاية.

هل يعمل NaturalLanguage دون اتصال؟

نعم، NaturalLanguage يعمل بالكامل على الجهاز دون اتصال بالإنترنت. جميع النماذج مدمجة في iOS و macOS، ولا يتم إرسال البيانات إلى خادم. هذه ميزة رئيسية على خدمات NLP السحابية التي تتطلب الوصول إلى الشبكة وتخلق مخاطر على الخصوصية.

ما اللغات التي يدعمها NaturalLanguage؟

NaturalLanguage يدعم أكثر من 30 لغة، بما في ذلك الروسية والإنجليزية والإسبانية والفرنسية والألمانية والإيطالية والبرتغالية والصينية واليابانية والكورية والعربية والتركية والأوكرانية. دقة الترميز والاشتقاق عالية لجميع اللغات المدعومة، بينما NER وتحليل المشاعر بشكل أساسي للإنجليزية.

كيف أدرب نموذج NLP الخاص بي لـ NaturalLanguage؟

استخدم Create ML — تطبيق Apple لتدريب نماذج التعلم الآلي دون برمجة. قم بتحميل مجموعة بيانات موسومة (CSV أو JSON)، اختر مهمة تصنيف نص أو وضع علامات، درب النموذج وقم بتصديره إلى تنسيق Core ML (.mlmodel). ثم قم بتحميل النموذج عبر NLModel(mlModel:) في الكود.

هل يعمل NaturalLanguage على جميع أجهزة Apple؟

NaturalLanguage متوفر على iOS 12+ و macOS 10.14+ و watchOS 5+ و tvOS 12+. على الأجهزة المزودة بشريحة A12+ و Neural Engine، يكون الأداء أعلى — تتسارع معالجة النص بمقدار 3–5 مرات بفضل التعلم الآلي المسرع بالأجهزة. على الأجهزة الأقدم (A11 وما قبله)، يعمل الإطار لكنه أبطأ.

الملخص

  • NaturalLanguage هو إطار عمل NLP على الجهاز من Apple للترميز، التعرف على اللغة، الاشتقاق، وضع علامات أجزاء الكلام و NER دون إرسال بيانات إلى السحابة.
  • NLTokenizer يقسم النص إلى كلمات وجمل وفقرات ومستندات مع مراعاة خصوصيات أكثر من 30 لغة، بما في ذلك اليابانية والعربية.
  • NLLanguageRecognizer يحدد اللغة السائدة للنص ويعيد الفرضيات مع الاحتمالات للسيناريوهات متعددة اللغات.
  • NLTagger مع .lexicalClass و .lemma يؤدي وضع علامات أجزاء الكلام والاشتقاق — اختزال الكلمات إلى شكلها القاموسي لتحسين البحث والتحليل.
  • التعرف على الكيانات المسماة عبر NLTagScheme.nameType يستخرج الأسماء والمؤسسات والأماكن من النص بالإنجليزية والفرنسية والألمانية ولغات أخرى.
  • NLModel يوفر واجهة للنماذج Core ML المدربة مسبقًا والمخصصة، بما في ذلك نموذج تحليل المشاعر المدمج للمراجعات بـ 7 لغات.
  • بالنسبة لـ الروسية، الترميز، التعرف على اللغة، الاشتقاق ووضع علامات أجزاء الكلام متوفرة؛ NER وتحليل المشاعر أفضل تنفيذًا عبر نموذج Core ML مخصص.

سنقوم بتطوير تطبيق جوال جاهز

تقدم IT Sectr تطبيقات iOS وAndroid للشركات الناشئة والشركات منذ عام 2017. سوف نقدم لك النصح ونقترح أفضل حل.

مناقشة المشروع

اقرأ أيضًا