NLP / NaturalLanguage: iOS-da matnni qayta ishlash freymvorki

Muallif: IT Sectr Nashr etilgan: 2026-07-19 O'qish vaqti: 8 daq

NaturalLanguage — bu Apple tomonidan iOS va macOS qurilmalarida tabiiy tilni qayta ishlash uchun freymvork bo'lib, tokenizatsiya, tilni aniqlash, nutq qismlarini teglash, lemmatizatsiya va nomlangan ob'ektlarni aniqlash imkonini beradi. Apple WWDC 2020 ma'lumotlariga ko'ra, freymvork barcha tahlilni qurilmada bajaradi, ma'lumotlarni serverga yubormasdan, bu foydalanuvchi ma'lumotlarining maxfiyligini ta'minlaydi. NaturalLanguage 30 dan ortiq tilni qo'llab-quvvatlaydi va shaxsiy NLP modellari uchun Core ML bilan integratsiyalanadi.

Asosiy nuqtalar

  • NaturalLanguage — Apple-dan on-device NLP freymvorki, ma'lumotlarni bulutga yubormasdan ishlaydi.
  • Tokenizatsiya, tilni aniqlash, lemmatizatsiya, nutq qismlarini teglash va NER ni qo'llab-quvvatlaydi.
  • 30+ til bilan ishlaydi, jumladan o'zbek, ingliz, xitoy, arab.
  • NLTokenizer matnni so'zlarga, gaplarga, paragraflarga va hujjatlarga ajratadi.
  • NLLanguageRecognizer matn tilini har bir variant uchun ehtimolni ko'rsatib aniqlaydi.

iOS-da NaturalLanguage nima?

NaturalLanguage (NL) — bu Apple-ning tabiiy tilni tahlil qilish uchun mashina o'rganish freymvorki, Foundation tarkibiga kiradi va iOS 12+, macOS 10.14+ va watchOS 5+ da mavjud. Freymvork o'z modellarini o'rgatish zaruratisiz tayyor NLP imkoniyatlarini taqdim etadi.

Bulutli NLP xizmatlaridan (Google Cloud NLP, Amazon Comprehend) farqli o'laroq, NaturalLanguage barcha tahlilni qurilmada bajaradi. Bu tarmoq so'rovlarida nol kechikish, oflayn rejimda ishlash va ma'lumotlarning to'liq maxfiyligini anglatadi — matn foydalanuvchi qurilmasini tark etmaydi.

Apple ML Research 2023 ma'lumotlariga ko'ra, A12+ chiplarida on-device NLP so'rovlarni o'xshash bulutli yechimlardan 3–5 marta tezroq qayta ishlaydi, asosiy vazifalar uchun aniqlikni 85% dan yuqori saqlaydi. Freymvork Neural Engine uchun optimallashtirilgan bo'lib, zamonaviy qurilmalarda sekundiga 100 tagacha so'rovni qayta ishlash imkonini beradi.

NaturalLanguage iOS ilovalarida sharhlarni tahlil qilish, aqlli qidiruv, avtomatik to'ldirish, kontent moderatsiyasi va tuzilmagan matndan tuzilgan ma'lumotlarni olish uchun ishlatiladi. Freymvork 30 dan ortiq tilni qo'llab-quvvatlaydi, jumladan o'zbek, ukrain, turk va arab.

NLTokenizer bilan matn tokenizatsiyasi

NLTokenizer — matnni lingvistik birliklarga: so'zlarga, gaplarga, paragraflarga yoki hujjatlarga ajratish uchun sinf. Tokenizatsiya deyarli har qanday NLP pipeline-ining birinchi qadamidir va NaturalLanguage uni tayyor shaklda taqdim etadi.

NLTokenizer til xususiyatlarini hisobga oladi: yapon tili uchun (so'zlar orasida bo'sh joy yo'q), arab (o'ngdan chapga yozuv) va xitoy (ieroglif yozuvi) uchun tokenizatsiyani to'g'ri boshqaradi. Ingliz va o'zbek tili uchun tokenizator bo'shliqlar va tinish belgilari asosida ishlaydi, lekin qisqartmalarni hisobga oladi.

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
}

Gap darajasida tokenizatsiya katta matnlarni keyingi tahlil uchun mantiqiy bloklarga ajratish uchun foydalidir. NLTokenizerSentence oxirida nuqta bo'lmasa yoki so'roq gaplar bo'lsa ham gap chegaralarini aniqlaydi.

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-ning barcha boshqa imkoniyatlari uchun asosdir. Tokenizatsiyadan so'ng matn tilni aniqlash, teglash va lemmatizatsiya uchun tayyor.

NLLanguageRecognizer bilan tilni aniqlash

NLLanguageRecognizer matnning tilini aniqlaydi va eng ehtimolli variantni ishonch bilan qaytaradi. Freymvork 30 dan ortiq tilni qo'llab-quvvatlaydi va istalgan uzunlikdagi matn bilan ishlashi mumkin — bir so'zdan butun hujjatgacha.

