首页 > 其他分享 >CISC3025自然语言处理项目

CISC3025自然语言处理项目

时间:2024-04-03 14:24:08浏览次数:20  
标签:功能 0.0286 CISC3025 py 0.0544 单词 处理 0.9456 自然语言

自然语言处理项目澳门大学CISC3025-自然语言处理项目3,2023/2024(截止日期:4月18日)人名(“命名实体”)识别这是一个最多有两个学生的小组项目。你需要在这里加入一个小组。在该项目中,你将建立一个最大熵模型(MEM)来识别新闻专线中的人名text(Label=PERSON或Label=O)。我们提供了所有用于培训和测试的机器您的MEM,但我们的功能集严重不足。您的工作是修改代码用于生成特征,从而生成更合理、更完整、更高性能的一组功能。

注意:在这个项目中,我们希望您设计一个web应用程序来演示您的最终模型你需要设计一个网页,至少提供这样一个简单的功能:1)用户输入句子2) 输出命名实体识别结果。当然,您的强烈鼓励使用web应用程序。例如,您可以集成以前项目的工作,即,文本分类,到您的项目中(这将非常酷!)。您需要提交:可运行程序o您需要基于给定的启动器实现命名实体识别模型代码模型文件o一旦你完成了功能的设计并使其功能良好将自动转储一个模型文件('model.pkl')。我们将使用它来评估您的模型。Web应用程序o您还需要开发一个web应用程序(自由式,编程无限制语言)来演示您的NER模型或甚至更多的NLP函数。o显然,在构建web时,您需要学习如何调用您的python项目应用报告o你应该完成一份报告,介绍你在这个项目上的工作。

你的报告应该包含以下内容:

§引言;§方法、实施和额外考虑的说明优化您的模型;§对调查结果的评估和讨论;

2.§结论和未来工作建议。演示o你需要在课堂上做8分钟的演示,介绍你接下来的工作通过3分钟的问答环节。演示文稿的内容可以参考报告。起动机代码在入门代码中,我们为您提供了三个简单的入门功能,但您应该能够以大幅改进它们。我们建议使用正交信息进行实验,地名录和周围的文字,我们也鼓励你超越这些思考建议。您将要修改的文件是MEM.py向代码中添加功能您将使用给定的上一个标签在给定的位置为单词创建特征。你可以以序列中的任何单词(及其相对位置)为条件,而不仅仅是当前单词因为它们都被观察到了。除前一个标签外,您不能以任何其他标签为条件。您需要为每个功能指定一个唯一的名称。系统将在培训中使用此唯一名称以设置该功能的权重。在测试时,系统将使用此功能的名称以及用于做出分类决策的权重。要包括的功能类型你的特征不应该仅仅是单词本身。这些功能可以表示的任何属性单词、上下文或附加知识。例如,一个单词的大小写可以很好地预测一个人的名字,所以你可能想添加捕获给定单词是否为小写、Titlecase、CamelCase、ALLCAP等的功能。def

功能(self、words、previous_label、position):功能={}“”“基线功能”“”current_word=单词[位置]功能['has_(%s)'%current_word]=1features['prev_label']=previous_label如果current_word[0].supper():功能['Titlecase']=1#=====TODO:在此处添加您的功能=======##...#================TODO:完成================#

返回功能3.想象一下你看到了“珍妮”这个词。除了单词本身的功能(如上所述)之外,您可以添加一个功能来指示它处于标题大小写中,例如:你可能会在测试集中遇到一个未知单词,但如果你知道它以大写字母开头那么这可能是有助于正确预测的证据。选择正确的特征是自然语言处理的重要组成部分。这是一种艺术作为科学:有些试错是不可避免的,但你应该看到你的准确性随着你的进步而提高添加新类型的功能。代  写CISC3025自然语言处理项目功能的名称与ID号没有区别。您可以使用为只要它是独一无二的。例如,可以使用“case=Title”而不是“Titlecase”。运行程序我们为您提供了一套培训和一套发展计划。我们将运行您的程序在一个看不见的测试集上,所以你应该尽量让你的功能尽可能通用。你的目标应该是在dev集上增加F1,这是精度和召回率的调和平均值。可以使用三个不同的命令标志(“-t”、“-d”、“-s”)分别进行训练、测试和显示。这些标志可以单独使用,也可以联合使用。如果按原样运行程序,则应看到以下培训过程:之后,它可以在开发集上打印出你的分数。您还可以给它一个额外的标志-s,并让它显示详细的示例结果。第一列是单词,最后两列是程序对单词的概率的预测$python run.py-d正在测试分类器。

f_score=0.8715精度=0.9641召回=0.7143精度=0.9642如果current_word[0].supper():

功能['Titlecase']=1$cd NER$python运行.py-t正在训练分类器。。。

===>训练(5次迭代)迭代对数似然精度---------------------------------------
1 -0.6931
5 0.055
2 -0.0938
3 0.946
3 -0.0813
4 0.968
4 -0.07136 0.969最终-0.0633
0 0.9694.PERSON或O。

星号“*”表示金牌结果。这将有助于您进行错误分析和正确定位您的功能。在哪里进行更改?1.MEM.py中的函数“features()”2.您可以在run.py中修改“自定义”部分,以便更有效地进行调试正确地需要注意的是,您最终提交的模型应至少在20岁以下接受培训迭代。3.您可能需要在类MEM()中添加一个函数“predict_sentence()”来输出预测并与您的web应用程序集成。除此之外的更改,如果你选择进行任何更改,都应该谨慎进行。分级作业将根据你的代码、报告进行评分,最重要的是期末

