gpt4 book ai didi

ios - iOS NSLinguisticTagger在获取词干时始终返回null

转载 作者:行者123 更新时间:2023-12-01 19:01:06 26 4
gpt4 key购买 nike

我需要将关键字(词法形式)与文本匹配,并返回关键字是否匹配(就像搜索引擎一样)

例如

text: I want some apples
keyword: apple
result: matched
keyword: banana
result: not matched

这是我的方法,我总是为标记获取null
- (BOOL)matchKeywordWithText:(NSString *)text keyword:(NSString *)keyword {

__block NSMutableArray *words = [NSMutableArray array];


NSLinguisticTaggerOptions options = NSLinguisticTaggerOmitWhitespace | NSLinguisticTaggerOmitPunctuation | NSLinguisticTaggerJoinNames;
NSLinguisticTagger *tagger = [[NSLinguisticTagger alloc] initWithTagSchemes: [NSLinguisticTagger availableTagSchemesForLanguage:@"en"] options:options];
tagger.string = text;
[tagger enumerateTagsInRange:NSMakeRange(0, [text length]) scheme:NSLinguisticTagSchemeLemma options:options usingBlock:^(NSString *tag, NSRange tokenRange, NSRange sentenceRange, BOOL *stop) {
NSString *token = [text substringWithRange:tokenRange];

//TODO: TAG IS ALWAYS NULL HERE
NSLog(@"words are %@: %@", token, tag);

if (tag.length > 0) {
[words addObject:tag];
}
}];

for (NSString *word in words) {
if ([word isEqualToString:keyword]) {
return YES;
}
}

return NO;

}

最佳答案

以下代码有效:

NSLinguisticTagger *tagger = [[NSLinguisticTagger alloc]
initWithTagSchemes:[NSArray arrayWithObjects:NSLinguisticTagSchemeNameTypeOrLexicalClass, NSLinguisticTagSchemeLemma, nil]
options:(NSLinguisticTaggerOmitWhitespace | NSLinguisticTaggerOmitPunctuation)];
NSString *text = @"i'm apples";
[tagger setString:text];
[tagger enumerateTagsInRange:NSMakeRange(0, [text length])
scheme:NSLinguisticTagSchemeNameTypeOrLexicalClass
options:(NSLinguisticTaggerOmitWhitespace | NSLinguisticTaggerOmitPunctuation)
usingBlock:^(NSString *tag, NSRange tokenRange, NSRange sentenceRange, BOOL *stop) {
NSString *token = [text substringWithRange:tokenRange];

NSString *lemma = [tagger tagAtIndex:tokenRange.location scheme:NSLinguisticTagSchemeLemma tokenRange:NULL sentenceRange:NULL];
if (lemma == nil) {
lemma = token;
}

NSLog(@"%@, %@", token, lemma);
}];

关于ios - iOS NSLinguisticTagger在获取词干时始终返回null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22861257/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com