摘要:自然语言处理NLP(Natural Language Processing),顾名思义,就是使用计算机对语言文字进行处理的相关技术。在对文本做分析时,我们一大半的时间都会花在文本预处理上,而中文和英文的预处理流程稍有不同。本文就对中、英文的常用的文本预处技术做一个总结。
文章内容主要按下图流程讲解:
1.中英文文本预处理的特点
中英文的文本预处理大体流程如上图,但是还是有一些区别。首先,中文文本没有像英文用空格来分开不同单词的,因此不能直接像英文一样用简单的空格或标点符号来完成分词。所以我们一般需要用分词算法来完成分词,具体操作在后面会讲到。
当然,英文文本的预处理也有自己特殊的地方比如拼写问题。很多时候,对英文预处理要包括拼写检查,比如“Helo World”这样的错误,我们不能在分析的时候再去纠错。还有就是词干提取(stemming)和词形还原(lemmatization),主要是因为英文中一个词会有不同的表达形式,这个步骤有点像孙悟空的火眼金睛,直接得到单词的原始形态。比如,"faster"、"fastest", 都变为"fast";“leafs”、“leaves”,都变为"leaf"。
2. 收集数据
文本数据的获取一般有两种方法:
别人已经做好的数据集,或第三方语料库如wiki,这样可以省去很多处理成本。
自己从网上爬取的数据。很多时候我们所面对的是某种特定的领域的应用,这些开放语料库经常无法满足我们的需求。我们就需要用爬虫技术去爬取想要的信息了。可以使用如beautifulsoup、scrapy等框架编写出自己需要的爬虫。
定义数据搜集策略来搜集数据。可以通过制定数据搜集策略,从业务的角度来搜集所需要的数据。
第三方的合作。通过购买的方式也可以满足部分数据的需求