Как добавить имена в NSLinguisticTagger?

В настоящее время я работаю с людьми, использующими распознавание речи и обнаружение имен в речи. Это хорошо работает, но у меня проблемы с именами. Я в Уэльсе, и у многих людей есть валлийские имена (включая меня). У меня есть 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 ответ

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

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

Другие вопросы по тегам