【深度学习NLP】基于卷积神经网络(CNN)实现中文文本情感分析(分类)附代码以及数据集链接

【注】:本文所述的实验的完整实现代码包括数据集的仓库链接会在文末给出(建议读者自行配置GPU来加速TensorFlow的相关模型,运行起来会快非常多)

目录

一、研究的背景和目的

二、文本数据集描述

1、数据集来源以及使用目的

2、数据规模、以及如何划分数据集

3、数据集的组成和类型

4、文本处理方式

5、数据集使用注意

三、实验方法介绍

1、实验环境及编程语言选择 

2、实验方法

3、实验步骤 

(1) 数据预处理

(2) CNN模型构建

(3) 模型编译和训练验证

四、实验结果分析

1、模型的准确性分析

2、模型评估指标分析

五、实验结论


一、研究的背景和目的

        中文文本情感分析是一种研究人类情感表达的计算机技术,它可以自动地分析文本中的情感,并将其分类为积极、消极或中性。随着互联网的普及和社交媒体的兴起,人们在网上表达情感的方式变得越来越多样化和频繁化,这使得情感分析技术变得更加重要。

        中文文本情感分析的研究背景可以追溯到计算机语言学和自然语言处理领域的起源。近年来,随着深度学习技术的发展,基于深度学习的情感分析算法取得了显著的进展,成为了研究热点。

        中文文本情感分析的目的是提高计算机对人类情感表达的理解能力,帮助人们更好地了解和分析社会情感动态,为商业决策、舆情分析、个性化推荐等领域提供技术支持。同时,它也有助于为语义理解和自然语言生成等研究提供基础和应用场景。

二、文本数据集描述

1、数据集来源以及使用目的

        本实验所使用的数据集weibo_sentiment.csv来自于GitHub上的开源数据集,可以用于机器学习中的中文文本情感分析的练习任务。

2、数据规模、以及如何划分数据集

        weibo_sentiment.csv 数据集中的数据规模即共有119988条中文文本,基本正面和负面的评论都差不多,所以最终的结果也比较稳定;本实验使用的时K折交叉验证来训练模型,数据集随机按照9:1的比例来划分,并循环训练十次。

3、数据集的组成和类型

        数据集主要是来自微博上的各种评论,包括各种各样不同类别的评论内容,每行文本的组成是情感标签和评论的具体内容。标签和内容的样式示例如下所示:

情感标签与情感类别的对应

情感标签

情感类别

0

负向评论

1

正向评论

4、文本处理方式

        本实验所使用的数据集已经经过了初步的预处理(几乎标准的csv格式),形成了每行文本以“情感标签,评论内容”这样每个属性以“,”隔开的格式。本实验将会把这批数据的文本内容部分先进行分词并去除停用词,然后使用,使用Keras的Tokenizer方法将文本中的每个单词映射为一个数字编号,并将文本转换为数字列表形式的词向量,以便于后续的处理;由于每个文本的长度不一,为了能够将它们输入到相同形状的模型中,这里我们需要对词向量进行补齐操作,将每个词向量的长度填充为相同的值,本实验使用Keras的pad_sequences方法进行补齐操作,并将词向量的最大长度设置为280(因为根据实验前的统计,几乎每条文本的长度都小于280),本实验在补齐序列的时候是令truncating='post'、以及padding默认为pre,即主要保留后面部分,就是当长度超过280时截断前面多余的部分,长度不足280时,在前面部分补0。

# 读取我们本次实验的文本数据
df = pd.read_csv('../Emotional_text/weibo_sentiment.csv')# 分词并去除停用词
stop_words = load_stopwords()
df['review'] = df['review'].apply(lambda x: ' '.join(word for word in jieba.cut(x) if word not in stop_words))# 使用Keras的Tokenizer来转化词语为词向量,这里我们选择出现频率前25000个词作为词袋
tokenizer = Tokenizer(num_words=25000, oov_token='<OOV>')
tokenizer.fit_on_texts(df['review'])
seq = tokenizer.texts_to_sequences(df['review'])# 补齐每个样本序列,使其长度一样来方便后续的计算
max_len = 280
seq = pad_sequences(seq, maxlen=max_len, truncating='post')

5、数据集使用注意

        本实验所使用的数据集来自网上开源的语料库,请不要用于商业用途欢迎自主学习使用。

