NLP / NaturalLanguage: Was es ist, das Textverarbeitungs-Framework in iOS

Autor: IT Sectr Veröffentlicht: 2026-07-19 Lesezeit: 8 Min.

NaturalLanguage ist ein Apple-Framework für die Verarbeitung natürlicher Sprache auf iOS- und macOS-Geräten, das Zugriff auf Tokenisierung, Spracherkennung, Part-of-Speech-Tagging, Lemmatisierung und Named Entity Recognition bietet. Laut Apple WWDC 2020 führt das Framework die gesamte Analyse auf dem Gerät durch, ohne Daten an einen Server zu senden, was die Privatsphäre der Benutzerdaten gewährleistet. NaturalLanguage unterstützt über 30 Sprachen und integriert sich mit Core ML für benutzerdefinierte NLP-Modelle.

Wichtige Erkenntnisse

  • NaturalLanguage ist ein On-Device-NLP-Framework von Apple, das ohne Datenübertragung in die Cloud funktioniert.
  • Unterstützt Tokenisierung, Spracherkennung, Lemmatisierung, POS-Tagging und NER.
  • Funktioniert mit über 30 Sprachen, darunter Russisch, Englisch, Chinesisch und Arabisch.
  • NLTokenizer teilt Text in Wörter, Sätze, Absätze und Dokumente auf.
  • NLLanguageRecognizer bestimmt die Sprache des Textes mit Wahrscheinlichkeit für jede Option.

Was ist NaturalLanguage in iOS?

NaturalLanguage (NL) ist ein Apple Machine-Learning-Framework für die Analyse natürlicher Sprache, Teil von Foundation und verfügbar auf iOS 12+, macOS 10.14+ und watchOS 5+. Das Framework bietet sofort einsatzbereite NLP-Funktionen ohne die Notwendigkeit, benutzerdefinierte Modelle zu trainieren.

Im Gegensatz zu Cloud-NLP-Diensten (Google Cloud NLP, Amazon Comprehend) führt NaturalLanguage die gesamte Analyse auf dem Gerät durch. Dies bedeutet keine Netzwerklatenz, Offline-Betrieb und vollständigen Datenschutz — der Text verlässt niemals das Gerät des Benutzers.

Laut Apple ML Research 2023 verarbeitet On-Device-NLP auf A12+-Chips Anfragen 3–5 mal schneller als vergleichbare Cloud-Lösungen, bei einer Genauigkeit von über 85% für grundlegende Aufgaben. Das Framework ist für die Neural Engine optimiert und kann auf modernen Geräten bis zu 100 Anfragen pro Sekunde verarbeiten.

NaturalLanguage wird in iOS-Anwendungen für die Analyse von Bewertungen, intelligente Suche, Autovervollständigung, Inhaltsmoderation und die Extraktion strukturierter Daten aus unstrukturiertem Text verwendet. Das Framework unterstützt über 30 Sprachen, darunter Russisch, Ukrainisch, Türkisch und Arabisch.

Text-Tokenisierung mit NLTokenizer

NLTokenizer ist eine Klasse zum Aufteilen von Text in sprachliche Einheiten: Wörter, Sätze, Absätze oder Dokumente. Die Tokenisierung ist der erste Schritt nahezu jeder NLP-Pipeline, und NaturalLanguage stellt sie sofort einsatzbereit zur Verfügung.

NLTokenizer berücksichtigt sprachspezifische Merkmale: Er verarbeitet die Tokenisierung für Japanisch (keine Leerzeichen zwischen Wörtern), Arabisch (rechts-nach-links-Schrift) und Chinesisch (logografische Schrift) korrekt. Für Englisch und Russisch arbeitet der Tokenisierer mit Leerzeichen und Satzzeichen, berücksichtigt aber Kontraktionen (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
}

Die Tokenisierung auf Satzebene ist nützlich, um große Texte vor der weiteren Analyse in logische Blöcke zu unterteilen. NLTokenizer bestimmt Satzgrenzen auch dann, wenn am Ende kein Punkt steht oder wenn Fragesätze vorhanden sind.

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 ist die Grundlage für alle anderen Funktionen von NaturalLanguage. Nach der Tokenisierung ist der Text bereit für Spracherkennung, Tagging und Lemmatisierung.

Spracherkennung mit NLLanguageRecognizer

NLLanguageRecognizer bestimmt die Sprache des Textes und gibt die wahrscheinlichste Option mit einem Konfidenzwert zurück. Das Framework unterstützt über 30 Sprachen und kann mit Texten beliebiger Länge arbeiten — von einem einzelnen Wort bis zu einem gesamten Dokument.

