Analyze natural language text to tag part of speech and lexical class, identify names, perform lemmatization, and determine the language and script.


class NSLinguisticTagger : NSObject


NSLinguisticTagger provides a uniform interface to a variety of natural language processing functionality with support for many different languages and scripts. You can use this class to segment natural language text into paragraphs, sentences, or words, and tag information about those segments, such as part of speech, lexical class, lemma, script, and language.

When you create a linguistic tagger, you specify what kind of information you're interested in by passing one or more NSLinguisticTagScheme values. Set the string property to the natural language text you want to analyze, and the linguistic tagger processes it according to the specified tag schemes. You can then enumerate over the tags in a specified range, using the methods described in Enumerating Linguistic Tags, to get the information requested for a given scheme and unit.

Thread Safety

A single instance of NSLinguisticTagger should not be used simultaneously from multiple threads.


First Steps

Tokenizing Natural Language Text

Enumerate the words in a string.

init(tagSchemes: [NSLinguisticTagScheme], options: Int)

Creates a linguistic tagger instance using the specified tag schemes and options.

var string: String?

The string being analyzed by the linguistic tagger.

Getting the Tag Schemes

class func availableTagSchemes(for: NSLinguisticTaggerUnit, language: String) -> [NSLinguisticTagScheme]

Returns the tag schemes available for a particular unit and language on the current device.

class func availableTagSchemes(forLanguage: String) -> [NSLinguisticTagScheme]

Returns the tag schemes available for a particular language on the current device.

var tagSchemes: [NSLinguisticTagScheme]

Returns the tag schemes configured for this linguistic tagger. For possible values, see NSLinguisticTagScheme.

Determining the Dominant Language and Orthography

class func dominantLanguage(for: String) -> String?

Returns the dominant language for the specified string.

var dominantLanguage: String?

Returns the dominant language of the string set for the linguistic tagger.

func orthography(at: Int, effectiveRange: NSRangePointer?) -> NSOrthography?

Returns the orthography at the index and also returns the effective range.

func setOrthography(NSOrthography?, range: NSRange)

Sets the orthography for the specified range.

Enumerating Linguistic Tags

Identifying Parts of Speech

Classify nouns, verbs, adjectives, and other parts of speech in a string.

Identifying People, Places, and Organizations

Use a linguistic tagger to perform named entity recognition on a string.

struct NSLinguisticTagger.Options

Constants for linguistic tagger enumeration specifying which tokens to omit and whether to join names.

Getting Linguistic Tags

func tag(at: Int, unit: NSLinguisticTaggerUnit, scheme: NSLinguisticTagScheme, tokenRange: NSRangePointer?) -> NSLinguisticTag?

Returns a tag for a single scheme, for a given linguistic unit, at the specified character position.

Determining the Range of a Unit Token

func tokenRange(at: Int, unit: NSLinguisticTaggerUnit) -> NSRange

Returns the range of the linguistic unit containing the specified character index.

func sentenceRange(for: NSRange) -> NSRange

Returns the range of a sentence containing the specified range.

Determining the Possible Tags

Notifying for Changes to the Analyzed String

func stringEdited(in: NSRange, changeInLength: Int)

Notifies the linguistic tagger that the string (if mutable) has changed as specified by the parameters.

Supporting Types

struct NSLinguisticTagScheme

Constants for the tag schemes specified when initializing a linguistic tagger.

enum NSLinguisticTaggerUnit

Constants representing linguistic units.

struct NSLinguisticTag

A token, lexical class, name, lemma, language, or script returned by a linguistic tagger for natural language text.


Inherits From

Conforms To