三、实验方法介绍

1、实验环境及编程语言选择 

        实验环境:

                操作系统:  Windows10/Windows11

        软件包管理部署工具: Anaconda3

        Python语言版本: Python3.10.9

2、实验方法

        本实验主要使用的是卷积神经网络(CNN)来进行中文文本的情感分析,其中主要的模型算法来自Keras以及Tensorflow,本实验的模型中先后添加了词嵌入层、卷积层、池化层、全连接层、和输出层,具体的原理和实现步骤方法将在下面的实验步骤中给出   。

3、实验步骤 

(1) 数据预处理

        数据预处理大部分的步骤在“二、文本数据集描述”一节中已经具体的阐述过了,这里就简单的说一下后续的处理,在将每一句的词向量补齐之后就开始了划分数据集,本实验使用K折交叉验证,其中本实验延续上一个实验继续将K值设为10,即把数据分成十份,训练集九份、验证集一份,然后每一份都做一次验证集来训练,这样可以是模型更加的具有鲁棒性和泛化性。

(2) CNN模型构建

        在数据预处理之后,就需要开始构建一个基本符合本实验的CNN的算法模型了(包括词嵌入层、卷积层、池化层和全连接层等,其中激活函数使用ReLU,损失函数使用交叉熵,优化器使用Adam)。首先使用Keras的Sequential()方法定义一个可以按照层次结构依次添加神经网络层的序贯模型(这个模型容器在神经网络学习中非常的方便),然后添加一个词嵌入层 (Embedding Layer),将每个单词的整数编码映射为一个密集向量表示(本来此处是应该使用预训练的词嵌入矩阵的,它们是基于大型语料库训练的,能够更好表达单词之间的语义关系,但是由于被百度网盘限速下载数据集实在太慢,就放弃了),在这一层,我们设置了词汇表的大小为 25000(本来有十七万多的词袋,但是太大了实在是跑不动,截取前两万五的词做个代表,之所以不用TDF-IDF来根据重要程度排序是因为在情感分析中有些出现频率高的词可能对文本的情感影响更大,所以就直接默认按照出现频率降序来排),每个单词的嵌入维度为 150(根据ChatGPT的建议,从我们的数据集的大小出发,选了几个100到300维度的来试过几次),输入序列的最大长度为 280(在数据预处理时已经说过了),这里的结果是直接基于Embedding层的随机初始化的矩阵得出的,直接根据对应的整数ID编号输出(由于权重矩阵初始化的时候是随机生成的,所以不能很好的把不同词之间的不同关系表现出来,不过不用担心,后面会使用反向传播算法来更新这些权重矩阵)。

        然后就是添加一维卷积层,在这里本实验设置了128个卷积核,每个卷积核的大小是5(一开始设置少了,最后跑出来的效果很不理想,这里每个单个的卷积核中每个元素(就是大小是5就有5个元素)的维度在一开始是会自适应词向量的维度的,所以不用担心维度不会匹配的情况,当然如果是自己去单独实现一个卷积的操作可能就需要自己去规定维度要相同了,这里使用的是现成的Keras中的一维卷积),这相当于对每个样本从前五个词向量开始,与每个卷积核做点乘,然后在一步一步向后滑动,正常来说对每个样本输入来说这里会输出一个由128个276维向量的组合特征图,本实验使用的激活函数为ReLU函数。激活函数是用来对神经元的输出进行非线性变换的,即输入大于零时就输出它本身,小于零时就输出零,可以防止过拟合以及提高运算速度,又可以防止梯度消失。

        接下来就是利用池化层对卷积之后的结果进行一个降维操作,这里我们使用的是最大池化操作,使用的是Keras的GlobalMaxPooling1D()来做最大池化操作,其原理是把卷积层输出的特征图的每个通道的最大值选取出来组成一个新的特征向量,从而达到降维的效果(这里之所以不用平均池化,是应为最大池化会保留序列里面最显著的特征,对情感分析来说这种最显著的特征对文本的情感通常是由较大的影响的,而平均池化类似于一种平滑,会丢失这种显著的特征所以在这里我们选择使用最大池化操作),这个新的特征向量就是这个样本最显著的特征,就将作为池化层的输出进入到下一层。

        接下来就是全连接层,就是把全连接层所有的神经元都和池化层的输出也就是全连接层的输入相连,如果全连接层的输入不是一维的特征向量,那么该特征向量将会被压缩成一维向量再参与运算,如果是自己单独实现这一层的话,而池化层输出的又不是一维的特征向量的话这里就需要自己去实现向量维度的压缩(池化层使用平均池化的话可能就会输出多维的特征向量),这里的全连接运算过程其实也就是使用它每个神经元的权重矩阵的转置(这是为了确保连个矩阵满足矩阵的乘积要求)和输入的特征向量做一个简易乘积运算。

        在之后的Dropout层是一个作用于它前面的全连接层的防止过拟合的技术,它可以使前面一层的神经元随机失活(注意这里不是真正意义上的失活,而是会以一定概率(这个概率是我们自己设置的)把前面一层的神经元的输出置零(所以并不会影响输出的样本的特征向量的长度),以此来防止过拟合,使模型不会过度的依赖某些特定的神经元,让模型的鲁棒性更强)。

        最后的就是整个卷积神经网络的输出层,这个输出层我们使用的是一个全连接层来实现,由于做的只是二分类任务,所以我们设置两个神经元,并使用softmax函数作为激活函数来使特征向量转化为概率密度,再从两个概率中输出最大概率的那个分类(神经网络在训练的时候会保证输出的概率分类的顺序和验证的标签分类顺序一致),这两个神经元的长度还是和特征向量的长度自适应,而权重矩阵一开始也是随机生成的对全连接层来说在Keras中默认的是使用Glorot均匀分布(也称为Xavier均匀分布)进行初始化,偏置向量默认初始化为0,主要就是根据神经元的输入和输出个数来进行随机数范围的限制(这里就不多做阐述了)。到这里模型的神经元层基本就算是构建完成了。

    # 建立一个神经网络模型,一层层添加神经元层model = Sequential()model.add(Embedding(25000, 150, input_length=max_len))model.add(Conv1D(128, 5, activation='relu'))model.add(GlobalMaxPooling1D())model.add(Dense(128, activation='relu'))model.add(Dropout(0.5))model.add(Dense(2, activation='softmax'))

