自然语言处理中的预处理与特征工程
1. 常见预处理步骤
在自然语言处理(NLP)流程中,有一些常见的预处理操作。以设计一个能将新闻文章分类为政治、体育、商业和其他类别的软件为例,假设已有良好的句子分割器和单词分词器,接下来需要思考哪些信息对开发分类工具是有用的。
英语中一些常用词,如 “a”、“an”、“the”、“of”、“in” 等,对分类任务用处不大,因为它们本身不携带能区分这四个类别的内容,这些词被称为停用词。在这类问题场景中,通常(但不总是)会将停用词从进一步分析中移除。英语并没有标准的停用词列表,不过有一些流行的列表,像 NLTK 就有一个,而且停用词的定义会因具体任务而异。例如,“news” 这个词在新闻分类场景中可能是停用词,但在之前提到的录用信数据示例中可能就不是。
此外,在某些情况下,大小写对问题的解决影响不大,所以通常会将所有文本转换为小写(大写转换相对较少)。去除标点符号和/或数字也是许多 NLP 问题(如文本分类、信息检索和社交媒体分析)的常见步骤。
以下代码展示了如何去除停用词、数字和标点符号,并将给定文本集合转换为小写:
from nltk.corpus import stopwords
from string import punctuation
def preprocess_corpus(texts):
mystopwords = set(stopwords.words("english"))
def remove_stops_digits(tokens):
return [token.lower() fo
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



