NLP / NaturalLanguage: یہ کیا ہے، iOS میں ٹیکسٹ پروسیسنگ فریم ورک

مصنف: IT Sectr اشاعت: 2026-07-19 مطالعے کا وقت: 8 منٹ

NaturalLanguage Apple کا ایک فریم ورک ہے جو iOS اور macOS آلات پر قدرتی زبان کی پروسیسنگ کے لیے ہے، جو ٹوکنائزیشن، زبان کی شناخت، تقریر کے حصوں کی ٹیگنگ، لیماٹائزیشن اور نامزد ہستی کی شناخت تک رسائی فراہم کرتا ہے۔ Apple WWDC 2020 کے مطابق، فریم ورک تمام تجزیہ آلے پر انجام دیتا ہے، بغیر ڈیٹا سرور کو بھیجے، جو صارف کے ڈیٹا کی رازداری کو یقینی بناتا ہے۔ NaturalLanguage 30 سے زیادہ زبانوں کو سپورٹ کرتا ہے اور حسب ضرورت NLP ماڈلز کے لیے Core ML کے ساتھ مربوط ہوتا ہے۔

اہم نکات

  • NaturalLanguage Apple کا ڈیوائس پر NLP فریم ورک ہے جو کلاؤڈ پر ڈیٹا بھیجے بغیر کام کرتا ہے۔
  • ٹوکنائزیشن، زبان کی شناخت، لیماٹائزیشن، تقریر کے حصوں کی ٹیگنگ اور NER کو سپورٹ کرتا ہے۔
  • 30+ زبانوں کے ساتھ کام کرتا ہے، جن میں روسی، انگریزی، چینی اور عربی شامل ہیں۔
  • NLTokenizer ٹیکسٹ کو الفاظ، جملوں، پیراگراف اور دستاویزات میں تقسیم کرتا ہے۔
  • NLLanguageRecognizer ہر آپشن کے لیے احتمال کے ساتھ ٹیکسٹ کی زبان کا تعین کرتا ہے۔

iOS میں NaturalLanguage کیا ہے؟

NaturalLanguage (NL) قدرتی زبان کے تجزیہ کے لیے Apple کا مشین لرننگ فریم ورک ہے، جو Foundation کا حصہ ہے اور iOS 12+، macOS 10.14+ اور watchOS 5+ پر دستیاب ہے۔ فریم ورک حسب ضرورت ماڈلز کی تربیت کی ضرورت کے بغیر استعمال کے لیے تیار NLP صلاحیتیں فراہم کرتا ہے۔

کلاؤڈ NLP خدمات (Google Cloud NLP، Amazon Comprehend) کے برعکس، NaturalLanguage تمام تجزیہ آلے پر انجام دیتا ہے۔ اس کا مطلب ہے صفر نیٹ ورک لیٹنسی، آف لائن آپریشن اور مکمل ڈیٹا رازداری — ٹیکسٹ کبھی صارف کے آلے کو نہیں چھوڑتا۔

