标签: nslinguistictagger

将Vision VNTextObservation转换为String

我正在浏览Apple的Vision API文档,我看到了几个与文本检测有关的类UIImages:

1) class VNDetectTextRectanglesRequest

2) class VNTextObservation

看起来他们可以检测到角色,但我没有看到对角色做任何事情的方法.一旦你检测到了角色,你会如何将它们变成可被解释的东西NSLinguisticTagger

这是一篇简短的概述Vision.

谢谢你的阅读.

ocr machine-learning ios nslinguistictagger apple-vision

54
推荐指数
4
解决办法
2万
查看次数

如何在iOS中检测文本(字符串)语言?

例如,给定以下字符串:

let textEN = "The quick brown fox jumps over the lazy dog"
let textES = "El zorro marrón rápido salta sobre el perro perezoso"
let textAR = "?????? ????? ?????? ???? ??? ????? ??????"
let textDE = "Der schnelle braune Fuchs springt über den faulen Hund"
Run Code Online (Sandbox Code Playgroud)

我想检测每个声明的字符串中使用的语言.

我们假设已实现函数的签名是:

func detectedLangauge<T: StringProtocol>(_ forString: T) -> String?
Run Code Online (Sandbox Code Playgroud)

如果没有检测到语言,则返回可选字符串.

因此,适当的结果将是:

let englishDetectedLangauge = detectedLangauge(textEN) // => English
let spanishDetectedLangauge = detectedLangauge(textES) // => Spanish
let arabicDetectedLangauge = detectedLangauge(textAR) // => …
Run Code Online (Sandbox Code Playgroud)

ios swift nslinguistictagger

10
推荐指数
1
解决办法
3297
查看次数

设备与模拟器语言方案

有谁知道为什么会这样?

在任何模拟器上都可以找到所有方案,代码如下:

NSArray<NSLinguisticTagScheme> *availSchemes = [NSLinguisticTagger availableTagSchemesForLanguage:@"en"];
for (NSLinguisticTagScheme scheme in availSchemes) {
    NSLog(@"Tag scheme %@", scheme);
}
Run Code Online (Sandbox Code Playgroud)

得出以下结论:

2018-02-13 09:12:54.066970-0500 MY_APP[79671:5737063] Tag scheme Language
2018-02-13 09:12:54.067160-0500 MY_APP[79671:5737063] Tag scheme Script
2018-02-13 09:12:54.067300-0500 MY_APP[79671:5737063] Tag scheme TokenType
2018-02-13 09:12:54.067425-0500 MY_APP[79671:5737063] Tag scheme LexicalClass
2018-02-13 09:12:54.067541-0500 MY_APP[79671:5737063] Tag scheme NameType
2018-02-13 09:12:54.067655-0500 MY_APP[79671:5737063] Tag scheme NameTypeOrLexicalClass
2018-02-13 09:12:54.067768-0500 MY_APP[79671:5737063] Tag scheme Lemma
Run Code Online (Sandbox Code Playgroud)

但是,在我的设备(iPhone 6s iOS 11.2)上,我收到以下内容..

2018-02-13 09:13:09.834879-0500 MY_APP[4327:313598] Tag scheme Language
2018-02-13 09:13:09.835256-0500 MY_APP[4327:313598] Tag scheme …
Run Code Online (Sandbox Code Playgroud)

locale objective-c ios ios-simulator nslinguistictagger

5
推荐指数
1
解决办法
328
查看次数

“NSLinguisticTag”类型的值没有成员“范围”

我有文本方向代码,它在 swift 3 中运行良好,但在迁移到 swift 4 后,我收到错误

let tagScheme = [NSLinguisticTagScheme.language]
    let tagger    = NSLinguisticTagger(tagSchemes: tagScheme, options: 0)
    tagger.string = self.text
    let lang      = tagger.tag(at: 0, scheme: NSLinguisticTagScheme.language,
                                      tokenRange: nil, sentenceRange: nil)

    if lang?.range(of: "he") != nil ||  lang?.range(of: "ar") != nil { //Value of type 'NSLinguisticTag' has no member 'range' 
        self.textAlignment = NSTextAlignment.right
    } else {
        self.textAlignment = NSTextAlignment.left
    }
Run Code Online (Sandbox Code Playgroud)

有人知道怎么修这个东西吗?谢谢

swift nslinguistictagger swift4

3
推荐指数
1
解决办法
496
查看次数