Objective c 目的语C中的智能句比较
我需要在目标C中进行智能句子比较 下面对细节进行解释 我有一根主弦。我把它命名为“OriginalString” 然后我有很多字符串,我需要与原始字符串进行比较Objective c 目的语C中的智能句比较,objective-c,xcode,ios4,nsstring,comparison,Objective C,Xcode,Ios4,Nsstring,Comparison,我需要在目标C中进行智能句子比较 下面对细节进行解释 我有一根主弦。我把它命名为“OriginalString” 然后我有很多字符串,我需要与原始字符串进行比较 NSString *CompareString1 = @"HOW DID EMILY DO " NSString *CompareSting = @"HOW DID YOUR FATHER" NSString *CompareString2 = @"WHAT
NSString *CompareString1 = @"HOW DID EMILY DO "
NSString *CompareSting = @"HOW DID YOUR FATHER"
NSString *CompareString2 = @"WHAT IS YOUR EMILY"
NSString *CompareString3 = @"THIS IS THE FAST DO ONE"
NSString *CompareString4 = @"THIS SEARCH EMILY EXAMPLE DO"
从这5个比较中,我需要得到相对于原始字符串(学生EMILY今天表现如何)最高的字符串“EMILY表现如何”
让我告诉你一件事
如果我在比较组中有一个额外的字符串“STUDENT DO TODAY”
现在我有了比较表
NSString *CompareString1 = @"HOW DID EMILY DO "
NSString *CompareSting = @"HOW DID YOUR FATHER"
NSString *CompareString2 = @"WHAT IS YOUR EMILY"
NSString *CompareString3 = @"THIS IS THE FAST DO ONE"
NSString *CompareString4 = @"THIS SEARCH EMILY EXAMPLE DO"
NSString *CompareString4 = @"HOW DID STUDENT DO TODAY"
从这6个比较中,我需要得到相对于原始字符串最高的字符串“学生今天做得怎么样”(学生EMILY今天做得怎么样)
我看过NSPredicate的“比较和喜欢”方法。然而,我没有找到任何方法来完成这个过程
任何有助于理解这一概念的人都将不胜感激
谢谢。自然语言解析是一个困难的话题,使用简单的字符串比较方法不太可能获得好的结果。我建议寻找一个更高级别的工具包。Lion和iOS 5对此提供了少量支持。自然语言解析是一个困难的主题,使用简单的字符串比较方法不太可能获得好的结果。我建议寻找一个更高级别的工具包。Lion和iOS 5对此提供了少量支持。听起来像是comp sci作业。这是草率和低效的地狱,但它会工作。我相信这里有人有更好的主意来提高性能 将要搜索的短语分解为单个单词的数组:
NSArray *myWords = [myString componentsSeparatedByString:@" "];
现在myWords是每个单词的数组(没有空格)。然后,构建一个谓词,查找每个单词:
int found = 0;
for (NSString* word in myWords) {
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF like[c] %@", word];
BOOL ok = [predicate evaluateWithObject:originalString];
if (ok) {
++found;
}
}
完成后,您将得到一个查找结果
,您可以对每个不同的短语进行比较。最伟大的一个匹配最多的词
在这种情况下,您将以如下方式结束计数:
学生艾米丽今天过得怎么样
- “艾米丽怎么样了”4
- “你父亲怎么样”2
- “你的爱米丽是什么”1
- “这是最快的方法”1
- “此搜索EMILY示例执行”2
- “学生今天表现如何”5
- 听起来像是电脑科学的家庭作业。这是草率和低效的地狱,但它会工作。我相信这里有人有更好的主意来提高性能
将要搜索的短语分解为单个单词的数组:
NSArray *myWords = [myString componentsSeparatedByString:@" "];
现在myWords是每个单词的数组(没有空格)。然后,构建一个谓词,查找每个单词:
int found = 0;
for (NSString* word in myWords) {
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF like[c] %@", word];
BOOL ok = [predicate evaluateWithObject:originalString];
if (ok) {
++found;
}
}
完成后,您将得到一个查找结果
,您可以对每个不同的短语进行比较。最伟大的一个匹配最多的词
在这种情况下,您将以如下方式结束计数:
学生艾米丽今天过得怎么样
- “艾米丽怎么样了”4
- “你父亲怎么样”2
- “你的爱米丽是什么”1
- “这是最快的方法”1
- “此搜索EMILY示例执行”2
- “学生今天表现如何”5