我正在开发一个应用程序,该应用程序使用Firebase's MLKit
扫描书的封面图像并从书的封面图像中获取文本。从收到的文本中,我想获取书名和作者的名字。我已经尝试使用NSLinguisticTagger
,但没有得到预期的结果。 NSLinguisticTagger
从句子中找到个人名称,组织名称,地名等。下面是我用来从句子中识别书名和作者姓名的代码:
let updatedTextFromOCR = textFromOCR.replacingOccurrences(of: "\n", with: " ")
let schemes = NSLinguisticTagger.availableTagSchemes(forLanguage: "en")
let tagger = NSLinguisticTagger(tagSchemes: schemes, options: 0)
tagger.string = updatedTextFromOCR
let range = NSRange(location: 0, length: updatedTextFromOCR.utf16.count)
let options: NSLinguisticTagger.Options = [.omitPunctuation, .omitWhitespace, .joinNames]
let tags: [NSLinguisticTag] = [.personalName, .placeName, .organizationName]
tagger.enumerateTags(in: range, unit: .word, scheme: .nameType, options: options) { tag, tokenRange, stop in
if let tag = tag, tags.contains(tag) {
if let range = Range(tokenRange, in: updatedTextFromOCR) {
let name = updatedTextFromOCR[range]
print("\(name): \(tag)")
}
}
}
通过使用上面的代码,我无法获得显示书名和书名的输出。谁能在这方面帮助我,真是太好了。
我正在iOS中制作此应用程序。并使用iOS版Firebase MLkit。先感谢您。