本节书摘来异步社区《NLTK基础教程——用NLTK和Python库构建机器学习应用》一书中的第2章,第2.2节,作者:Nitin Hardeniya,更多章节内容可以访问云栖社区“异步社区”公众号查看。
2.2 文本清理
一旦我们将各种数据源解析成了文本形式,接下来所要面临的挑战就是要使这些原生数据体现出它们的意义。文本清理就泛指针对文本所做的绝大部分清理、与相关数据源的依赖关系、性能的解析和外部噪声等。从这个意义上来说,这些工作和我们在第1章——自然语言处理简介中调用html_clean()对HTML文档进行清理的工作是一样的。当然还有其他情况,如果我们要解析PDF文件,可能就需要清理掉一些不必要的干扰字符,移除非ASCII 字符等。总之在继续下一步骤之前,我们需要做一些清理以获得一个可以被进一步处理的干净文本。而对于像XML这样的数据源,我们可能就只需要关注一些特定的树元素即可。对于数据库,我们则有各种可操作的分离器,而且有时我们也只需要关注一些特定的列。总而言之,对于所有致力于净化文本、清理掉文本周围所有可能干扰的工作,我们称之为文本清理。数据再加工(data munging)、文本清理与数据歧义这几个术语之间并没有清晰的界限,它们在类似的语境中可以相互交替使用。在接下来的几节中,我们将会具体讨论一些在任何NLP任务中都极为常见的预处理步骤。