Ich habe NSLinguisticTagger
mit Sätzen verwendet und habe ein seltsames Problem mit Sätzen wie "Ich bin hungrig" oder "Ich bin betrunken" konfrontiert. Während man erwarten würde, dass "ich" als Pronomen, "am" als Verb und "hungrig" als Adjektiv gekennzeichnet werden, sind sie es nicht. Sie sind alle als OtherWord
markiert.Linguistische Tagger fälschlicherweise als "OtherWord" gekennzeichnet
Gibt es etwas, das ich falsch mache?
NSString *input = @"I am hungry";
NSLinguisticTaggerOptions options = NSLinguisticTaggerOmitWhitespace;
NSLinguisticTagger *tagger = [[NSLinguisticTagger alloc] initWithTagSchemes:[NSLinguisticTagger availableTagSchemesForLanguage:@"en"] options:options];
tagger.string = input;
[tagger enumerateTagsInRange:NSMakeRange(0, input.length) scheme:NSLinguisticTagSchemeNameTypeOrLexicalClass options:options usingBlock:^(NSString *tag, NSRange tokenRange, NSRange sentenceRange, BOOL *stop) {
NSString *token = [input substringWithRange:tokenRange];
NSString *lemma = [tagger tagAtIndex:tokenRange.location
scheme:NSLinguisticTagSchemeLemma
tokenRange: NULL
sentenceRange:NULL];
NSLog(@"%@ (%@) : %@\n", token, lemma, tag);
}];
Und der Ausgang ist:
I ((null)) : OtherWord
am ((null)) : OtherWord
hungry ((null)) : OtherWord
Sehr seltsam, ich spiele mit dem Satz - Einfügen eines 'sehr' Ergebnisse in einem gültigen Satz, einfügen ein' nicht' nicht, Einfügen 'nicht sehr' noch wird ... yeiks ... Und ich habe es versucht für Deutsch: einige zwei Wörter Sätze arbeiten nicht, Wörter scheinen jedoch zu arbeiten. (manchmal nicht so perfekt wie erwartet). Aber es ist definitiv ein seltsames Problem. – luk2302
Und 'wir sind hungrig' arbeitet,' er ist hungrig' arbeitet, nur 'ich bin hungrig' nicht:/mit dem Adjektiv' durstig' arbeitet für alle drei – luk2302
@ luk2302 Ja, das gleiche zu sehen. Scheint, dass das Einfügen eines Adjektivs/Adverbs dazu führt, dass es korrekt markiert wird, und jedes andere Pronomen scheint auch in Ordnung zu sein. – Joshua