您现在的位置: 首页 > 网站导航收录 > 百科知识百科知识
python提取文本中的一类词给个思路是什么?
文本,单词,标记python提取文本中的一类词给个思路是什么?
发布时间:2019-02-08加入收藏来源:互联网点击:
回答于 2019-09-11 08:43:50
这是python spaCy文本分类的使用教程,里面还有机器学习模型scikit-learn,你可以参考一下,有助于你解决问题
文本是极其丰富的信息源。人们每分钟都会发送数亿封新电子邮件和短信。确实有大量的文本数据等待挖掘见解。但是,想要从所有文本数据中收集含义的数据科学家面临着一个挑战:由于它以非结构化形式存在,因此难以分析和处理。
在大数据分析Python中spaCy文本分类使用教程中,我们将研究如何使用有用的Python包spaCy(文档)将所有这些非结构化文本数据转换为对分析和自然语言处理更有用的内容。
完成此操作后,我们将能够从文本数据中得出有意义的模式和主题。这在多种数据科学应用程序中很有用:垃圾邮件过滤,支持通知单,社交媒体分析,上下文广告,查看客户反馈等。
具体来说,我们将对自然语言处理(NLP)进行更高层次的研究。然后,我们将完成一些重要的基本操作,以使用清理和分析文本数据spaCy。然后,我们将使用一些实际数据(亚马逊的Alexa智能家居扬声器的文本评论)深入研究文本分类,特别是Logistic回归分类。
什么是自然语言处理?
自然语言处理(NLP)是机器学习的一个分支,致力于处理,分析和有时生成人类语音(“自然语言”)。
毫无疑问,在确定文本字符串的含义方面,人类仍然比机器好得多。但是在数据科学中,我们经常会遇到太大的数据集,以至于人们无法在合理的时间内对其进行分析。我们还可能遇到没有人可以分析和响应一段文本输入的情况。在这种情况下,我们可以使用自然语言处理技术来帮助机器对文本的含义有所了解(并在必要时做出相应的响应)。
例如,自然语言处理在情感分析中被广泛使用,因为分析人员经常试图从大量文本数据中确定整体情感,这对于人类进行梳理是很费时的。它也用于广告匹配中-确定文本主体并自动分配相关广告。它用于聊天机器人,语音助手和其他需要机器理解并快速响应自然人类语言形式的输入的应用程序。
分析和处理文本 spaCy
spaCy是Python的开源自然语言处理库。它是专门为生产用途而设计的,它可以帮助我们构建可有效处理大量文本的应用程序。首先,让我们看一下spaCy可以处理的一些基本分析任务。
正在安装 spaCy
spaCy在继续进行操作之前,我们需要先安装它及其英语模型。我们可以使用以下命令行命令执行此操作:
pip install spacy
python -m spacy download en
我们也可以spaCy在Juypter Notebook中使用。不过,它不是Jupyter默认包含的预安装库之一,因此我们需要从笔记本计算机运行这些命令以将其spaCy安装在正确的Anaconda目录中。请注意,我们!在每个命令前面都使用来让Jupyter笔记本知道应将其作为命令行命令读取。
!pip install spacy
!python -m spacy download en
标记文本
标记化是将文本分成多个部分的过程,称为标记,并忽略标点符号(,。'')和空格之类的字符。spaCy的令牌生成器以Unicode文本形式接受输入,并输出一系列令牌对象。
让我们看一个简单的例子。假设我们有以下文本,并且我们希望对其进行标记化:
我们可以采用几种不同的方法来解决这个问题。第一种称为单词标记化,即将文本分解成单个单词。对于许多语言处理应用程序而言,这是至关重要的一步,因为它们通常需要以单个单词而不是更长的字符串形式输入。
在下面的代码中,我们将导入spaCy及其英语模型,并告诉我们将使用该模型进行自然语言处理。然后,我们将文本字符串分配给text。使用nlp(text),我们将处理该文本spaCy并将结果分配给名为的变量my_doc。
至此,我们的文本已经被标记化了,但是spaCy将标记化的文本存储为文档,我们希望以列表形式查看它,因此我们将创建一个for循环遍历文档的循环,并为其添加每个单词标记在文本字符串中找到一个名为的列表,token_list以便我们可以更好地了解单词的标记方式。
如我们所见,spaCy生成一个包含每个标记作为单独项目的列表。请注意,它已经认识到诸如之类的收缩实际上不应代表两个不同的词,因此已将它们分解为两个不同的标记。
首先,我们需要加载语言词典,在上面的示例中,我们使用English()类加载英语词典并创建nlp nlp对象。“ nlp”对象用于创建具有语言注释和各种nlp属性的文档。创建文档后,我们将创建令牌列表。
如果需要,我们还可以将文本分为句子而不是单词。这称为句子标记化。在执行句子标记化时,标记化程序会查找介于句子之间的特定字符,例如句点,惊叹号和换行符。对于句子标记化,我们将使用预处理管道,因为使用的句子预处理spaCy包括标记器,标记器,解析器和实体识别器,我们需要访问它们才能正确识别什么是句子,什么不是。
在下面的代码中,spaCy标记文本并创建一个Doc对象。这个Doc对象使用我们预处理管道的组件标记器,解析器和实体识别器将文本分解为组件。从该管道中,我们可以提取任何组件,但是在这里,我们将使用该sentencizer组件访问句子标记。
同样,spaCy已将文本正确解析为所需的格式,这一次输出了在源文本中找到的句子列表。
清理文本数据:删除停用词
我们使用的大多数文本数据将包含许多实际上对我们没有用的单词。这些称为停用词的词在人类语音中很有用,但对数据分析没有多大帮助。删除停用词可以帮助我们消除文本数据中的杂音和干扰,还可以加快分析时间(因为要处理的词更少)。
让我们看看spaCy默认情况下包含的停用词。我们将spaCy其英语模型中的停用词导入并分配给名为的变量,spacy_stopwords以便我们进行查看。
如我们所见,spaCy的默认停用词列表包括312个条目,每个条目都是一个单词。我们还可以看到为什么其中许多单词对数据分析没有用处。例如,尽管如此,过渡词对于理解句子的基本含义并不是必需的。而诸如“ 某人”之类的词太含糊,以至于无法用于NLP任务。
如果需要,我们还可以创建自己的自定义停用词列表。但是出于我们在大数据分析Python中spaCy文本分类使用教程中的目的,spaCy提供的默认列表会很好。
从我们的数据中删除停用词
现在我们有了停用词列表,让我们使用它从上一部分中正在研究的文本字符串中删除停用词。我们的文本已经存储在变量中text,因此我们不需要再次定义它。
上一篇:如何看待专科护理?
下一篇:返回列表
相关链接 |
||
网友回复(共有 0 条回复) |