(3) 模型编译和训练验证

        在构建完一个模型之后,我们就需要对这个模型进行编译来指定优化器(优化器就是用于更新权重矩阵和偏置的、除此之外还有学习率等)、损失函数、和评估指标等,本实验使用的是Adam模型优化器(主要是方便又可以在训练的过程中自适应学习率),而我们所使用的损失函数是categorical_crossentropy(多类别交叉熵损失函数),它能够直接衡量模型预测的概率分布和真实标签的概率分布的之间的差异,经常和softmax一起使用。最后在编译阶段再设置一个评估指标,这里我们使用的是accuracy(准确度)作为评估指标。

        再经过模型编译之后就是对模型进行训练验证了,但是在这里我们为了更好的防止训练过程中出现过拟合现象,还需要设置两个Keras回调函数EarlyStopping(本实验中将将它的检测目标定为验证集上损失,其原理是当验证集上的损失不再下降的时候就提前终止训练防止过拟合,其中patience=3的意思是连续三个epoch的损失不再下降就结束训练) ReduceLROnPlateau(它用于在验证集损失不再下降时降低学习率,monitor='val_loss' 表示监控验证集损失,factor=0.2 表示每次降低学习率时将其乘以 0.2patience=2 表示当验证集损失在连续 2 epoch 内都没有下降时,降低学习率,min_lr=0.0001 表示学习率的最小值为 0.0001)来动态调整训练中的学习率和检测训练过程提前终止训练避免过拟合的现象出现。

        在之后我们将进行模型的训练及验证直接使用Keras的fit方法对模型进行训练。train_seq和train_labels是训练数据和标签,batch_size=128表示批大小为128,epochs=20表示训练20个epoch,validation_data所设置的test_seq和test_labels表示使用 test_seq和test_labels作为验证数据,callbacks=[early_stop, reduce_lr]表示在训练过程中使用early_stop和reduce_lr两个回调函数,verbose=0表示不输出训练日志。在训练过程中,模型会在每个 epoch结束后计算在验证数据上的损失和准确度,并根据这些信息调整学习率或提前终止训练。训练完成后,返回一个History对象,其中包含了训练过程中的损失和评估指标等信息。最后在输出一下模型的评估结果就算是整体的实验步骤结束了。

        最后说明一下,本实验使用了十折交叉验证加多批次训练,就是说所有的训练数据被分成十份分别以以9:1的比例来进行训练和验证,总共进行十次,而每次训练又将训练多个epoch(一般都会不到20个就会收敛),每个epoch又会被分成多个批次(每个批次的大小为128)分批进行训练,这样能够加快训练速度并提高模型性能,通过在每个epoch中分批处理数据,可以减少内存占用并利用矩阵运算加速计算。

    # 编译刚刚建立的卷积神经网络模型model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])# 设置 EarlyStopping 和 ReduceLROnPlateau 来避免过拟合early_stop = EarlyStopping(monitor='val_loss', patience=3)reduce_lr = ReduceLROnPlateau(monitor='val_loss', factor=0.2, patience=2, min_lr=0.0001)# 训练以及验证卷积神经网络模型的效果history = model.fit(train_seq, tf.keras.utils.to_categorical(train_labels), batch_size=128, epochs=20, validation_data=(test_seq, tf.keras.utils.to_categorical(test_labels)), callbacks=[early_stop, reduce_lr], verbose=0)

