如何在NSLinguisticTagger中添加名称?

时间:2019-04-09 15:59:24

标签: ios 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 个答案:

答案 0 :(得分:0)

通常,您需要设置主导语言。但似乎不支持威尔士语。参见:https://developer.apple.com/documentation/naturallanguage/nllanguage?language=objc

我认为最好的方法是尽可能地设置主导语言,然后训练其他人讨论的模型。