我目前正在开发的应用程序需要我在NSString
中确定一个单词的词性。
那么,基本上有没有一个库/数据库/类可以在Objective C中访问,它允许人们检查单个单词(以NSString
的形式)是名词、形容词、副词还是动词?
大致是这样的:
NSString *foo="cat";
if ([foo wordIsNoun]) {
//do something
};
在一个相似但稍微不相关的注释中,是否可以检查包含相同词干但不同时态(ask,ask,asked等)的动词的两个NSString
是否具有相同的词干?这也是非常有用的。
发布于 2012-02-07 05:39:03
你可以用一个NSLinguisticTagger
来做这件事!我以前从来没有用过一个,但我把这个放在了一起:
NSString *str = @"i have a cat";
NSLinguisticTagger *tagger = [[NSLinguisticTagger alloc] initWithTagSchemes:[NSArray arrayWithObject:NSLinguisticTagSchemeLexicalClass] options:~NSLinguisticTaggerOmitWords];
[tagger setString:str];
[tagger enumerateTagsInRange:NSMakeRange(0, [str length])
scheme:NSLinguisticTagSchemeLexicalClass
options:~NSLinguisticTaggerOmitWords
usingBlock:^(NSString *tag, NSRange tokenRange, NSRange sentenceRange, BOOL *stop) {
NSLog(@"found: %@ (%@)", [str substringWithRange:tokenRange], tag);
}];
[tagger release];
当您运行此命令时,它会记录:
found: i (Pronoun)
found: have (Verb)
found: a (Determiner)
found: cat (Noun)
但是,请注意,NSLinguisticTagger
仅在iOS 5+ (和Mac 10.7+)上可用。
https://stackoverflow.com/questions/9167340
复制相似问题