什么是程序设计第二小组答案

来源:互联网 发布:java int super 编辑:程序博客网 时间:2024/05/02 19:41

c++学习团队( 张进昌 杜万智 王锴)第二次作业

一、一所大学,做一个学生信息管理系统,你觉得要怎么考虑?
学生管理系统需要处理的信息如学生的基本信息、每学年成绩
进行的主要操作时添加、删除和查找。
每个学生入学都会被分配一个学号,而且该学号是一组连续的值,所以可以用student类保存每个学生的信息和成绩。对学生的查询操作以按学号查询为主。而学号的编排是按照学校、学院、系、班级和个人组织的。所以可以按班级为单位建立一个student类动态数组,而把学院、系、班级用父子兄弟建立三级索引。另外,可以把学院、系、班级建立成索引存储到hash表中方便查询。
二、中学生英文作文,你怎么判断有多少错误单词?
判断单词是否错误,就必须参照字典。中学生英文作文,词汇量一般不会超过中学生课本的词汇表,大概有一万个单词。可以用平衡二叉树把这一万个单词组织起来,比如把第5000个单词作二叉树的根,把第2500个单词作为根的左子树,第7500个单词作为根的右子树,以次类推。另用hash表保存如系动词、助动词、语气词、代词等几百个常用单词。这样每从学生作文中读入一个单词,先在hash表中查询,如果没有则从字典的根开始比较,知道配备。否则,为错误单词。
三、对于两段中文文字,如果让你判断它们的相似程度,你觉得应该怎么判断?
分析问题:
语义的判定,经我们讨论还是要从语法结构的相似性来判断。
1、而两段中文文字的语义,可以分解为句子,在这两段中找到相关度最大的句子,判断它们的相似程度。
2、句子的语义相似性,需要把句子划分为主干。
3、最后,分析句子主干,就必须分析清楚词汇的相似性。
算法设计:
1、分词程序:
按照字典讲一句话的词汇按照内涵,分析清楚。比如“北京大学”不能被分解成“北京” “大学”两个词汇,另外像“非典型性肺炎”也不能分解为否定副词“非”和“典型性肺炎”。在字典中的词条要把同义词、反义词设为相关,比如“29届奥运会”和“北京奥运会为”同义词相关,“好”“坏”为反义相关。
2、分析句子相似性
先按照最简单的“主-谓-宾”为例。
a在第一段中,按顺序选定一句话
b按相关度最大原则,在第二段中找出对应的句子。
c分析这两句的相似性。
d重复a b c,直到第一段结束。
最大相关度,就是两句话的主语、谓语、宾语对应位置的词汇为同义、反义词。
最大相似性,就是两句话的主语同褒贬,谓语的否定副词个数加上宾语的否定修饰词个数奇偶性相同。
“我参加29届奥运会”和“我不能错过北京奥运会”语义一致。
“奇丑无比的她干坏事”与“美丽无比的她不做好事”语义相关,但相似性较差。
另外,像语法中的“把”字句和“被”字句;“杨贵妃是美女”和“美女是杨贵妃”这样集体名词、个体名词;“西施、杨贵妃、王昭君和貂蝉是四大美女” 和 “四大美女是西施、杨贵妃、王昭君和貂蝉”这样的定义与解释;语气词“吧” “呢” “吗” 应按照语义分配键值,来决定相似程度。
最后,按照相似性得出这两句话的相似值,0为最佳,反义最差。
3、分析段落
段落的相似度要依靠句子的相似度,将第2步中每句话的相似度取绝对值累加,如果与0接近就相似,差距很大就不想死。
总结
第三题分析效果的好坏,有几个决定因素:
1、分词词典的容量及精确度,需要大量的统计词汇使用习惯
2、对语法的深刻理解,各种句法、比喻、语气等
3、对文章组织结构的理解,如总分式等文章结构
本小组给出答案的不足:
算法考虑的是用语法结构的相似性来分析语义的相似性,这是一种方法,但明显很机械,而且没有考虑到文章的组织结构,一方面我们的语言学知识很有限,另一方面对自然语言处理得研究还不都。不足之处,希望老师不吝赐教!
 
原创粉丝点击