您现在的位置: 首页 > 网站导航收录 > 百科知识百科知识
python提取文本中的一类词给个思路是什么?
文本,单词,标记python提取文本中的一类词给个思路是什么?
发布时间:2019-02-08加入收藏来源:互联网点击:
相反,我们将创建一个名为的空列表filtered_sent,然后遍历doc变量以查看源文本中每个标记化的单词。spaCy包括一堆有用的标记属性,我们将使用其中的一个is_stop来识别不在停用词列表中的单词,然后将它们附加到filtered_sent列表中。
不难理解为什么停用词会有所帮助。删除它们将我们的原始文本简化为仅几个单词,这使我们对句子正在讨论的内容有了一个很好的了解:学习数据科学,并在此过程中避免挑战和挫折。
词汇规范化
词典标准化是文本数据清除过程中的又一步。总体而言,归一化将高维特征转换为适合任何机器学习模型的低维特征。出于这里的目的,我们只考虑lemmatization,即一种处理单词以使其根源减少的方法。
合法化
合法化是一种处理以下事实的方法:尽管connect,connection,connecting,connected等词并不完全相同,但它们都具有相同的基本含义:connect。拼写上的差异在口语中具有语法功能,但是对于机器处理,这些差异可能会造成混淆,因此我们需要一种方法来将所有单词形式的单词connect变成单词connect self。
一种执行此操作的方法称为“ 阻止”。词干涉及简单地去除容易识别的前缀和后缀,以产生通常是单词最简单的版本。例如,连接将删除-ion后缀,并正确地减小以连接。这种简单的词干通常是需要的,但是词义化(实际上是查看字典中描述的词及其词根(称为lemma))(只要词存在于字典中)更为精确。
由于spaCy包含了将单词分解为引理的内置方法,因此我们可以简单地将其用于引理。在以下非常简单的示例中,我们将使用它.lemma_为要分析的每个单词产生引理。
词性(POS)标记
单词的词性定义了它在句子中的功能。例如,名词标识一个对象。形容词描述一个对象。动词描述动作。在句子的上下文中识别和标记每个单词的语音部分称为词性标记或POS标记。
让我们尝试使用POS标记spaCy!我们需要导入其en_core_web_sm模型,因为其中包含进行此分析所需的字典和语法信息。然后,我们需要做的就是将这个模型加载.load()并遍历我们的新docs变量,使用确定每个单词的词性.pos_。
(注意û中u"All is well that ends well."表示该字符串是Unicode字符串。)
spaCy已正确识别出该句子中每个单词的词性。能够识别词性在各种与NLP相关的上下文中很有用,因为它有助于更准确地理解输入句子并更准确地构建输出响应。
实体检测
实体检测,也称为实体识别,是语言处理的一种更高级形式,它可以识别文本输入字符串中的重要元素,例如位置,人物,组织和语言。这对于快速从文本中提取信息非常有帮助,因为您可以快速挑选出重要的主题或确定文本的关键部分。
我们将为.label文本中检测到的每个实体获取一个标签,然后使用spaCy的displaCy显示工具以更直观的格式查看这些实体。
使用这种技术,我们可以识别文本中的各种实体。该spaCy文档提供了受支持的实体类型的完整列表,从上面的简短示例中我们可以看出,它能够识别各种不同的实体类型,包括特定位置(GPE),与日期相关的单词(DATE),重要数字(CARDINAL),特定个人(PERSON)等。
使用displaCy我们还可以可视化我们的输入文本,每个标识的实体都用颜色突出显示并标记。我们将style = "ent"用来告诉displaCy我们要在此处可视化实体。
依赖解析
独立性分析是一种语言处理技术,它使我们可以通过分析句子的构造来确定各个单词之间的相互关系,从而更好地确定句子的含义。
例如,考虑句子“比尔掷球”。我们有两个名词(比尔和球)和一个动词(掷)。但是我们不能只单独看这些话,否则我们可能最终以为球在扔比尔!为了正确理解句子,我们需要查看单词顺序和句子结构,而不仅仅是单词及其词性。
这样做非常复杂,但值得庆幸的是,spaCy它将为我们完成工作!在下面,让我们spaCy从新闻头条中再加上一句话。然后,我们将使用另一个spaCy名为的noun_chunks,它将输入分解为名词和描述它们的单词,并遍历源文本中的每个块,从而识别单词,其词根,其依赖项标识以及它属于哪个块。
该输出可能有点难以理解,但是由于我们已经导入了displaCy可视化工具,因此我们可以使用它来查看依赖关系图,其中使用style = "dep"起来更容易理解:
当然,我们还可以查看有关依赖关系解析spaCy的文档,以更好地了解根据解释每个句子的方式可能应用于文本的不同标签。
词向量表示
当我们单看单词时,机器很难理解人类会立即理解的联系。例如,引擎和汽车似乎有一个明显的连接(汽车使用引擎运行),但是这种连接对计算机而言并不那么明显。
值得庆幸的是,有一种方法可以表示可以捕获更多此类连接的单词。甲字矢量是commuicates其换句话说关系的词的数字表示。
每个单词都被解释为唯一且冗长的数字数组。您可以将这些数字视为GPS坐标之类的东西。GPS坐标由两个数字(纬度和经度)组成,如果我们看到两组GPS坐标在数字上彼此接近(如43--70和44--70),我们会知道这两个位置相对紧靠在一起。词矢量与此类似,虽然有很多分配给每个单词超过两个坐标,所以他们对人类眼球更难。
使用spaCy的en_core_web_sm模型,让我们看一个单词的向量长度,以及使用.vector和看起来的向量.shape。
人们无法观察到该数组并将其识别为“芒果”的含义,但是以这种方式表示该单词对机器而言效果很好,因为它使我们能够代表该单词的含义及其与其他相似单词的“接近度”使用数组中的坐标。
文字分类
现在,我们已经看了一些spaCy一般可以完成的很酷的事情,让我们看一下这些自然语言处理技术中的一些更大的实际应用:文本分类。通常,我们可能会发现自己想要根据一些参数(例如,每个片段的主题)进行分类的一组文本数据,而文本分类将帮助我们做到这一点。
下图显示了在对文本进行分类时我们想要做什么的全景视图。首先,我们从源文本(及其附带的任何标签或元数据)中提取所需的功能,然后将清理后的数据馈送到为我们进行分类的机器学习算法中。
导入库
我们将从导入此任务所需的库开始。我们已经导入了spaCy,但是我们也想要pandas并scikit-learn帮助进行分析。
加载数据中
上面,我们看了一些使用进行文本分析的简单示例spaCy,但是现在我们将使用进行一些Logistic回归分类scikit-learn。为了使这一点更加现实,我们将使用真实的数据集-这组Amazon Alexa产品评论。
该数据集以制表符分隔的文件(.tsv)的形式出现。它已经有五列:rating,date,variation,verified_reviews,feedback。
rating表示每个用户给Alexa的评分(满分5分)。date指示审查日期,并variation描述用户审查的型号。verified_reviews包含每个评论的文本,并feedback包含一个情感标签,其中1表示正面情绪(用户喜欢),0表示负面情绪(用户不喜欢)。
上一篇:如何看待专科护理?
下一篇:返回列表
相关链接 |
||
网友回复(共有 0 条回复) |