Der NLLanguageRecognizer-Algorithmus analysiert Zeichen-n-Gramme und vergleicht sie mit Sprachprofilen. Bei kurzen Texten (bis zu 50 Zeichen) sinkt die Genauigkeit, daher empfiehlt Apple, für eine zuverlässige Sprachidentifikation mindestens 100–200 Zeichen zu übermitteln.

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

Die languageHypotheses-Methode gibt ein Wörterbuch der Sprachen mit Wahrscheinlichkeiten in absteigender Reihenfolge zurück. Dies ist nützlich, wenn der Text eine Mischung aus Sprachen enthält oder wenn Sie dem Benutzer mehrere Optionen zur Auswahl anzeigen möchten, anstatt nur die dominante Sprache.

NaturalLanguage identifiziert Russisch mit 95% Genauigkeit für Texte ab 100 Zeichen. Bei kurzen Texten (1–2 Wörter) sinkt die Genauigkeit auf 60–70% — in solchen Fällen ist es besser, languageHypotheses zu verwenden und die Top-3-Optionen anzuzeigen.

POS-Tagging und Lemmatisierung

NLTagScheme bietet Tagging-Schemata für die linguistische Analyse: Wortarten (Substantiv, Verb, Adjektiv), Lemmata (Grundform eines Wortes), Entitätstypen (Person, Organisation, Ort) und andere Kategorien.

Lemmatisierung reduziert ein Wort auf seine Wörterbuchform: „lief“ → „laufen“, „besser“ → „gut“, „books“ → „book“. Dies ist für die Suche und Textanalyse von entscheidender Bedeutung — ohne Lemmatisierung werden „Katze“ und „Katzen“ als unterschiedliche Token behandelt, was die Qualität von NLP-Pipelines beeinträchtigt.

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

Beispielausgabe: cats → Substantiv, were → Verb, quickly → Adverb. Durch die Kombination von Lemmatisierung und Wortarten können Sie eine intelligente Suche erstellen, die „laufende Katzen“ aus einer Abfrage „laufen Katze“ findet.

NLTagScheme.lemma funktioniert für alle von NaturalLanguage unterstützten Sprachen, einschließlich Russisch. Dies macht NLTagger zu einem vielseitigen Werkzeug für mehrsprachige Anwendungen, ohne dass separate Modelle für jede Sprache geladen werden müssen.

Named Entity Recognition in NaturalLanguage

Named Entity Recognition (NER) ist die Aufgabe, benannte Entitäten aus Text zu extrahieren: Personennamen, Organisationsnamen, geografische Orte und persönliche Daten. NaturalLanguage unterstützt NER über NLTagScheme.nameType.

NLTagScheme.nameType unterscheidet drei Arten von Entitäten: PersonalName, OrganizationName und PlaceName. Dies ermöglicht die automatische Extraktion strukturierter Daten aus Nachrichten, E-Mails und Bewertungen.

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

Ergebnis: Tim Cook → PersonalName, Apple → OrganizationName, Cupertino → PlaceName. NaturalLanguage NER erfordert kein benutzerdefiniertes Training und funktioniert sofort für Englisch, Französisch, Deutsch, Spanisch und andere Sprachen.

Für Russisch wird NER unterstützt, aber die Genauigkeit ist etwas geringer — etwa 70–75% im Vergleich zu 85% für Englisch. Wenn eine hohe Genauigkeit für Russisch erforderlich ist, empfiehlt Apple, ein benutzerdefiniertes Core ML-Modell mit eigenen Daten unter Verwendung von Create ML zu trainieren.

Sentimentanalyse mit NLModel

NLModel ist eine Klasse für die Arbeit mit trainierten Core ML NLP-Modellen, einschließlich des integrierten, von Apple vortrainierten Sentimentanalyse-Modells. Das Modell bestimmt die Stimmung des Textes: positiv, negativ oder neutral.

Das integrierte Sentimentanalyse-Modell wird mit App Store-Bewertungen trainiert und funktioniert für Englisch, Französisch, Deutsch, Italienisch, Spanisch, Portugiesisch, Chinesisch und Japanisch. Für Russisch ist das Modell nicht vortrainiert — Sie benötigen Create ML und Ihre eigenen gekennzeichneten Daten.

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 unterstützt auch benutzerdefinierte Modelle, die über Create ML trainiert wurden. Sie können ein Textklassifikationsmodell mit Ihren eigenen Daten (Produktkategorien, Support-Ticket-Typen, Sprachstile) trainieren und über dieselbe NLModel-Schnittstelle verwenden.

Laut Apple Create ML Dokumentation 2024 wird ein benutzerdefiniertes Textmodell mit 500–5000 Beispielen trainiert, um eine Genauigkeit von 80–95% zu erreichen. NaturalLanguage lädt das Modell einmal und speichert es für nachfolgende Aufrufe zwischen, wodurch die Latenz bei wiederholten Anfragen minimiert wird.

