NLP / NaturalLanguage: framework pemrosesan teks di iOS

Penulis: IT Sectr Diterbitkan: 2026-07-19 Waktu membaca: 8 mnt

NaturalLanguage — adalah framework dari Apple untuk pemrosesan bahasa alami di perangkat iOS dan macOS, menyediakan akses ke tokenisasi, pengenalan bahasa, penandaan bagian ucapan, lemmatisasi, dan identifikasi entitas bernama. Menurut Apple WWDC 2020, framework melakukan semua analisis di perangkat, tanpa mengirim data ke server, yang memastikan kerahasiaan data pengguna. NaturalLanguage mendukung lebih dari 30 bahasa dan terintegrasi dengan Core ML untuk model NLP kustom.

Poin Utama

  • NaturalLanguage — framework NLP on-device dari Apple, bekerja tanpa mengirim data ke cloud.
  • Mendukung tokenisasi, pengenalan bahasa, lemmatisasi, penandaan bagian ucapan dan NER.
  • Bekerja dengan 30+ bahasa, termasuk Indonesia, Inggris, China, Arab.
  • NLTokenizer membagi teks menjadi kata, kalimat, paragraf, dan dokumen.
  • NLLanguageRecognizer menentukan bahasa teks dengan menunjukkan probabilitas untuk setiap opsi.

Apa itu NaturalLanguage di iOS?

NaturalLanguage (NL) — adalah framework pembelajaran mesin Apple untuk analisis bahasa alami, bagian dari Foundation dan tersedia di iOS 12+, macOS 10.14+ dan watchOS 5+. Framework menyediakan kemampuan NLP siap pakai tanpa perlu melatih model sendiri.

Berbeda dengan layanan NLP cloud (Google Cloud NLP, Amazon Comprehend), NaturalLanguage melakukan semua analisis di perangkat. Ini berarti latensi nol untuk permintaan jaringan, bekerja dalam mode offline, dan kerahasiaan data penuh — teks tidak meninggalkan perangkat pengguna.

Menurut Apple ML Research 2023, NLP on-device pada chip A12+ memproses permintaan 3–5 kali lebih cepat daripada solusi cloud serupa, dengan mempertahankan akurasi lebih dari 85% untuk tugas dasar. Framework dioptimalkan untuk Neural Engine, memungkinkan pemrosesan hingga 100 permintaan per detik pada perangkat modern.

NaturalLanguage digunakan dalam aplikasi iOS untuk analisis ulasan, pencarian cerdas, pelengkapan otomatis, moderasi konten, dan ekstraksi data terstruktur dari teks tidak terstruktur. Framework mendukung lebih dari 30 bahasa, termasuk Indonesia, Ukraina, Turki, dan Arab.

Tokenisasi teks dengan NLTokenizer

NLTokenizer — adalah kelas untuk membagi teks menjadi unit linguistik: kata, kalimat, paragraf, atau dokumen. Tokenisasi adalah langkah pertama dari hampir semua pipeline NLP, dan NaturalLanguage menyediakannya dalam bentuk siap pakai.

NLTokenizer mempertimbangkan karakteristik bahasa: ia menangani tokenisasi dengan benar untuk Jepang (tanpa spasi antar kata), Arab (tulisan kanan-ke-kiri) dan China (tulisan hieroglif). Untuk Inggris dan Indonesia, tokenizer bekerja berdasarkan spasi dan tanda baca, tetapi dengan mempertimbangkan singkatan.

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
}

Tokenisasi di tingkat kalimat berguna untuk membagi teks besar menjadi blok logis sebelum analisis lebih lanjut. NLTokenizerSentence akan menentukan batas kalimat bahkan tanpa titik di akhir atau dengan kalimat tanya.

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 — adalah dasar untuk semua kemampuan NaturalLanguage lainnya. Setelah tokenisasi, teks siap untuk pengenalan bahasa, penandaan, dan lemmatisasi.

Pengenalan bahasa dengan NLLanguageRecognizer

NLLanguageRecognizer menentukan bahasa teks dan mengembalikan opsi yang paling mungkin dengan tingkat keyakinan. Framework mendukung lebih dari 30 bahasa dan dapat bekerja dengan teks dengan panjang berapa pun — dari satu kata hingga seluruh dokumen.

