- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
第9章项目实战1:食品安全信息处理与识别
课程学习内容9.1项目背景9.2数据获取9.3数据预处理9.4机器学习建模与分析9.5项目总结
9.1项目背景 本项目致力于在信息集合中识别与食品安全相关的信息,以助力相关部门监管高效精准。对信息数据进行分类,通过模型建立、语义分析等方法筛选出食品安全相关的信息,输出属于食品安全相关的信息编号及信息名称。项目整体架构如图所示。第一步是从文档数据库MongoDB上获取文本信息记录。第二步是用Pandas进行数据预处理,提取有效字段。将预处理完毕的数据进行建模与分析。第三步是用jieba、Gensim、NLTK将文本转换为数值,再用sklearn支持向量机模型建模。第四步是用Matplotlib的三维散点图呈现模型的分类效果。第五步对项目进行总结和实际应用。
9.2数据获取9.2.1用SecureCRT连接MongoDB查看数据1.打开VMware虚拟机,导入DATA01虚拟机镜像,设置虚拟网络编辑器的VMnet8网卡的子网地址为192.168.152.0
9.2数据获取2.启动虚拟机,用SecureCRT联机。参数设置如图所示,主机名为“192.168.152.210”,端口为“22”,用户名为“root”,密码为“123456”
9.2数据获取3.联机完成后,调整字符编码为UTF-8格式
9.2数据获取4.启动MongoDB服务,查看数据。具体命令如下:得到的结果如下:
9.2数据获取9.2.2用Python连接MongoDB读取数据 利用pymongo包连接MongoDB,读取mydb库的myCollection集合中的数据,主要代码如下:
9.3数据预处理9.3.1数据转换 将列表中的数据转换为pandas的DataFrame,以便进一步处理,主要代码如下:
9.3数据预处理9.3.2数据清洗 在上面的df01中,_id和EVENT_ID都是记录的唯一标识符,可以只保留1个,这里保留EVENT_ID。EVENT_NAME和CONTENT都表示信息的内容,可以整合为一个字段。考虑到CONTENT字段有空值、与EVENT_NAME完全相同和与EVENT_NAME不相同3种情况,整合时要以用户自定义函数的形式进行处理。
9.3数据预处理主要代码如下:
9.4机器学习建模与分析9.4.1将信息集合划分为训练集和测试集 训练集用来训练模型,测试集用来检验模型的分类有效性。划分时要保证涉及食品安全信息的记录,在训练集和测试集中的比重是一致的。主要代码如下:
9.4机器学习建模与分析
9.4机器学习建模与分析9.4.2将NAME_AND_CONTENT字段数值化 NAME_AND_CONTENT字段是用文字描述的,计算机在处理文字时,要将其转换为数值化的n维向量。具体实现分为以下2个步骤。 1.语句拆分 实词是语句含义特征的主要标志,为了突出这种特征和减少后续计算量,要保留实词,去掉虚词。 主要代码如下:
9.4机器学习建模与分析
9.4机器学习建模与分析
2.将词汇列表转换为数值化的向量 首先用get_corpus_vectors函数,转换训练集为n维度数值化向量集合A,再利用get_new_doc_vector函数,计算测试集在A中的数值化投影向量集合,作为向量集合B。这里用到了语言的两个处理工具:Gensim、NLTK。 Gensim(generatesimilarity)是一个简单高效的自然语言处理Python库,用于抽取文档的语义主题(semantictopics)。 NLTK是一个高效的Python构建的平台,用来处理人类自然语言数据。9.4机器学习建模与分析
主要代码如下:9.4机器学习建模与分析
9.4机器学习建模与分析
9.4机器学习建模与分析
9.4机器学习建模与分析9.4.3针对训练集建立分类模型进行训练 采用sklearn库的支持向量机(SVM)模型进行分类,用数值向量化的训练集df_A进行训练。主要代码如下:
9.4机器学习建模与分析9.4.4用测试集检验分类模型的性能 用测试集df_B检验分类模型的性能,通过预测值与实际值的比对,计算精确率、召回率和F1分数。主要代码如下:
9.4机器学习建模与分析9.4.5结果可视化 主要代码如下:
9.5项目总结1.对于信息的识别问题,首要的是定位出关键字段。2.非数值的文本信息,若要调用sklearn库的强大功能,需要首先进行数值化转换。3.在实践中,关系到国计民生的重大问题,在模型选择上要有意选择漏警率较低的模型。4.本项目可以从以下角度探索改进:(1)可以尝试s
文档评论(0)