【发布时间】:2018-04-09 00:21:12
【问题描述】:
我从一个 PDF 文件中提取了文本,其中一些文本在单词之间有多余的空格。
您的水和废水量
我写了一个函数来删除上面文本中多余的空格。
function removeExtraWhitespace($val) {
$nval = "";
for($i = 0; $i < strlen($val); $i++) {
if($val[$i] != " ") {
$nval .= $val[$i];
}
else if((isset($val[$i-2]) && $val[$i-2] != " ") || (isset($val[$i+2]) && $val[$i+2] != " ")) {
$nval .= $val[$i];
}
}
return $nval;
}
将输出:
您的水和废水声明
我知道这个功能不会在所有情况下都有效。如果文本有一个有效的 1 字母单词,例如 'a',那么它将失败,或者如果只有部分单词有多余的空格。
我需要删除字符串中的空格
将上述文本放入我的函数时,它将输出:
需要从字符串中删除空格
有没有一种方法可以使函数适用于所有可能的文本?
【问题讨论】:
-
在这个字符串中没有唯一标识来删除空格。如果第一个字母是每个单词的大写,那么它是可能的
-
我会考虑将文本段落(如逐句)传递给自动更正 API 服务。也许有谷歌助手 API 之类的。像这样。
-
也许还需要付出更多的努力:我想,关于您的文本示例,PDF 看起来还不错?那么也许您的解析库或您使用的任何东西都不够好或必须以其他方式使用?
-
@iquellis 我尝试了几种从 PDF 中提取文本的方法。示例文本来自使用 ebook-convert,到目前为止,它为我解析产生了最好的结果。
-
@Gary:很好,只是想确定一下,您尝试了不止一种方法...