考试演示

$python run.py-s单词P(PERSON)P(O)----------------------------------------E

U 0.0544*0.9456废品0.0286*0.9714德语0.0544*0.9456调用0.0286*0.9714至0.0284*0.9716抵制0.0286*0.9714英国0.0544*0.9456羔羊0.0286*0.9714. 0.028
1 *0.9719Peter*0.4059 0.5941布莱克本*0.5057 0.4943布鲁塞尔0.4977*0.50231996-08-2
2 0.0286 *0.97140.0544*0.9456欧洲人0.0544*0.9456佣金0.0544*0.9456所述0.0258*0.9742关于0.0283*0.9717星期四0.0544*0.9456它0.0286*0.9714#====自定义======β=0.5MAX_ITER=5#最大训练迭代BOUND=(0,20)

#样本的所需位置边界#==========================5.

提示早点开始!如果您的目标是完美的分数。概括您的功能。例如,如果您要添加上面的“case=Title”功能,请思考关于是否存在任何未被特征捕获的模式。“案例=标题”特写“奥戈尔曼”?当你添加一个新功能时,想想它的权重是正还是负用于PERSON和O标记(这是此分配的唯一标记)。

标签:功能,0.0286,CISC3025,py,0.0544,单词,处理,0.9456,自然语言
From: https://www.cnblogs.com/meryo/p/18112609

相关文章

  • stable diffusion 预处理器解释大全,不断更新
    Canny硬边缘黑色背景带有白色边缘的单色图像;Depth深度灰度图像,黑色代表深区域,白色代表浅区域,Normal常规法线图,表示物体的凹凸纹理,常用在3D模型的绘制上;OpenPose姿态生成角色动作姿态的骨架图MLSD直线黑色背景上带有白色直线的单色图像;Lineart线稿黑色......
  • Rust vs C++:2024,谁更懂错误处理?
    讲动人的故事,写懂人的代码「席双嘉,听说你的C++项目又因为忘了检查返回值导致内存泄漏,又加班了?」周五中午,在国内某科技巨头熙熙攘攘的员工餐厅,贾克强半开玩笑地戳了戳坐在隔壁的席双嘉,眼神中满是戏谑。贾克强,一个热衷于Rust的程序员,总是乐于挑战和探索新技术的边界。而席......
  • 合合信息推出国央企智能文档处理解决方案,AI赋能信创国产化
    信息时代,数字化转型已成为推动经济高质量发展的关键力量。国央企是国民经济的重要支柱,其数字化转型进程关乎着自身与产业链上下游企业的共同发展。文档的智能化处理可有效提升信息流转的效率、促进知识的沉淀与传承,是企业数字化转型的重要环节。 近期,合合信息基于人工智能技......
  • 【群晖】NASTOOL-自动化处理影音视频工具
    【群晖】NASTOOL-自动化处理影音视频本文主要从获取、部署、使用、配置等方面进行手把手教学如何使用nastool工具进行影音视频自动化处理。从此靠别繁琐的网上各个网址找资源-下载-复制-改名-刮削等操作。准备DSM7.1(我使用的是群晖7.1系统,不管是白群还是黑群都是可......
  • Python机器学习实验 数据处理之Numpy
    一、实验目的1.了解numpy库的基本功能2.掌握Numpy库的对数组的操作与运算二、实验工具:1.Anaconda2.Numpy三、Numpy简介Numpy的英文全称为NumericalPython,指Python面向数值计算的第三方库。Numpy的特点在于,针对Python内建的数组类型做了扩充,支持更高维度的数......
  • array_merge 和 [] 追加元素在处理数组时的区别
    $array1=[['id'=>1,'name'=>'商品A','quantity'=>2],['id'=>2,'name'=>'商品B','quantity'=>1],];$array2=[['id'=>3,�......
  • 使用QuerryMapper条件查询器进行分页模糊查询,当想要渲染的数据需要两张表的字段该如何
    假如我们想要拿到新闻表的所有数据和发布新闻的用户名称的数据1.创建两张表,其中新闻表的authorId引用用户表的外键id,(这是一张新闻表)(这是一张用户表)author不在这个数据库表中,使用@TableField(exist=false)这个注解,表示这个字段不在新闻表里,用于业务处理。2.拿到分页......
  • Mybatis流程分享-II 配置处理,构建environment 信息
    序言通过章节一的讨论,我们知道Mybatis内部对于xml的解析过程具体如下:可以看到,在配置文件的解析过程中其会首先调用SqlSessionFactortyBuilder中的build方法,接着再调用XMLConfigBuilder的parse()方法,并最终返回一个Configuraion对象。进一步,又会调用SqlSessionFactortyBuilde......
  • 【论文、项目:人工智能系列】6数据预处理
    数据预处理的方法和应用下面是数据预处理的方法和应用:1.数据清洗:-删除异常值、缺失值和重复数据;-通过插值等方法填补缺失值;-改正数据不一致或错误(例如拼写错误和数据格式错误);-降噪使数据更干净。这些数据清洗方法可以应用于任何需要数据分析的数据集中。2.数据集......
  • 内存爆满的一些解决处理(简)
    ###服务器内存爆满的解决办法>由于我们购买的服务器或者挂机宝在一些情况下,配置很低。基本上都是1核1G的,1G的内存对于想要部署多个服务的我们肯定不够用,解决内存爆红十分有必要,下面是我的一些整理核总结,关于如何缓解内存问题####1.虚拟内存在大多数情况下,我们的内存很小......