Algoritma NLLanguageRecognizer menganalisis n-gram karakter dan membandingkannya dengan profil bahasa. Untuk teks pendek (hingga 50 karakter), akurasi menurun, oleh karena itu Apple merekomendasikan untuk mengirim setidaknya 100–200 karakter untuk penentuan bahasa yang andal.

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

Metode languageHypotheses mengembalikan kamus bahasa dengan probabilitas dalam urutan menurun. Ini berguna ketika teks berisi campuran bahasa atau ketika perlu menampilkan beberapa opsi untuk dipilih pengguna, bukan hanya bahasa dominan.

NaturalLanguage menentukan bahasa Indonesia dengan akurasi 95% untuk teks dari 100 karakter. Untuk teks pendek (1–2 kata), akurasi turun menjadi 60–70% — dalam kasus seperti itu, lebih baik menggunakan languageHypotheses dan menampilkan 3 opsi teratas.

Penandaan bagian ucapan dan lemmatisasi

NLTagScheme menyediakan skema penandaan untuk analisis linguistik: bagian ucapan (kata benda, kata kerja, kata sifat), lemma (bentuk normal kata), jenis entitas (orang, organisasi, tempat) dan kategori lainnya.

Lemmatisasi membawa kata ke bentuk kamusnya: „berlari" → „lari", „lebih baik" → „baik", „books" → „book". Ini sangat penting untuk pencarian dan analisis teks — tanpa lemmatisasi, „kucing" dan „kucingku" dianggap sebagai token berbeda, yang menurunkan kualitas pipeline 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")"
}

Contoh keluaran: cats → Noun, were → Verb, quickly → Adverb. Dengan menggabungkan lemmatisasi dan bagian ucapan, Anda dapat membangun pencarian cerdas yang menemukan „kucing berlari" dengan kueri „lari kucing".

NLTagScheme.lemma bekerja untuk semua bahasa yang didukung NaturalLanguage, termasuk Indonesia. Ini menjadikan NLTagger alat universal untuk aplikasi multibahasa tanpa perlu memuat model terpisah untuk setiap bahasa.

Named Entity Recognition di NaturalLanguage

Named Entity Recognition (NER) — adalah tugas mengekstrak entitas bernama dari teks: nama orang, nama organisasi, tempat geografis, dan data pribadi. NaturalLanguage mendukung NER melalui NLTagScheme.nameType.

NLTagScheme.nameType membedakan tiga jenis entitas: PersonalName (nama orang), OrganizationName (organisasi, perusahaan) dan PlaceName (nama geografis). Ini memungkinkan ekstraksi otomatis data terstruktur dari berita, email, dan ulasan.

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

Hasil: Tim Cook → PersonalName, Apple → OrganizationName, Cupertino → PlaceName. NER dari NaturalLanguage tidak memerlukan pelatihan kustom dan berfungsi langsung untuk Inggris, Prancis, Jerman, Spanyol, dan bahasa lainnya.

Untuk bahasa Indonesia NER didukung, tetapi akurasinya sedikit lebih rendah — sekitar 70–75% dibandingkan 85% untuk Inggris. Jika akurasi tinggi diperlukan untuk Indonesia, Apple merekomendasikan melatih model Core ML kustom pada data Anda sendiri menggunakan Create ML.

Analisis sentimen dengan NLModel

NLModel — adalah kelas untuk bekerja dengan model NLP Core ML yang terlatih, termasuk model analisis sentimen bawaan yang telah dilatih sebelumnya oleh Apple. Model menentukan tonalitas teks: positif, negatif, atau netral.

Model bawaan analisis sentimen dilatih pada ulasan App Store dan berfungsi untuk Inggris, Prancis, Jerman, Italia, Spanyol, Portugis, China, dan Jepang. Untuk bahasa Indonesia, model tidak dilatih sebelumnya — diperlukan Create ML dan data berlabel Anda sendiri.

swift
import NaturalLanguage

let sentimentPredictor = try NLModel(mlModel: SentimentModel().model)
let sentiment = sentimentPredictor.predictedLabel(for: "Aplikasi ini luar biasa!")
print("Sentiment: \\(sentiment ?? "neutral")") // "positive"

NLModel juga mendukung model kustom yang dilatih melalui Create ML. Anda dapat melatih model klasifikasi teks pada data Anda sendiri (kategori produk, jenis permintaan dukungan, gaya bahasa) dan menggunakannya melalui antarmuka NLModel yang sama.

