Как добавить имена в NSLinguisticTagger? - PullRequest
0 голосов
/ 09 апреля 2019

В настоящее время я работаю с людьми, использующими распознавание речи и определяющими имена в речи. Это хорошо работает, но у меня проблемы с именами. Я в Уэльсе, и у многих людей есть валлийские имена (включая меня). У меня есть CSV всех валлийских имен. Некоторые имена также выбираются как места (например, Osian) Есть ли способ расширить NSLinguisticTagger для включения валлийских имен? Или есть способ определения валлийского имени?

Вот мой текущий код:

let text = "Hey I'm Osian"

// 2
let tagger = NLTagger(tagSchemes: [.nameType])
tagger.string = text

let options: NLTagger.Options = [.omitPunctuation, .omitWhitespace, .joinNames]
let tags: [NLTag] = [.personalName, .organizationName, .placeName]

// 3
tagger.enumerateTags(in: text.startIndex..<text.endIndex, unit: .word, scheme: .nameType, options: options) { tag, tokenRange in
    if let tag = tag, tags.contains(tag) {
        print("\(text[tokenRange]): \(tag.rawValue)")
    }
    return true
}

1 Ответ

0 голосов
/ 29 апреля 2019

Обычно вам нужно установить доминирующий язык. Но похоже, что валлийский не поддерживается. Смотри: https://developer.apple.com/documentation/naturallanguage/nllanguage?language=objc

Полагаю, наилучший подход - максимально приблизить доминирующий язык, а затем обучить модели, как обсуждали другие.

...