2015-09-26 43 views
0

我正在使用iOS Swift项目,需要OCR数据,然后搜索关键短语的文本。该OCR输出看起来是这样的:如何在iOS中使用Swift格式化字符串?

配料水,红糖,红熟

浓缩番茄,苹果CIDERVINEGAR

W01CESTERSHlWSMJCE(WATERW4EGAR玉米

糖浆,盐,磨拉石,香料,天然香料

大蒜粉,焦糖色,凤尾鱼

CFlSril,TAMARiN0),糖蜜,LEMONĴ UICE,

洋葱,蜂蜜,改性淀粉TAVIOCA,

当我搜索 “玉米糖浆” 的字符串,没有什么发现。搜索“玉米”和“糖浆”确实产生了积极的结果。

我也曾尝试

tesseract.recognizedText.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet())

无济于事。

有关如何格式化该文本以进行搜索以允许“玉米糖浆”被识别的任何想法?限定词是,只有确切的短语是有用的 - 毕竟有玉米,玉米淀粉,枫糖浆等作为潜在的成分。

谢谢。

确定这里是工作

的解决方案 'textView.text = tesseract.recognizedText.stringByReplacingOccurrencesOfString( “\ n”,withString: “” 选项:NSStringCompareOptions.LiteralSearch,范围:无)'

我认为最初的代码是完成相同的任务。

+0

为什么不用换行符替换空格?那么“玉米糖浆”就会起作用。 – matt

+0

你的问题的标题与这个问题有什么关系? – rmaddy

回答

2

如果要搜索“玉米糖浆”,你很可能需要取代所有新线与空间(并最好检查双重空间,并与单个空格替换)。

字符识别的质量不是很好,我认为文本在用于搜索之前应该得到更多的维护。例如,您可能会将短语分成单个字符串阵列,然后从开始和结尾修剪空格等,也许您可​​以使用UITextChecker来帮助识别拼写错误的术语并修复它们...

+0

谢谢。这是解决方案 –

0

这是因为“玉米糖浆“,这是你正在寻找的字符串,不同于”corn \ nsyrup“,这就是你的文本墙所展现的。

您可以改为尝试搜索“corn \ nsyrup”或“corn \ nsyrup”。

请注意您的图片“corn \ nsyrup”如何产生相同的结果,以至于您的文字墙显示出来?

此外,用“”替换“\ n”的代码可能不起作用,因为它可能是“corn \ n糖浆”,这将使它之间有2个空格。

Picture to Compare

相关问题