NLLanguageRecognizer algoritmi belgi n-grammalarini tahlil qiladi va ularni til profillari bilan solishtiradi. Qisqa matnlar (50 belgigacha) uchun aniqlik pasayadi, shuning uchun Apple tilni ishonchli aniqlash uchun kamida 100–200 belgi yuborishni tavsiya qiladi.

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 metodi tillar lug'atini ehtimollar bilan kamayish tartibida qaytaradi. Bu matn tillar aralashmasini o'z ichiga olganida yoki foydalanuvchiga faqat dominant tilni emas, balki tanlash uchun bir nechta variantni ko'rsatish kerak bo'lganda foydalidir.

NaturalLanguage o'zbek tilini 100 belgidan matnlar uchun 95% aniqlik bilan aniqlaydi. Qisqa matnlar (1–2 so'z) uchun aniqlik 60–70% gacha tushadi — bunday hollarda languageHypotheses dan foydalanib top-3 variantni ko'rsatish yaxshiroq.

Nutq qismlarini teglash va lemmatizatsiya

NLTagScheme lingvistik tahlil uchun teglash sxemalarini taqdim etadi: nutq qismlari (ot, fe'l, sifat), lemmalar (so'zning normal shakli), ob'ekt turlari (shaxs, tashkilot, joy) va boshqa kategoriyalar.

Lemmatizatsiya so'zni lug'at shakliga keltiradi: „yugurdi" → „yugurmoq", „yaxshiroq" → „yaxshi", „books" → „book". Bu qidiruv va matn tahlili uchun juda muhim — lemmatizatsiyasiz „kitob" va „kitobni" turli tokenlar hisoblanadi, bu NLP pipeline-lari sifatini pasaytiradi.

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")"
}

Natija namunasi: cats → Noun, were → Verb, quickly → Adverb. Lemmatizatsiya va nutq qismlarini birlashtirib „yugurayotgan mushuklar" so'roviga „yugurmoq mushuk" bilan topadigan aqlli qidiruv qurish mumkin.

NLTagScheme.lemma NaturalLanguage tomonidan qo'llab-quvvatlanadigan barcha tillar, jumladan o'zbek tili uchun ishlaydi. Bu NLTagger-ni har bir til uchun alohida model yuklamasdan ko'p tilli ilovalar uchun universal vositaga aylantiradi.

NaturalLanguage-da Named Entity Recognition

Named Entity Recognition (NER) — matndan nomlangan ob'ektlarni: shaxs ismlari, tashkilot nomlari, geografik joylar va shaxsiy ma'lumotlarni ajratib olish vazifasidir. NaturalLanguage NER-ni NLTagScheme.nameType orqali qo'llab-quvvatlaydi.

NLTagScheme.nameType uch turdagi ob'ektni farqlaydi: PersonalName (shaxs ismlari), OrganizationName (tashkilotlar, kompaniyalar) va PlaceName (geografik nomlar). Bu yangiliklardan, xatlardan va sharhlardan avtomatik ravishda tuzilgan ma'lumotlarni olish imkonini beradi.

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)"
    }
}

Natija: Tim Cook → PersonalName, Apple → OrganizationName, Cupertino → PlaceName. NaturalLanguage-dan NER shaxsiy o'rganishni talab qilmaydi va ingliz, fransuz, nemis, ispan va boshqa tillar uchun tayyor ishlaydi.

O'zbek tili uchun NER qo'llab-quvvatlanadi, ammo aniqlik biroz pastroq — ingliz tili uchun 85% ga nisbatan taxminan 70–75%. Agar o'zbek tili uchun yuqori aniqlik talab etilsa, Apple Create ML yordamida o'z ma'lumotlaringizda shaxsiy Core ML modelini o'rgatishni tavsiya qiladi.

NLModel bilan sentiment tahlili

NLModel — Core ML-ning o'rgatilgan NLP modellari, jumladan Apple tomonidan oldindan o'rgatilgan sentiment tahlili modeli bilan ishlash uchun sinf. Model matnning tonini aniqlaydi: ijobiy, salbiy yoki neytral.

Ichki sentiment tahlili modeli App Store sharhlari asosida o'rgatilgan va ingliz, fransuz, nemis, italyan, ispan, portugal, xitoy va yapon tillari uchun ishlaydi. O'zbek tili uchun model oldindan o'rgatilmagan — Create ML va o'zingizning belgilangan ma'lumotlaringiz talab qilinadi.

swift
import NaturalLanguage

let sentimentPredictor = try NLModel(mlModel: SentimentModel().model)
let sentiment = sentimentPredictor.predictedLabel(for: "Bu ilova ajoyib!")
print("Sentiment: \\(sentiment ?? "neutral")") // "positive"

