我剛開始NSLinguisticTagger
玩弄在此基礎上博客我的代碼:NSLinguisticTagger @ NSHipster.com的Objective-C:NSLinguisticTagger「紐約」與「紐約」
NSLinguisticTaggerOptions options = NSLinguisticTaggerOmitWhitespace | NSLinguisticTaggerOmitPunctuation | NSLinguisticTaggerJoinNames;
NSLinguisticTagger *tagger = [[NSLinguisticTagger alloc] initWithTagSchemes: [NSLinguisticTagger availableTagSchemesForLanguage:@"en"] options:options];
tagger.string = question;
[tagger enumerateTagsInRange:NSMakeRange(0, [question length]) scheme:NSLinguisticTagSchemeNameTypeOrLexicalClass options:options usingBlock:^(NSString *tag, NSRange tokenRange, NSRange sentenceRange, BOOL *stop) {
NSString *token = [question substringWithRange:tokenRange];
NSLog(@"%@: %@", token, tag); }];
當我跑這跟question = @"Weekend in New York"
,"New York"
被標記爲PlaceName
這很棒。但是當我運行question = @"Weekend in new york"
時,"new"
被標記爲"Adjective"
而"york"
被標記爲PlaceName
。有沒有什麼辦法可以解決這個問題:"New York"
和"new york"
都被標記爲PlaceName
?
我完全不懂這個語言學的東西。
「紐約週末」和「紐約週末」實際上有兩個不同的含義(約克也是一座城市)。 Tagger在使用「紐約週末」時挑選他認爲合適的人。可能你最好的選擇是自己糾正拼寫,如果可能的話。 – Daniel 2013-02-18 16:09:19
這是不可能的,從語法的角度來看「紐約」和「紐約」是完全不同的 – tkanzakic 2013-02-18 16:09:53
有沒有辦法將自動更正追溯到字符串?例如,如果我在設備上鍵入「紐約週末」,一旦在「約克」之後點擊空格鍵,它將自動更正爲「紐約週末」。 – 2013-02-18 17:33:23