四、实验结果分析

1、模型的准确性分析

        从实验的结果来看,我们一共进行了十次(十折)整体的训练,每一折的训练都会输出一幅accuracy的图和loss图,上面展示了每次训练截至之前的每一个epoch对应的训练集和测试验证集上的准确度以及熵损失。从下面的部分结果图来看,每次训练基本都会在第二个epoch就会收敛了,超过这个epoch模型就出现了过拟合的现象,而在这十次训练中,基本上模型的最终的准确度都稳定在97%,算是一个比较高的准确度了。如下图(部分图例):

2、模型评估指标分析

        由模型最终生成的评估结果分析可知本实验所构建的神经网络模型在每一折的训练中的正面和负面的文本的准确率都几乎维持在97%、98%左右,而且召回率和F1-score也差不多维持在这个水准,都是比较好的,而且模型最后的准确度也在97%左右,具体的生成图例如下所示(部分图例):

 模型最终的准确度和损失:

五、实验结论

        使用卷积神经网络来进行文本情感分析可以在训练时进行并行化,也就是可以并行训练和执行;可以经过多层的叠加实现和RNN一样的长序列依赖。但是,使用卷积神经网络进行文本情感分析的模型可解释性不强,在调优模型的时候,很难根据训练的结果去针对性地调整具体的特征。

        综上所述,此外如果还需要提升这个模型的性能的话,可以增加神经元的个数,也可以通过增大词袋的大小,也可以调整规定单个词向量的维度,或者使用其他的模型优化器来达到更好的效果。

【注】:深度模型的针对性可能有时候有些强,这和训练的数据集有关,即便有时候防止了模型的过拟合,但是数据集的来源单一,可能最后的泛化性都不会有那么好,对该来源的数据可能预测效果好,但是其它来源就不一定了;就比如说我所使用的是一些微博评论的数据集,导致的结果就是对微博评论这种类型的文本的预测效果好一些,对其他领域的可能就不太理想,它对符合它训练的数据集的那种语法、语言模式的文本的效果比较好,对其他的可能就不是很理想,所以各位读者在自行测试的时候可能就会发现有时候对于你输入的文本,模型给出的结果不太好。

本实验的代码仓库位置及数据集都在仓库的CNN目录下,仓库链接如下:

        GitHub - XSJWF/MachineLearning: 一些机器学习分入门算法实现分享

或者下面这Gitee的仓库:

        Gitee仓库

本篇文章到此结束,感谢各位读者的阅读!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/10637.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Stability AI 创始人:大模型不应该只属于巨头

作者 | 凌梓郡 编辑 | 靖宇 追溯 ChatGPT 引发的 AI 军备竞赛&#xff0c;可以回到去年 7 月&#xff0c;图像生成模型 Stability Diffusion 开源&#xff08;下文称 SD&#xff09;。这个在 Open AI 的绘画模型 DALL- E2 之后发布的模型&#xff0c;因其源代码开源&#xff0c…

谷歌员工担心自家 AI 敌不过 ChatGPT,高管回应:其过快发展可能损害公司

