文本数据的特征提取都有哪些方法?

您所在的位置:网站首页 王者模型提取软件有哪些 文本数据的特征提取都有哪些方法?

文本数据的特征提取都有哪些方法?

2024-07-05 13:06| 来源: 网络整理| 查看: 265

导读

介绍了一些传统但是被验证是非常有用的,现在都还在用的策略,用来对非结构化的文本数据提取特征。

介绍

在本文中,我们将研究如何处理文本数据,这无疑是最丰富的非结构化数据来源之一。文本数据通常由文档组成,文档可以表示单词、句子甚至是文本的段落。文本数据固有的非结构化(没有格式整齐的数据列)和嘈杂的特性使得机器学习方法更难直接处理原始文本数据。因此,在本文中,我们将采用动手实践的方法,探索从文本数据中提取有意义的特征的一些最流行和有效的策略。这些特征可以很容易地用于构建机器学习或深度学习模型。

动机

特征工程通常被称为创建性能更好的机器学习模型的秘密武器。只要有一个出色的特征就可能是你赢得Kaggle挑战的门票!特征工程的重要性对于非结构化的文本数据更为重要,因为我们需要将自由流动的文本转换成一些数字表示形式,然后机器学习算法就可以理解这些数字表示形式。即使出现了自动化的特征工程,在将不同的特征工程策略应用为黑盒模型之前,你仍然需要理解它们背后的核心概念。永远记住,“如果给你一盒工具来修理房子,你应该知道什么时候使用电钻,什么时候使用锤子!”

理解文本数据

我相信你们所有人都对这个场景中包含的文本数据有一个合理的概念。请记住,文本数据总是可以以结构化数据属性的形式存在,但通常这属于结构化分类数据的范畴。

640?wx_fmt=png

在这个场景中,我们讨论的是单词、短语、句子和整个文档形式的自由流动文本。本质上,我们有一些句法结构,比如单词组成短语,短语组成句子,句子又组成段落。然而,文本文档没有固有的结构,因为可以有各种各样的单词,这些单词在不同的文档中会有所不同,而且与结构化数据集中固定数量的数据维度相比,每个句子的长度也是可变的。

特征工程策略

让我们看看一些流行的和有效的策略来处理文本数据,并从中提取有意义的特征,这些特征可以用于下游的机器学习系统。请注意,你可以在https://github.com/dipanjanS/practical-machine-learning-with-python中访问本文中使用的所有代码,以供将来参考。我们将从加载一些基本的依赖项和设置开始。

 import pandas as pd import numpy as np import re import nltk import matplotlib.pyplot as plt pd.options.display.max_colwidth = 200 %matplotlib inline

现在,让我们以一个示例文档语料库为例,我们将在该语料库上运行本文中的大部分分析。corpus是具有一个或多个主题的文本文档集合。

 corpus = ['The sky is blue and beautiful.',           'Love this blue and beautiful sky!',           'The quick brown fox jumps over the lazy dog.',           "A king's breakfast has sausages, ham, bacon, eggs, toast and beans",           'I love green eggs, ham, sausages and bacon!',           'The brown fox is quick and the blue dog is lazy!',           'The sky is very blue and the sky is very beautiful today',           'The dog is lazy but the brown fox is quick!'     ] labels = ['weather', 'weather', 'animals', 'food', 'food', 'animals', 'weather', 'animals']  corpus = np.array(corpus) corpus_df = pd.DataFrame({'Document': corpus,                           'Category': labels}) corpus_df = corpus_df[['Document', 'Category']]

640?wx_fmt=png

可以看到,我们已经为我们的toy语料库获取了一些属于不同类别的文本文档示例。像往常一样,在讨论特征工程之前,我们需要进行一些数据预处理或整理,以删除不必要的字符、符号和tokens。

文本预处理

可以有多种方法来清理和预处理文本数据。在接下来的几点中,我们将重点介绍在自然语言处理(NLP)中大量使用的一些最重要的方法。

删除标签:我们的文本经常包含不必要的内容,如HTML标签,分析文本的时候这不会增加多少价值。BeautifulSoup库可以帮我们做很多必须的工作。

删除重音字符:在任何文本语料库中,特别是在处理英语时,通常可能要处理重音字符/字母。因此,我们需要确保将这些字符转换并标准化为ASCII字符。一个简单的例子是将é转换为e。

扩展缩略语:在英语中,缩略语基本上是单词或音节的缩写形式。这些现有单词或短语的缩略形式是通过删除特定的字母和声音来创建的。例如,do not变为don 't以及I would 变为I 'd 。将每个缩略语转换为其扩展的原始形式通常有助于文本标准化。

删除特殊字符:非字母数字字符的特殊字符和符号通常会增加非结构化文本中的额外噪音。通常,可以使用简单正则表达式(regexes)来实现这一点。

词根提取和词形还原:词干通常是可能的单词的基本形式,可以通过在词干上附加词缀,如前缀和后缀来创建新单词。这就是所谓的拐点。获取单词基本形式的反向过程称为“词根提取”。一个简单的例子是单词WATCHES, WATCHING,和WATCHED。它们以词根WATCH作为基本形式。词形还原与词根提取非常相似,在词根提取中,我们去掉词缀以得到单词的基本形式。然而,在这种情况下,基本形式被称为根词,而不是词根。不同之处在于,词根总是一个词典上正确的单词(存在于字典中),但根词的词干可能不是这样。

删除停止词:在从文本中构造有意义的特征时,意义不大或者没有意义的词被称为停止词或停止词。如果你在语料库中做一个简单的词或词的频率,这些词的频率通常是最高的。像a、an、the、and等词被认为是停止词。没有一个通用的停止词列表,但是我们使用了一个来自“nltk”的标准英语停止词列表。你还可以根据需要添加自己的域特定的停止词。

640?wx_fmt=png

除此之外,你还可以执行其他标准操作,如标记化、删除额外的空格、文本小写转换和更高级的操作,如拼写纠正、语法错误纠正、删除重复字符等等。

由于本文的重点是特征工程,所以我们将构建一个简单的文本预处理程序,该程序的重点是删除特殊字符、额外的空格、数字、停止词和把文本语料库的大写变成小写。

 wpt = nltk.WordPunctTokenizer() stop_words = nltk.corpus.stopwords.words('english')  def normalize_document(doc):     # lower case and remove special characters\whitespaces     doc = re.sub(r'[^a-zA-Z\s]', '', doc, re.I|re.A)     doc = doc.lower()     doc = doc.strip()     # tokenize document     tokens = wpt.tokenize(doc)     # filter stopwords out of document     filtered_tokens = [token for token in tokens if token not in stop_words]     # re-create document from filtered tokens     doc = ' '.join(filtered_tokens)     return doc

一旦我们准备好了基本的预处理pipeline,我们可以将其应用于示例语料库。

 norm_corpus = normalize_corpus(corpus) norm_corpus Output ------ array(['sky blue beautiful', 'love blue beautiful sky',        'quick brown fox jumps lazy dog',        'kings breakfast sausages ham bacon eggs toast beans',        'love green eggs ham sausages bacon',        'brown fox quick blue dog lazy',        'sky blue sky beautiful today',        'dog lazy brown fox quick'],       dtype='


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3