Class

NSLinguisticTagger

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

Overview

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.

Topics

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)

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

class func availableTagSchemes(forLanguage: String)

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)

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?)

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

Getting Linguistic Tags

Determining the Range of a Unit Token

func tokenRange(at: Int, unit: NSLinguisticTaggerUnit)

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

func sentenceRange(for: NSRange)

Returns the range of a sentence containing the specified range.

Determining the Possible Tags

func possibleTags(at: Int, scheme: String, tokenRange: NSRangePointer?, sentenceRange: NSRangePointer?, scores: AutoreleasingUnsafeMutablePointer<NSArray?>?)

Returns an array of possible tags for the given scheme at the specified range, supplying matching scores.

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.

Relationships

Inherits From

Conforms To