gpt4 book ai didi

ios - objective-C :NSLinguisticTagger "new york"与 "New York"

转载 作者:IT王子 更新时间:2023-10-29 08:12:14 25 4
gpt4 key购买 nike

我刚开始使用 NSLinguisticTagger,我的代码基于这个博客:NSLinguisticTagger @ NSHipster.com

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

当我使用 question = @"Weekend in New York" 运行它时,"New York" 被标记为 PlaceName,这很棒.但是当我使用 question = @"Weekend in new york" 运行它时,"new" 被标记为 "Adjective" “york” 被标记为 PlaceName。有没有办法解决这个问题,让 "New York""new york" 都被标记为 PlaceName

我对语言学这个东西完全陌生。

最佳答案

让这个话题更进一步。 名字和姓氏的正确大写是 NSLinguisticTagger 识别名字的要求

经过几个小时的挫折,我决定创建各种包含大写、小写和大写单词的测试。

NSLinguisticTagger 在几乎所有的测试中都有不同的结果

当 NSLinguisticTagger 解析大写字母的字符串时,几乎所有名词都被标记为 personalName。什么鬼?

这很令人沮丧。

我想分享的教训是,NSLinguistic tagger 可以猜测它给单词加的标签,但最终它只是对单词的语法评估。评估取决于适当的语言结构,例如单词放置以及单词是否大写。

我仍然觉得它是一个有用的类(class),但这篇文章的寓意是“适当”

在解析文本时,有时我们的程序员倾向于使用大写和小写来简化我们的工作。我们仍然可以这样做,但请记住单词大小写确实会改变 NSLinguisticTagger 结果

关于ios - objective-C :NSLinguisticTagger "new york"与 "New York",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14938867/

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