NLModel shuningdek Create ML orqali o'rgatilgan shaxsiy modellarni qo'llab-quvvatlaydi. O'z ma'lumotlaringizda (mahsulot kategoriyalari, qo'llab-quvvatlash murojaat turlari, til uslublari) matn tasnifi modelini o'rgatib, xuddi shu NLModel interfeysi orqali ishlatishingiz mumkin.

Apple Create ML documentation 2024 ga ko'ra, shaxsiy matn modeli 80–95% aniqlikka erishish uchun 500–5000 namuna asosida o'rgatiladi. NaturalLanguage modelni bir marta yuklaydi va keyingi chaqiruvlar uchun uni keshda saqlaydi, bu takroriy so'rovlarda kechikishni minimal darajaga tushiradi.

NLP vazifasiNaturalLanguage sinfiO'zbek tili qo'llab-quvvatlashi
TokenizatsiyaNLTokenizerHa
Tilni aniqlashNLLanguageRecognizerHa
LemmatizatsiyaNLTagger + .lemmaHa
Nutq qismlariNLTagger + .lexicalClassHa
NERNLTagger + .nameTypeCheklangan
SentimentNLModel (oldindan o'rgat.)Yo'q

Tez-tez beriladigan savollar

NaturalLanguage NLP uchun Core ML dan qanday farq qiladi?

NaturalLanguage o'rganish zaruratisiz tayyor NLP modellarini taqdim etadi: tokenizatsiya, tilni aniqlash, NER. Core ML o'z ma'lumotlaringizda model o'rgatishni talab qiladi va maxsus vazifalar uchun ko'proq moslashuvchanlik beradi. NaturalLanguage asosiy vazifalar uchun „qutidan chiqqandek" yaxshiroq, Core ML — tor ixtisoslashgan vazifalar uchun.

NaturalLanguage oflayn ishlaydimi?

Ha, NaturalLanguage butunlay internet ulanishisiz qurilmada ishlaydi. Barcha modellar iOS va macOS ga o'rnatilgan, ma'lumotlar serverga yuborilmaydi. Bu tarmoq talab qiladigan va maxfiylik xavflarini yaratadigan bulutli NLP xizmatlaridan asosiy ustunlikdir.

NaturalLanguage qaysi tillarni qo'llab-quvvatlaydi?

NaturalLanguage 30 dan ortiq tilni qo'llab-quvvatlaydi, jumladan o'zbek, ingliz, ispan, fransuz, nemis, italyan, portugal, xitoy, yapon, koreys, arab, turk va ukrain. Tokenizatsiya va lemmatizatsiya aniqligi barcha qo'llab-quvvatlanadigan tillar uchun yuqori, NER va sentiment — asosan ingliz tili uchun.

NaturalLanguage uchun o'z NLP modelimni qanday o'rgataman?

Create ML dan foydalaning — Apple-ning dasturlashsiz mashina o'rganish modellarini o'rgatish ilovasi. Belgilangan ma'lumotlar to'plamini (CSV yoki JSON) yuklang, matn tasnifi yoki teglash vazifasini tanlang, modelni o'rgating va Core ML formatida (.mlmodel) eksport qiling. Keyin kodda NLModel(mlModel:) orqali modelni yuklang.

NaturalLanguage barcha Apple qurilmalarida ishlaydimi?

NaturalLanguage iOS 12+, macOS 10.14+, watchOS 5+ va tvOS 12+ da mavjud. A12+ chipi va Neural Engine bo'lgan qurilmalarda ishlash yuqoriroq — matnni qayta ishlash mashina o'rganishining apparat tezlashuvi tufayli 3–5 marta tezlashadi. Eski qurilmalarda (A11 va undan oldin) freymvork ishlaydi, ammo sekinroq.

Xulosa

  • NaturalLanguage — Apple-ning on-device NLP freymvorki, ma'lumotlarni bulutga yubormasdan tokenizatsiya, tilni aniqlash, lemmatizatsiya, POS-teglash va NER uchun.
  • NLTokenizer matnni so'zlarga, gaplarga, paragraflarga va hujjatlarga ajratadi, 30+ tilning xususiyatlarini hisobga oladi.
  • NLLanguageRecognizer matnning dominant tilini aniqlaydi va ko'p tilli ssenariylar uchun ehtimollar bilan gipotezalarni qaytaradi.
  • NLTagger .lexicalClass va .lemma bilan nutq qismlarini teglash va lemmatizatsiyani bajaradi — so'zlarni lug'at shakliga keltirib qidiruv va tahlilni yaxshilaydi.
  • Named Entity Recognition NLTagScheme.nameType orqali ingliz, fransuz, nemis va boshqa tillarda matndan ismlar, tashkilotlar va joylarni ajratib oladi.
  • NLModel oldindan o'rgatilgan va shaxsiy Core ML modellari uchun interfeys taqdim etadi, jumladan 7 tilda sharhlar uchun ichki sentiment tahlili modeli.
  • O'zbek tili uchun tokenizatsiya, tilni aniqlash, lemmatizatsiya va POS-teglash mavjud; NER va sentiment shaxsiy Core ML modeli orqali amalga oshirilishi kerak.

Biz kalit topshirig'i bilan mobil ilovani ishlab chiqamiz

IT Sectr 2017-yildan beri startaplar va korxonalar uchun iOS va Android ilovalarini yaratadi. Biz sizga maslahat beramiz va eng yaxshi yechimni taklif qilamiz.

Loyihani muhokama qilish

Shuningdek o'qing