来源&#xff1a;AI前线 整理&#xff1a;冬梅、核子可乐 谷歌的 Jeff Dean 表示&#xff0c;一旦提供错误信息、大企业所面临的“声誉风险”要比小公司更严重&#xff0c;所以谷歌自然“比小型初创公司更加保守”。 自 11 月底以来&#xff0c;AI 聊天机器人 ChatGPT 正式向公…

我让Chat GPT准备了几份SAP 顾问英文面试自我介绍的模板,大家感受一下

有个朋友说有个面试要用英文来做自我介绍&#xff0c;我灵机一动&#xff0c;不如让Chat GPT准备了几份SAP 顾问英文面试自我介绍的模板&#xff0c;大家感受一下。我看下来感觉写的还是中规中矩&#xff0c;可以一用&#xff0c;。 模板1 Sure, I can help you with that! Her…

从语言模型到ChatGPT:大型语言模型的发展和应用

前言 为获取最佳阅读格式体验&#xff0c;建议访问个人博客&#xff1a;从语言模型到ChatGPT&#xff1a;大型语言模型的发展和应用 | JMX Blog 大型语言模型&#xff08;LLM&#xff09;是指能够处理大量自然语言数据的深度学习模型&#xff0c;它已经在自然语言处理、文本生…

OpenAI2022年亏损5.4亿美元;GPT-4等大模型容易导致侵权和社会偏见问题;学而思研发大模型MathGPT丨每日大事件...

‍ ‍数据智能产业创新服务媒体 ——聚焦数智 改变商业 企业动态 携程集团与亚马逊云科技成立联合创新实验室 日前&#xff0c;亚马逊云科技宣布与携程集团共同成立“联合创新实验室”&#xff0c;双方表示联合创新实验室将探索运用云计算、大数据、人工智能和机器学习等前沿技…

云原生周刊 | 使用 ChatGPT 协助解决 Prometheus 告警

开源项目推荐 kubernetes-chatgpt-bot 这是一个适用于 Slack 的 ChatGPT 机器人&#xff0c;只要有监控告警发送到 Slack 频道中&#xff0c;你就可以通过机器人向 ChatGPT 咨询如何解决这个告警&#xff0c;ChatGPT 将会给出一个较为详细的解决方案。 Copacetic Copacetic …

ChatGPT 引发AI服务器霸屏?AI服务器和普通服务器不同在哪?

​  近阶段&#xff0c;由于 ChatGPT 的横空问世&#xff0c;引发 AI 服务器再一次热潮来袭。随之而来的是&#xff0c;越来越多的企业和机构开始关注 AI 服务器和普通服务器之间的区别和对比。那么AI服务器到底是什么意思&#xff0c;它与普通服务器相比又有哪些差异呢? AI…

最全方案:升级成Plus会员,无法进入支付页面问题排查与解决

目录 问题复现 解决方案 更多内容 问题复现 当你帐号注册好了&#xff0c;想要升级成Plus的时候&#xff0c;却发现怎么也进不去支付页面&#xff1a;The payments page encountered an error. Please try again. If the problem continues, please email supportopenai.co…

利用催眠技巧绕开OpenAI的内容政策限制(仅供研究使用)

fork的仓库&#xff1a;https://github.com/JanYork/chatgpt-chinese-prompt-hack 声明&#xff1a;请仅作研究之用&#xff0c;不要违规使用&#xff01; 在hack成功后,通过屏蔽moderetions的api请求,可以绕过OpenAI对于输出内容的审查. 地址为:https://chat.openai.com/back…

WeTab新标签页:一款可以使用的chatGPT的浏览器主页插件

AI工具 如果你还没有体验过chatGPT&#xff0c;那么Wetab新标签页应该是最方便快捷的一个方式了。Wetab新标签页整合了chatGPT的功能&#xff0c;自带6个源可以切换&#xff0c;日常使用完全够了。可以为你解答包括但不限于历史、科学、文化、社会等方面的问题。 你只需要在扩…

ChatGPT插件与Web网络浏览功能大揭秘!

ChatGPT自身进化速度之快让人常常感觉到惊叹&#xff0c;还在感慨GPT4的强大之时&#xff0c;插件以及web浏览功能已经正式发布。以前&#xff0c;它只能使用它在 2021 年之前学到的信息&#xff0c;但现在&#xff0c;OpenAI 开放了插件功能&#xff0c;让 ChatGPT 可以探索整…

