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