NLP-AufgabeNaturalLanguage-KlasseRussisch-Unterstützung
TokenisierungNLTokenizerJa
SpracherkennungNLLanguageRecognizerJa
LemmatisierungNLTagger + .lemmaJa
WortartenNLTagger + .lexicalClassJa
NERNLTagger + .nameTypeEingeschränkt
SentimentNLModel (vortrainiert)Nein

Häufig gestellte Fragen

Wie unterscheidet sich NaturalLanguage von Core ML für NLP?

NaturalLanguage bietet sofort einsatzbereite NLP-Modelle ohne Trainingsaufwand: Tokenisierung, Spracherkennung, NER. Core ML erfordert das Training eines Modells mit eigenen Daten und bietet mehr Flexibilität für spezifische Aufgaben. NaturalLanguage ist besser für grundlegende Standardaufgaben, während Core ML für hochspezialisierte Aufgaben geeignet ist.

Funktioniert NaturalLanguage offline?

Ja, NaturalLanguage funktioniert vollständig auf dem Gerät ohne Internetverbindung. Alle Modelle sind in iOS und macOS integriert, und Daten werden nicht an einen Server gesendet. Dies ist ein entscheidender Vorteil gegenüber Cloud-NLP-Diensten, die Netzwerkzugriff erfordern und Datenschutzrisiken schaffen.

Welche Sprachen unterstützt NaturalLanguage?

NaturalLanguage unterstützt über 30 Sprachen, darunter Russisch, Englisch, Spanisch, Französisch, Deutsch, Italienisch, Portugiesisch, Chinesisch, Japanisch, Koreanisch, Arabisch, Türkisch und Ukrainisch. Die Tokenisierungs- und Lemmatisierungsgenauigkeit ist für alle unterstützten Sprachen hoch, während NER und Sentimentanalyse hauptsächlich für Englisch verfügbar sind.

Wie trainiere ich mein eigenes NLP-Modell für NaturalLanguage?

Verwenden Sie Create ML — die Apple-Anwendung zum Trainieren von Machine-Learning-Modellen ohne Programmierung. Laden Sie einen gekennzeichneten Datensatz (CSV oder JSON) hoch, wählen Sie eine Textklassifikations- oder Tagging-Aufgabe aus, trainieren Sie das Modell und exportieren Sie es in das Core ML-Format (.mlmodel). Laden Sie dann das Modell über NLModel(mlModel:) im Code.

Funktioniert NaturalLanguage auf allen Apple-Geräten?

NaturalLanguage ist auf iOS 12+, macOS 10.14+, watchOS 5+ und tvOS 12+ verfügbar. Auf Geräten mit A12+-Chip und Neural Engine ist die Leistung höher — die Textverarbeitung wird durch hardwarebeschleunigtes maschinelles Lernen um das 3- bis 5-Fache beschleunigt. Auf älteren Geräten (A11 und früher) funktioniert das Framework, ist aber langsamer.

Zusammenfassung

  • NaturalLanguage ist Apples On-Device-NLP-Framework für Tokenisierung, Spracherkennung, Lemmatisierung, POS-Tagging und NER ohne Datenübertragung in die Cloud.
  • NLTokenizer teilt Text unter Berücksichtigung der Besonderheiten von über 30 Sprachen, einschließlich Japanisch und Arabisch, in Wörter, Sätze, Absätze und Dokumente auf.
  • NLLanguageRecognizer bestimmt die dominante Sprache des Textes und gibt Hypothesen mit Wahrscheinlichkeiten für mehrsprachige Szenarien zurück.
  • NLTagger mit .lexicalClass und .lemma führt POS-Tagging und Lemmatisierung durch — Wörter werden auf ihre Wörterbuchform reduziert, um Suche und Analyse zu verbessern.
  • Named Entity Recognition über NLTagScheme.nameType extrahiert Namen, Organisationen und Orte aus Text in Englisch, Französisch, Deutsch und anderen Sprachen.
  • NLModel bietet eine Schnittstelle für vortrainierte und benutzerdefinierte Core ML-Modelle, einschließlich eines integrierten Sentimentanalyse-Modells für Bewertungen in 7 Sprachen.
  • Für Russisch sind Tokenisierung, Spracherkennung, Lemmatisierung und POS-Tagging verfügbar; NER und Sentimentanalyse werden besser über ein benutzerdefiniertes Core ML-Modell implementiert.

Wir entwickeln eine mobile Applikation schlüsselfertig

IT Sectr entwickelt seit 2017 iOS- und Android-Apps für Startups und Unternehmen. Wir beraten Sie und schlagen die beste Lösung vor.

Projekt besprechen

Lesen Sie auch