基于卷积神经网络的文本分类的设计与实现(Python)

目 录
摘 要 I
Abstract II
第1章 绪论 1
1.1课题的研究背景和意义 1
1.1.1目前网站文本分类的研究情况 1
1.1.2基于特征熵值分析的网站文本分类系统的设计目标 2
1.2论文的研究内容与组织结构 3
1.2.1论文的研究内容 3
1.2.2论文的组织结构 3
第2章 系统模块组成介绍 4
2.1系统总体架构 4
2.2爬虫模块功能与技术 6
2.3网页处理模块功能与技术 7
2.4特征提取与文本特征表示模块功能与技术 7
2.5分类器模块功能与技术 7
2.6本章小结 8
第3章 爬虫模块和页面处理模块 9
3.1爬虫模块详细设计 9
3.2页面处理模块详细设计 10
3.2.1页面内容价值分析 11
3.2.2页面处理方法 11
3.2.3一种线性时间的正文提取算法 12
3.2.4页面处理关键流程图 13
3.3 本章小结 14
第4章 特征提取与文本特征表示模块 15
4.1特征提取技术介绍 15
4.2文本特征表示介绍 16
4.2.1体现词在文档中权重的关键因素分析 17
4.2.2TF*IDF 方法 17
4.3本章小结 18
第5章 CNN分类器模块 19
5.1传统CNN算法介绍 19
5.2传统CNN算法的缺陷 19
5.3在运行速度上改进CNN算法 19
5.3.1传统CNN算法运行速度低下的原因分析 20
5.3.2用 Rocchio 算法进行预选候选类 20
5.3.3根据文本的特征集与每类特征交集再次筛选候选类 21
5.3.4建立倒排索引 21
5.3.5引入位置向量表示法来降低高维向量计算量 22
5.3.6快速CNN算法的系统流程 23
5.4属性熵介绍 24
5.4.1熵的定义 25
5.4.2属性熵值的意义 25
5.5在分类精度上改进CNN算法 25
5.5.1传统CNN算法分类精度低的原因分析 25
5.5.2引入属性熵值再次改进相似度计算公式 26
5.5.3引入类别平均相似度改进在卷积神经网络中各类权重公式 26
5.5.4引入类别贡献度再次改进在卷积神经网络中各类权重公式 27
5.6本章小结 27
第6章 实验测试与评价 28
6.1分类标准和训练数据 28
6.2测试结果 29
6.3本章小结 31
结 论 32
参考文献 33
致 谢 35
1.2论文的研究内容与组织结构
1.2.1论文的研究内容
本文主要研究内容为:对CNN算法用于网站文本分类的各个步骤进行缺陷分析,引入属性熵值的概念、Rocchio 算法思想以及一些其他策略,对分类中每个步骤进行全面改进和优化,最终建立一个有实用价值的网站文本分类系统。
1.2.2论文的组织结构
本文内容按照下面的结构进行组织安排:
第一章绪论介绍了研究课题的背景,给出了网站文本分类技术的发展情况与面临的问题,阐述了现有解决方案的优点与不足,明确了研究的内容与目标。
第二章介绍了系统设计的整体架构和技术需求,以及各个模块的详细功能、涉及技术。
第三章详细介绍了系统的前两个模块的实现:爬虫模块和页面处理模块。对于页面处理模块,介绍了一种线性时间复杂度的正文提取方法,并将其应用于本设计的页面处理模块。
第四章详细介绍了特征提取与文本特征表示模块的技术实现,包括对现有特征提取办法的缺陷分析和改进,以及文本特征表示方法的介绍。
第五章详细介绍了CNN分类器模块的实现。从传统CNN算法的缺陷入手, 分别从运行速度的改进上提出 4 种办法和分类精度的改进上提出了 4 种办法,并将这些办法组合成最终的新型改进CNN分类器。
第六章介绍了最终的新型改进CNN分类器在真实网站数据集上的实验结果, 并与传统方法对比,得出本文提出的新型改进CNN分类器更加快速和更加准确的结论。

#-*- encoding=utf-8 -*-

import wx
from Settings.settings import Setting

class TextFrame(wx.Frame):
	def __init__(self):
		setting=Setting()
		setting.loadsettings()

		wx.Frame.__init__(self, None, -1, '参数设置',size=(260, 260))
		panel = wx.Panel(self, -1)
		sizer = wx.FlexGridSizer(cols=2, hgap=10, vgap=5)
		
		label1=wx.StaticText(panel, -1, 'host:',size=(35, -1))
		self.host=wx.TextCtrl(panel, -1, '%s' % setting.dbset['host'],
			size=(100, -1))
		label2=wx.StaticText(panel, -1, 'password:')
		self.passwd=wx.TextCtrl(panel, -1, '%s' % setting.dbset['passwd'],
			size=(100, -1),style=wx.TE_PASSWORD)
		label3=wx.StaticText(panel, -1, 'user:')
		self.user=wx.TextCtrl(panel, -1, '%s' % setting.dbset['user'],
			size=(100, -1))
		label4=wx.StaticText(panel, -1, 'DB name:')
		self.db=wx.TextCtrl(panel, -1, '%s' % setting.dbset['db'],
			size=(100, -1))
		label5=wx.StaticText(panel, -1, 'DB port:')
		self.port=wx.TextCtrl(panel, -1, '%d' % setting.dbset['port'], 
			size=(100, -1))
		
		statisbtn=wx.Button(panel,-1,'更改',size=(80,30))
		self.Bind(wx.EVT_BUTTON,self.OnSetClick,statisbtn)

		sizer.AddMany([label1,self.host,
			label2,self.passwd,
			label3,self.user,
			label4,self.db,
			label5,self.port,
			statisbtn])
		panel.SetSizer(sizer)
	def OnSetClick(self,event):
		host=self.host.GetValue()
		passwd=self.passwd.GetValue()
		user=self.user.GetValue()
		db=self.db.GetValue()
		port=self.port.GetValue()
		setting=Setting()
		setting.updatesettings(host=host,passwd=passwd,user=user,db=db,port=port)
		del setting
def displaycfg():
	frame = TextFrame()
	frame.Show()

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/sheziqiong/article/details/131953574