住总第三开发建设有限公司网站,wordpress友情链接导入,官方网站平台有哪些,成都做网站要实现从评价中提取高频关键词#xff0c;并判别其正负面性#xff0c;其实是通过人工智能领域中的一个分支#xff1a;自然语言处理。
在了解自然语言处理之前#xff0c;我们先来说说#xff0c;什么是自然语言#xff08;Natural Language#xff09;#xff1f;自…要实现从评价中提取高频关键词并判别其正负面性其实是通过人工智能领域中的一个分支自然语言处理。
在了解自然语言处理之前我们先来说说什么是自然语言Natural Language自然语言即人们日常使用的语言也就是每天包围着我们的文本信息和语音信息。
了解自然语言 这样或许还不太能知道到底什么是自然语言处理我们简单看一些它的应用来帮助理解为什么要让计算机去处理自然语言吧
1.邮件过滤系统会根据电子邮件的内容识别电子邮件是否属于三个类别重要、社交或广告之一或者判断一封邮件是否是垃圾邮件。此时就是通过NLP来对这些邮件进行一系列的分类。
2. 搜索引擎如百度、谷歌等。在我们输入2-3个字后搜索引擎会显示可能的搜索词。或者如果输入了错别字搜索引擎会自动进行更正。这就是通过NLP技术来实现的搜索自动完成和自动更正功能帮助我们更有效地找到准确的结果。
3. 机器翻译比如Google、有道翻译。目前所追求的翻译不再仅仅是通过计算机直接将一种语言转换为另一种语言而是需要像人类一样能够理解世界知识和上下文。要让电脑像人类一样理解自然语言必然离不开NLP技术。
4. 语音助理比如Siri、智能音箱等。现在的语音助理与人类之间的交流不再是简单的你问我答不少语音助手甚至能和人类进行深度交谈。同样在这背后离不开NLP技术使得语音助理能够将人类语言转换为机器语言然后执行相应的操作。 通过这些例子大概可以感受到我们每天都会产出大量的自然语言信息。在面对自然语言时除了单纯地阅读和倾听外往往会进行更多复杂的操作和处理。但人工处理的代价过于高昂因此会期望训练计算机来代替人类这就是自然语言处理的意义。
然而自然语言并没有想象中那么容易处理。与人工语言编程语言或数学语言等相比自然语言有着多变、非结构化等各种特殊和复杂的特点。
例如编程语言中的关键词数量是固定的而自然语言中能使用的词汇量是无限的甚至还在不断创造新词编程语言具有结构性如类和对象但显然自然语言不具有这样的结构。 总结一下广义上来讲任何处理自然语言的计算机操作都可以被理解为NLP。它可以实现一些简单的功能比如短语之间的翻译。同时NLP也致力于完成一些具有挑战性的任务比如完全“理解”人类话语。 了解完自然语言处理NLP的基本概念、应用和面临的一些挑战后我们来思考一下在自然语言这个复杂的系统里是否存在一个基本单位呢这样便可以把无规律的文本信息降维处理后再来完成后续的NLP任务。
拆解文本
1.一篇文本是由无数句话组成而一句话又是由一个个词语组成因此可以将词语看作是自然语言的基本单位。那么在进行NLP时就需要先将句子中的词语分开。
对于英文只需要按照空格和标点符号就可以将词语分开。但在中文文本里所有的字都连在一起计算机并不知道一个字应该与其前后的字连成词语还是应该自己形成一个词语。 因此需要借助额外的工具将中文文本中的词语分隔开。这项技术被称为中文的分词具体的操作我们会在下节课进行学习。
2.分词完成后就可以根据这些词语找到属于这个文本的特点也就是常说的特征feature。对于文本而言词语出现的频率就可以作为一项特征。那么词频这个特征就能帮我们提取出关键词。在进行NLP时构造词袋模型Bag-of-Words Model是一种常用的用于统计词频的技术。 可以看到通过词袋模型生成的结果词的顺序和语法都被忽略了变成了一些词语间的组合但又在一定程度上保留了主题信息。
我们根据词袋中“物流”、“屏幕”等词语仍然可以知道这三条评价与物流和屏幕有关。同时根据词频我们也获取了关于这三条评价的关键词“满意”、“物流”和“屏幕”。 将复杂的词句结构降维成体现主题的词语计数以便计算机进行后续的处理。这就是词袋模型的基本思想。
分析商品评价
根据刚才的思路分析我们就得到了如下解题步骤1. 寻找、读取并处理数据集2. 统计词频提取关键词3. 构造模型预测评价的正负面性今天我们会先学习第一个步骤寻找、读取和处理数据集。 什么是CSV文件呢
CSVComma-Separated Values逗号分隔值文件以纯文本的形式储存数字、文本等表格数据。它的数据格式如图所示文件中多个数据之间通常用逗号分隔每一行的数据都是相同的结构。 读取CSV文件
代码的作用
这段代码展示了使用csv模块来读取存储了电视评价的CSV文件。 STEP1. 导入csv模块 STEP2. 打开文件 STEP3. 读取文件
# 导入csv模块
import csv
# 使用open()函数打开数据集并将返回的文件对象存储在变量file中
file open(/Users/yequ/TVComments.csv, r)
# 使用csv.reader()函数读取数据集并赋值给变量reader
reader csv.reader(file)
解析代码
1. 导入模块
Python提供了一个用于处理CSV文件的模块csv 模块。由于是内置模块所以不需要安装直接使用import导入即可。
2. 打开文件open()
在使用csv模块读取文件前得先通过open()函数打开需要被读取的文件。该函数用于打开一个文件并返回对应的文件对象。
open()函数第一个参数
第一个参数是文件路径(path)也是必选参数。本例中将存储了电视评价的数据集的路径/Users/yequ/TVComments.csv作为必选参数传入到open()函数中。
open()函数第二个参数
第二个参数代表打开方式用特定的字符串表示。我们只需要读取该文件所以使用 r 表示以只读的方式读取文件。
文本对象
open()函数返回一个文件对象我们将它存储在变量file中。
3. 读取文件csv.reader()
打开数据集后我们就可以使用csv.reader()函数读取CSV文件只需将文件对象file作为参数传入其中。
reader对象
使用csv.reader()函数时返回的是一个reader对象我们将它存储在了变量reader中。
逐步修改
什么是reader对象
读取文件后获取到的是一个reader对象。 reader对象存储的是CSV文件里所有行数据相当于每一行数据都作为字符串列表返回。 我们可以使用for循环遍历它输出每一次遍历结果进行查看。
查看提取信息 根据输出可以看到CSV文件里的每一行都被读作成了一个字符串列表。由于CSV文件有两列数据所以对应的每个列表里都有两个元素第一个元素是评价第二个元素是该评价对应的正负面性。 这就意味着CSV文件里有多少行评价数据reader对象中就有多少个列表。
为了方便接下来对所有的评价进行处理我们可以对reader变量里的数据进行标准化处理。
标准化处理
具体的方法是把所有的评价都存储在一个列表中这样不论是遍历所有评价还是访问单独的某一条评价都会非常方便。 步骤如下 1. 先创建一个空列表用于存储reader对象中的值 2. 使用for循环遍历reader对象 3. 使用append()函数将reader对象中的每行数据添加到空列表data中 完成后data列表里存储的就是我们需要的电视评价数据啦
修改代码如下 输出结果