如何将名称添加到 NSLinguisticTagger?

Posted

技术标签:

【中文标题】如何将名称添加到 NSLinguisticTagger?【英文标题】:How to add names to NSLinguisticTagger? 【发布时间】:2019-08-30 23:40:45 【问题描述】:

我目前正在与使用语音识别和检测语音名称的人合作。这很好用,但是我遇到了名称问题。我在威尔士,周围很多人都有威尔士名字(包括我)。我有所有威尔士名字的 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

【问题讨论】:

这不是新自然语言框架的重点吗?你可以用机器学习来教解析器。例如,请参阅本教程。 heartbeat.fritz.ai/… @matt 但我不是也必须给它一个非名称数据集吗?那么字典的其余部分是这样的吗? 【参考方案1】:

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

我的猜测是最好的方法是尽可能接近主导语言,然后按照其他人的讨论训练模型。

【讨论】:

以上是关于如何将名称添加到 NSLinguisticTagger?的主要内容,如果未能解决你的问题,请参考以下文章

如何将标题名称添加到第一列[重复]

Woocommerce如何将标题属性添加到迷你购物车上产品名称的锚标记

如何将名称添加到未命名的 JSON 对象数组?

如何将应用程序名称添加到 <appSettings/>?

如何使用php将2个变量输入添加到txt文件保存名称

jQuery - 如何将验证相同的输入名称添加到规则方法中? [复制]