Apple ML Research 2023 کے مطابق، A12+ چپس پر ڈیوائس پر NLP، بنیادی کاموں کے لیے 85% سے زیادہ درستگی برقرار رکھتے ہوئے، اسی طرح کے کلاؤڈ حل سے 3–5 گنا تیزی سے درخواستوں پر کارروائی کرتا ہے۔ فریم ورک 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 100 حروف یا اس سے زیادہ کے ٹیکسٹ کے لیے روسی کو 95% درستگی سے پہچانتا ہے۔ مختصر ٹیکسٹ (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 → متعلق فعل۔ لیماٹائزیشن اور تقریر کے حصوں کو ملا کر، آپ ایک سمارٹ تلاش بنا سکتے ہیں جو دوڑتی بلیوں کو دوڑ بلی کی query سے ڈھونڈے۔

NLTagScheme.lemma روسی سمیت NaturalLanguage کے ذریعے سپورٹ کردہ تمام زبانوں میں کام کرتا ہے۔ یہ NLTagger کو ہر زبان کے لیے علیحدہ ماڈل لوڈ کرنے کی ضرورت کے بغیر کثیر لسانی ایپلیکیشنز کے لیے ایک ورسٹائل ٹول بناتا ہے۔

NaturalLanguage میں نامزد ہستی کی شناخت

نامزد ہستی کی شناخت (NER) ٹیکسٹ سے نامزد ہستیوں کو نکالنے کا کام ہے: لوگوں کے نام، تنظیموں کے نام، جغرافیائی مقامات اور ذاتی ڈیٹا۔ NaturalLanguage NLTagScheme.nameType کے ذریعے NER کو سپورٹ کرتا ہے۔

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۔ NaturalLanguage NER کو حسب ضرورت تربیت کی ضرورت نہیں ہے اور یہ انگریزی، فرانسیسی، جرمن، ہسپانوی اور دیگر زبانوں کے لیے فوراً کام کرتا ہے۔

روسی کے لیے، NER سپورٹ کیا جاتا ہے لیکن درستگی کچھ کم ہے — انگریزی کے لیے 85% کے مقابلے میں تقریباً 70–75%۔ اگر روسی کے لیے اعلی درستگی کی ضرورت ہو تو، Apple Create ML کا استعمال کرتے ہوئے اپنے ڈیٹا پر ایک حسب ضرورت Core 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 کے مطابق، ایک حسب ضرورت ٹیکسٹ ماڈل 80–95% درستگی حاصل کرنے کے لیے 500–5000 مثالوں پر تربیت یافتہ ہوتا ہے۔ NaturalLanguage ماڈل کو ایک بار لوڈ کرتا ہے اور بعد کی کالز کے لیے اسے کیش کرتا ہے، بار بار کی درخواستوں میں تاخیر کو کم کرتا ہے۔

NLP کامNaturalLanguage کلاسروسی سپورٹ
ٹوکنائزیشنNLTokenizerہاں
زبان کی شناختNLLanguageRecognizerہاں
لیماٹائزیشنNLTagger + .lemmaہاں
تقریر کے حصےNLTagger + .lexicalClassہاں
NERNLTagger + .nameTypeمحدود
جذباتNLModel (پہلے سے تربیت یافتہ)نہیں

اکثر پوچھے جانے والے سوالات

NaturalLanguage NLP کے لیے Core ML سے کیسے مختلف ہے؟

NaturalLanguage تربیت کی ضرورت کے بغیر استعمال کے لیے تیار NLP ماڈل فراہم کرتا ہے: ٹوکنائزیشن، زبان کی شناخت، NER۔ Core ML کو اپنے ڈیٹا پر ماڈل تربیت دینے کی ضرورت ہوتی ہے اور مخصوص کاموں کے لیے زیادہ لچک فراہم کرتا ہے۔ NaturalLanguage بنیادی تیار کاموں کے لیے بہتر ہے، جبکہ Core ML انتہائی مخصوص کاموں کے لیے ہے۔

کیا NaturalLanguage آف لائن کام کرتا ہے؟

ہاں، NaturalLanguage انٹرنیٹ کنیکشن کے بغیر مکمل طور پر آلے پر کام کرتا ہے۔ تمام ماڈل iOS اور macOS میں شامل ہیں، اور ڈیٹا سرور کو نہیں بھیجا جاتا۔ یہ کلاؤڈ NLP خدمات پر ایک اہم فائدہ ہے جنہیں نیٹ ورک تک رسائی کی ضرورت ہوتی ہے اور رازداری کے خطرات پیدا ہوتے ہیں۔

NaturalLanguage کون سی زبانیں سپورٹ کرتا ہے؟

NaturalLanguage 30 سے زیادہ زبانوں کو سپورٹ کرتا ہے، جن میں روسی، انگریزی، ہسپانوی، فرانسیسی، جرمن، اطالوی، پرتگالی، چینی، جاپانی، کورین، عربی، ترکی اور یوکرینی شامل ہیں۔ ٹوکنائزیشن اور لیماٹائزیشن کی درستگی تمام سپورٹ کردہ زبانوں میں زیادہ ہے، جبکہ NER اور جذباتی تجزیہ بنیادی طور پر انگریزی کے لیے ہیں۔

NaturalLanguage کے لیے میں اپنا NLP ماڈل کیسے تربیت دوں؟

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 کلاؤڈ پر ڈیٹا بھیجے بغیر ٹوکنائزیشن، زبان کی شناخت، لیماٹائزیشن، POS ٹیگنگ اور NER کے لیے Apple کا ڈیوائس پر NLP فریم ورک ہے۔
  • NLTokenizer جاپانی اور عربی سمیت 30+ زبانوں کی خصوصیات کو مدنظر رکھتے ہوئے ٹیکسٹ کو الفاظ، جملوں، پیراگراف اور دستاویزات میں تقسیم کرتا ہے۔
  • NLLanguageRecognizer ٹیکسٹ کی غالب زبان کا تعین کرتا ہے اور کثیر لسانی منظرناموں کے لیے احتمالات کے ساتھ مفروضے لوٹاتا ہے۔
  • NLTagger .lexicalClass اور .lemma کے ساتھ تقریر کے حصوں کی ٹیگنگ اور لیماٹائزیشن کرتا ہے — تلاش اور تجزیہ کو بہتر بنانے کے لیے الفاظ کو ان کی لغوی شکل میں کم کرنا۔
  • نامزد ہستی کی شناخت NLTagScheme.nameType کے ذریعے انگریزی، فرانسیسی، جرمن اور دیگر زبانوں میں ٹیکسٹ سے نام، تنظیمیں اور مقامات نکالتا ہے۔
  • NLModel 7 زبانوں میں جائزوں کے لیے ایک بلٹ ان جذباتی تجزیہ ماڈل سمیت پہلے سے تربیت یافتہ اور حسب ضرورت Core ML ماڈلز کے لیے انٹرفیس فراہم کرتا ہے۔
  • روسی کے لیے، ٹوکنائزیشن، زبان کی شناخت، لیماٹائزیشن اور POS ٹیگنگ دستیاب ہیں؛ NER اور جذباتی تجزیہ ایک حسب ضرورت Core ML ماڈل کے ذریعے بہتر لاگو کیے جاتے ہیں۔

ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے

IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔

پروجیکٹ پر بحث کریں

مزید پڑھیں