首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何识别NSString中单词的词性?

如何识别NSString中单词的词性?
EN

Stack Overflow用户
提问于 2012-02-07 05:12:52
回答 1查看 3.3K关注 0票数 20

我目前正在开发的应用程序需要我在NSString中确定一个单词的词性。

那么,基本上有没有一个库/数据库/类可以在Objective C中访问,它允许人们检查单个单词(以NSString的形式)是名词、形容词、副词还是动词?

大致是这样的:

代码语言:javascript
复制
NSString *foo="cat";

if ([foo wordIsNoun]) {
    //do something
};

在一个相似但稍微不相关的注释中,是否可以检查包含相同词干但不同时态(ask,ask,asked等)的动词的两个NSString是否具有相同的词干?这也是非常有用的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-07 05:39:03

你可以用一个NSLinguisticTagger来做这件事!我以前从来没有用过一个,但我把这个放在了一起:

代码语言:javascript
复制
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];

当您运行此命令时,它会记录:

代码语言:javascript
复制
found: i (Pronoun)
found: have (Verb)
found: a (Determiner)
found: cat (Noun)

但是,请注意,NSLinguisticTagger仅在iOS 5+ (和Mac 10.7+)上可用。

票数 61
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9167340

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档