Swift中的自然文本处理

时间:2015-08-12 18:34:45

标签: ios swift text text-processing

我目前正在编写一个习惯跟踪iOS应用程序。因此,我喜欢添加自然文本处理,以创建习惯应该记录的间隔。

例子如下:

  • 每周三次去健身房
  • 每天读一本书30分钟
  • 每周一和周六出去散步

我做了一些研究,发现Apple有一些API可以进行文本处理。 不幸的是,我不太确定它是否提供了构建此解析器/处理器以及如何实现它所需的任何东西。我看了NSDataDetector但是在这个帮助下我只能解析日期和时间:

func process(string:String)  -> [NSDate] {
    var matches:[NSDate] = []
    do {
    let dataDetector = try NSDataDetector(types: NSTextCheckingType.Date.rawValue)
    dataDetector.enumerateMatchesInString(string, options: [], range: NSMakeRange(0, string.characters.count), usingBlock: { (result : NSTextCheckingResult?, flag : NSMatchingFlags, ump : UnsafeMutablePointer<ObjCBool>) -> Void in
            if let result = result {
                if let resultDate = result.date {
                    matches.append(resultDate)
                }
            }
        })
    } catch let error as NSError {
        print(error.description)
    }
    return matches
}

我希望得到一些关于如何扩展Apple API使用的建议,以便解析上述示例或其他解决方案以实现我的目标。

0 个答案:

没有答案