Каркасы, библиотеки или инструменты для естественной обработки текста в Mac OS X - PullRequest
2 голосов
/ 07 января 2012

Я ищу решение для извлечения дат из пользовательского ввода. Должно поддерживать:

  • другие языки, кроме английского
  • это должно быть написано на C / ObjC / C ++ / Python / Perl / Ruby
  • целевая платформа Mac OS X 10.6 +
  • он не должен требовать подключения к Интернету

Платные решения приветствуются, а также с открытым исходным кодом (не GPL).

1 Ответ

2 голосов
/ 07 января 2012

Apple включена NSDataDetector в 10.7.
Помимо URL-адресов, телефонных номеров и т. Д. Также поддерживается определение даты (NSTextCheckingTypeDate).(Похоже, что Mail.app широко использует эти детекторы)

В этом примере обнаруживаются все даты в «строке» и регистрируются совпадения (если есть) местоположения и длины:

NSError* error = NULL;
NSDataDetector* detector = [NSDataDetector dataDetectorWithTypes:NSTextCheckingTypeDate error:&error];
NSArray* matches = [detector matchesInString:string options:0 range:NSMakeRange(0, [string length])];
for (NSTextCheckingResult* match in matches) 
{
    NSRange matchRange = [match range];
    NSLog(@"Match at position:%lu with length:%lu", matchRange.location, matchRange.length);
}
...