ChatGPT连续宕机五次,是真不把高可用当回事?

最近一段时间以来&#xff0c;ChatGPT 火遍全球&#xff0c;然而在飞速的用户增长下&#xff0c;ChatGPT 却有点不堪重负&#xff0c;两天内宕机了五次。 这次宕机事件&#xff0c;再一次凸显了高可用架构的重要性&#xff0c;毕竟任何一个飞速发展的应用在两天内宕机五次&…

ChatGPT的API接口的模型有多少种?这些模型都有什么功能或者在应用场景上有什么区别?【模型介绍使用与调用接口方法】

OpenAI 的 API 接口提供了多个 GPT-3 模型,每个模型针对不同的应用场景和任务进行了优化。以下是目前可用的 GPT-3 模型: davinci: 这是最大和最全面的模型,具有最高的准确性和灵活性,用于多种自然语言处理任务,如文本生成、对话系统、翻译等。 curie: 这个模型比 davin…

20分钟轻松完成2篇申请文书?ChatGPT到底是黑科技还是黑名单?

自从ChatGPT与2022年底正式出道并走红之后&#xff0c;各大领域都纷纷浮现使用这款人工智能软件完成本属于人类工作的现象。如果你以为它就像手机上呼叫一声就能帮你查看天气或者设置闹钟的机器人一样那就错了&#xff0c;ChatGPT能够在一段对话中结合你给的信息生成复杂且具有…

快速拿下CKA认证考试,这些要求和tips你得知道

一、cka简介 K8S专业技术认证包含&#xff1a; CKA&#xff08;Kubernetes 管理员认证&#xff09; CKAD&#xff08;Kubernetes 应用程序开发者认证&#xff09; CKS&#xff08;Kubernetes 认证安全专家。预计2020年11月开放&#xff0c;须先通过CKA认证&#xff09; 什么…

考公机构用ChatGPT押题上热搜 网友戏称“还有什么是ChatGPT不会的吗?”

考前押题是每个老师在学生心中的“高光”时刻&#xff0c;对参加公务员考试的人来说&#xff0c;名师押题的重要性更加不言而喻。近日&#xff0c;在北京某公务员考试培训班上&#xff0c;一位申论老师使用ChatGPT预测申论考点&#xff0c;并直呼“这么快能答出来很难得”。用C…

电脑连不上网,浏览器网页打不开,但qq微信能发消息

这种情况一般是因为之前电脑挂了VPN或者梯子&#xff0c;未关闭/退出 就把电脑直接关机了&#xff0c;这样会导致电脑DNS域名出问题。 1. 打开Windows系统设置 2. 在搜索栏中搜索Internet选项 3. 点 连接&#xff0c;转到局域网设置 4. 把这一项&#xff08;局域网(LAN)设置&a…

解决mac可以聊QQ微信不能浏览网页问题

最近用双系统的WINDOWS开了一个本地服务器&#xff0c;用于调试两台手机音视频通话&#xff0c;调试结束切回mac系统&#xff0c;发现浏览器无法打开网页了&#xff0c;而QQ微信还可以联网正常使用&#xff0c;经过一番摸索&#xff0c;解决方案做个记录。 打开 系统偏好设置--…

电脑问题:浏览器打不开网页,但是微信QQ等其他软件都可以联网正常运行

电脑问题&#xff1a;浏览器打不开网页&#xff0c;但是微信QQ等其他软件都可以联网正常运行 解决办法一&#xff1a; 现状一&#xff1a;浏览器不提示具体错误&#xff0c;单纯打不开 原因一&#xff1a;DNS域名解析出错 解决办法&#xff1a; 在WIFI标志处右键打开网络设…

开机后,电脑所有浏览器都打不开网页,无法使用网络,但是其它设备比如tim可以正常使用的解决方法

电脑每一个浏览器都打不开网页&#xff0c;但是其它设备比如tim可以正常使用。 解决方法&#xff1a; 电脑在关机的时候“梯子”没有关闭。 再次打开梯子&#xff0c;然后刷一刷网页&#xff0c;就可以打开了&#xff0c;然后再关闭梯子。 之后就可以正常上网了。 关机&#…