Menurut Apple Create ML documentation 2024, model teks kustom dilatih pada 500–5000 contoh untuk mencapai akurasi 80–95%. NaturalLanguage memuat model sekali dan menyimpannya dalam cache untuk panggilan berikutnya, meminimalkan latensi pada permintaan berulang.

Tugas NLPKelas NaturalLanguageDukungan Indonesia
TokenisasiNLTokenizerYa
Pengenalan bahasaNLLanguageRecognizerYa
LemmatisasiNLTagger + .lemmaYa
Bagian ucapanNLTagger + .lexicalClassYa
NERNLTagger + .nameTypeTerbatas
SentimenNLModel (pra-latih)Tidak

Pertanyaan yang Sering Diajukan

Apa perbedaan NaturalLanguage dengan Core ML untuk NLP?

NaturalLanguage menyediakan model NLP siap pakai tanpa perlu pelatihan: tokenisasi, pengenalan bahasa, NER. Core ML memerlukan pelatihan model pada data Anda sendiri dan memberikan lebih banyak fleksibilitas untuk tugas spesifik. NaturalLanguage lebih baik untuk tugas dasar „siap pakai", Core ML — untuk tugas yang sangat terspesialisasi.

Apakah NaturalLanguage bekerja offline?

Ya, NaturalLanguage sepenuhnya bekerja di perangkat tanpa koneksi internet. Semua model tertanam di iOS dan macOS, data tidak dikirim ke server. Ini adalah keunggulan utama dibandingkan layanan NLP cloud yang memerlukan jaringan dan menciptakan risiko privasi.

Bahasa apa saja yang didukung NaturalLanguage?

NaturalLanguage mendukung lebih dari 30 bahasa, termasuk Indonesia, Inggris, Spanyol, Prancis, Jerman, Italia, Portugis, China, Jepang, Korea, Arab, Turki, dan Ukraina. Akurasi tokenisasi dan lemmatisasi tinggi untuk semua bahasa yang didukung, NER dan sentimen — terutama untuk Inggris.

Bagaimana cara melatih model NLP sendiri untuk NaturalLanguage?

Gunakan Create ML — aplikasi Apple untuk melatih model pembelajaran mesin tanpa pemrograman. Muat dataset berlabel (CSV atau JSON), pilih tugas klasifikasi teks atau penandaan, latih model, dan ekspor ke format Core ML (.mlmodel). Kemudian muat model melalui NLModel(mlModel:) dalam kode.

Apakah NaturalLanguage bekerja di semua perangkat Apple?

NaturalLanguage tersedia di iOS 12+, macOS 10.14+, watchOS 5+ dan tvOS 12+. Pada perangkat dengan chip A12+ dan Neural Engine, kinerja lebih tinggi — pemrosesan teks dipercepat 3–5 kali berkat akselerasi perangkat keras pembelajaran mesin. Pada perangkat lama (A11 dan sebelumnya), framework berfungsi tetapi lebih lambat.

Kesimpulan

  • NaturalLanguage — framework NLP on-device Apple untuk tokenisasi, pengenalan bahasa, lemmatisasi, POS-tagging dan NER tanpa mengirim data ke cloud.
  • NLTokenizer membagi teks menjadi kata, kalimat, paragraf, dan dokumen dengan mempertimbangkan karakteristik 30+ bahasa, termasuk Jepang dan Arab.
  • NLLanguageRecognizer menentukan bahasa dominan teks dan mengembalikan hipotesis dengan probabilitas untuk skenario multibahasa.
  • NLTagger dengan .lexicalClass dan .lemma melakukan penandaan bagian ucapan dan lemmatisasi — membawa kata ke bentuk kamus untuk meningkatkan pencarian dan analisis.
  • Named Entity Recognition melalui NLTagScheme.nameType mengekstrak nama, organisasi, dan tempat dari teks dalam Inggris, Prancis, Jerman, dan bahasa lainnya.
  • NLModel menyediakan antarmuka untuk model Core ML pra-latih dan kustom, termasuk model analisis sentimen bawaan untuk ulasan dalam 7 bahasa.
  • Untuk bahasa Indonesia tersedia tokenisasi, pengenalan bahasa, lemmatisasi, dan POS-tagging; NER dan sentimen lebih baik diimplementasikan melalui model Core ML kustom.

Kami akan mengembangkan aplikasi seluler turnkey

IT Sectr membuat aplikasi iOS dan Android untuk startup dan bisnis sejak 2017. Kami akan memberi saran dan mengusulkan solusi terbaik.

Diskusikan proyek

Baca juga