NSLinguisticTagger を使用して文中の動詞を分離しようとしていますが、コードが iOS プログラムと MacOS プログラムのどちらで実行されるかによって出力が異なるという問題に遭遇しました。
私のコードは次のとおりです。
NSString* text = @"The person is a 50 year old gentleman with a book who presents us with a conundrum.";
NSLinguisticTaggerOptions options = NSLinguisticTaggerOmitWhitespace | NSLinguisticTaggerOmitPunctuation | NSLinguisticTaggerJoinNames;
NSLinguisticTagger* tagger = [[NSLinguisticTagger alloc] initWithTagSchemes:@[NSLinguisticTagSchemeNameTypeOrLexicalClass]
options:options];
tagger.string = text;
[tagger enumerateTagsInRange:NSMakeRange(0, [tagger.string length])
scheme:NSLinguisticTagSchemeNameTypeOrLexicalClass
options:options
usingBlock:^(NSString *tag, NSRange tokenRange, NSRange sentenceRange, BOOL *stop) {
NSString *token = [text substringWithRange:tokenRange];
NSLog(@"%@: %@", token, tag);
}];
このコード スニペットをOSXプログラムで実行すると、次の出力が正しく得られます ( 「presents」は動詞として正しく識別されます)。
[ AppDelegate (0x101b0bcb0)]: The: Determiner
[ AppDelegate (0x101b0bcb0)]: person: Noun
[ AppDelegate (0x101b0bcb0)]: is: Verb
[ AppDelegate (0x101b0bcb0)]: a: Determiner
[ AppDelegate (0x101b0bcb0)]: 50: Number
[ AppDelegate (0x101b0bcb0)]: year: Noun
[ AppDelegate (0x101b0bcb0)]: old: Adjective
[ AppDelegate (0x101b0bcb0)]: gentleman: Noun
[ AppDelegate (0x101b0bcb0)]: with: Preposition
[ AppDelegate (0x101b0bcb0)]: a: Determiner
[ AppDelegate (0x101b0bcb0)]: book: Noun
[ AppDelegate (0x101b0bcb0)]: who: Pronoun
[ AppDelegate (0x101b0bcb0)]: presents: Verb
[ AppDelegate (0x101b0bcb0)]: us: Pronoun
[ AppDelegate (0x101b0bcb0)]: with: Preposition
[ AppDelegate (0x101b0bcb0)]: a: Determiner
[ AppDelegate (0x101b0bcb0)]: conundrum: Noun
ただし、iOSプログラムでまったく同じコード ブロックを実行すると、次の出力が得られます ( 「presents」は名詞として誤って識別されます)。
[ AppDelegate (0x8d2f000)]: The: Determiner
[ AppDelegate (0x8d2f000)]: person: Noun
[ AppDelegate (0x8d2f000)]: is: Verb
[ AppDelegate (0x8d2f000)]: a: Determiner
[ AppDelegate (0x8d2f000)]: 50: Number
[ AppDelegate (0x8d2f000)]: year: Noun
[ AppDelegate (0x8d2f000)]: old: Adjective
[ AppDelegate (0x8d2f000)]: gentleman: Noun
[ AppDelegate (0x8d2f000)]: with: Preposition
[ AppDelegate (0x8d2f000)]: a: Determiner
[ AppDelegate (0x8d2f000)]: book: Noun
[ AppDelegate (0x8d2f000)]: who: Pronoun
[ AppDelegate (0x8d2f000)]: presents: Noun
[ AppDelegate (0x8d2f000)]: us: Pronoun
[ AppDelegate (0x8d2f000)]: with: Preposition
[ AppDelegate (0x8d2f000)]: a: Determiner
[ AppDelegate (0x8d2f000)]: conundrum: Noun
さまざまな出力が得られる理由と、iOSプログラムがプレゼントを動詞として正しく識別する方法を知っている人はいますか?