什么钟声写一用几个动词写一句话

七下1-2单元精读课文热身练习之一
第1课& 从百草园到三味书屋 
&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&
第一部分: 基础锤炼(20分)
1、《从百草园到三味书屋》选自《___________》。作者鲁迅,本名_________,字__________,他的著作很多,有小说、杂文、散文、诗歌等,都收在《&&&&&&&&&&
》里。&&&&&
给加线的字注音,据拼音写汉字。(4分)&&
觅食&&&&&&&&&
人声鼎沸&&&&&&&&&&&
菜q&&&&&&&&&&&
竹shāi
3、根据上下文,填出恰当的动词。(6分)
( )开一块雪,露出地面,用一枝短棒( )起一面大的竹筛来,下面( )些秕谷,棒上( )一条长绳,人远远地(
)着,()鸟雀下来啄食,走到竹筛底下的时候,将绳子一( ),便( )住了。&
4、下面是关于“仁义”的名句,请挑选一句,试作理解。(4分)
①仁远乎哉,我欲仁,斯仁至矣。&&&&&&&&&&&
         —— 孔子
②生变我所欲,义亦我所欲,二者不可得兼,舍生而取义者也。&&&
——& 孟子
③舍生取义今日事,人间遍种自由花。&&&&&&&&&&&&&&&&&&&&&&&&&
——& 陈毅
我的理解:&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
5、品味:“轻捷的叫天子忽然从草间直直窜向云霄里去了。”你是怎样理解“直窜向云霄里去”?(2分)
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&
&&&&&&&&第二部分&&
课文精读 (30分)
(一)阅读下面文段,然后答题。
&不必说碧绿的菜畦,光滑的石井栏,高大的皂荚树,紫红的桑葚;也不必说鸣蝉在树叶里长吟,肥胖的黄蜂伏在菜花上,轻捷的叫天子(云雀)忽然从草间直窜向云霄里去了。单是周围的短短的泥墙根一带,就有无限趣味。油蛉在这里低唱,蟋蟀们在这里弹琴。翻开断砖来,有时会遇见蜈蚣;还有斑蝥,倘若用手指按住它的脊梁,便会啪的一声,从后窍喷出一阵烟雾。何首乌藤和木莲藤缠络着,木莲有莲房一般的果实,何首乌有臃肿的根。……如果不怕刺。还可以摘到覆盆子,像小珊瑚珠攒成的小球,又酸又甜,色味都比桑葚要好得远。
文段中可以概括全段主要内容的一个句子是:&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&
7、这段文字从多角度进行描写,分别按提示各找一个例句。& (4分)
①写视觉的:&&&&&&&&&&&&&&&&&&&&&&&
&②写听觉的:&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
③写味觉的:&&&&&&&&&&&&&&&&&&&&&&&
&&④写触觉的:&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
8、下面两句话中加点的字能否改为括号内的字,为什么?(4分)
轻捷的叫天子(云雀)忽然从草间直窜(飞)向云霄里去了。
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&
9、“油蛉在这里低唱,蟋蟀们在这里弹琴”运用了什么修辞手法?请运用这种手法再续写两个句子。(4分)
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
(二)阅读下面的文段,然后答题。
①我不知道为什么家里的人要将我送进书塾里去了,而且还是全城中称为最严厉的书塾。也许是因为拔何首乌毁了泥墙吧,也许是因为将砖头抛到间壁的梁家去了吧,也许是因为站在石井栏上跳了下来吧……都无从知道。总而言之:我将不能常到百草园了。__________________________。……
②第二次行礼时,先生便和蔼地在一旁答礼。他是一个高而瘦的老人,须发都花白了,还戴着大眼镜。我对他很恭敬,因为我早听到,他是本城中极方正,质朴,博学的人。
10、第①段表达了作者怎样的感情?请你从文中找出最能表达感情的一句。(4分)
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
11、结合你童年生活的经历,发挥想象,填写①段的最后一句,与上文衔接自然。(4分)
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
12、你觉得第①段在全文结构中起什么作用?(4分)
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
13、、第②段中能表现先生特点的是哪几句?试着用自己的语言概括。(3分)
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
3、语段仿写:
第2课& 爸爸的花儿落了
&&&&&&&&&&&&&&&&&&
第一部分:基础锤炼 (20分)
&1、本文选自小说《&&&&&&&&&&&&&
》,作者是台湾作家&&&&&&&&
2、据拼音写汉字(4分)&
衣jīn___&&&&&&&
叮zhǔ___&&&&
lǎn___惰&&&&&&
zh&___栏&
3、理解下面句中加线词的不同含义。(4分)
①那么爸爸不也可以硬着头皮从床上起来到期我们学校去吗?
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
②我虽然很害怕,但是也得硬着头皮去。
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
4、仿照歌词写一段话(4分)
长亭外,古道边,芳草碧连天。问君此去几时来,来时莫徘徊!天之涯,地之角,知交半零落,人生难得是欢聚,惟有别离多……
仿写:&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
5、“我默念着:爸爸的花儿落了,我已不再是小孩子。”你认为这话有什么含义?(3分)
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
6、假如让你寄478元钱给叔叔为你买一套学习用书,你怎样写要汇的金额。(3分)
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
第二部分:课文精读 (30分)
(一)阅读下面文段,然后答题。
韩主任已经上台了。他很正经地说:“各位同学都毕业了,就要离开上了六年的小学到中学去读书,做了中学生就不是小孩子了,当你们回到小学来看老师的时候,我一定高兴地看到你们都长高了,长大了……”
于是我唱了五年的骊歌,现在轮到同学们唱给我们送别:“长亭外,古道边,芳草碧连天。问君此去几时来,来时莫徘徊!天之涯,地之角,知交半零落,人生难得是欢聚,惟有别离多……”
我哭了,我们毕业生都哭了。我们是多么喜欢长高了变成大人,我们又是多么怕呢!当我们回到小学来的时候,无论长得多么高,多么大,老师!你们要永远拿我当个孩子呀!
7、请简要概括韩主任讲话的内容。(2分)
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
8、“我唱了五年的骊歌”的含义是什么?(3分)
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
9、你知道“长亭外,……惟有别离多……”这首歌的词表达了怎样的感情?(2分)
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
10、试着分析“芳草碧连天”一句的意境。(3分)
&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
12、“我们是多么喜欢长高了变成大人,我们又是多么怕呢!”你有这样的感受吗?试着说一下。(3分)
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
(二)阅读下面选段,回答问题。
快回家去!快回家去!拿着刚发下来的小学毕业文凭——红丝带子系着的白纸筒,催着自己,我好像怕赶不上什么事情似的,为什么呀?
进了家门,静悄悄的,四个妹妹和两个弟弟都坐在院子里的小板凳上。他们在玩沙土,旁边的夹竹桃不知什么时候垂下了好几枝子,散散落落的,很不像样,是因为爸今年没有收拾它们——修剪、捆扎和施肥。
&瘦鸡妹妹还在抢燕燕的小玩意儿,弟弟把沙土灌进玻璃瓶里。是的,这里就数我大了,我是小小的大人。我对高说:&&
“老高,我知道是什么事了,我就去医院。”我从来没有过这样的镇定,这样的安静。
&……看那垂落的夹竹桃,我默念着:&&
爸爸的花儿落了。
&& 我已不再是小孩子。
13、选文的开头为什么反复地写“快回家去!”的心理活动?(3分)
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
14、“我好像怕赶不上什么事情似的”这话有什么言外之意?作者的心情怎样?(2分)
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
15、画线句子的景物描写有什么作用?&(3分)&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
16、“我”回到家里,为什么不直接写爸爸去世,而写弟弟妹妹在石榴树下玩闹?(3分)&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
17、文中倒数第二段“爸爸的花落了”有什么含义?它与文章的中心有什么关系?(3分不开&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
18、末尾说“我已不再是小孩子”,从哪些地方可以看出?(3分)
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
第5课& 《伤仲永》
&&&&王安石
&&&&&&&&&&&&&&&&&&&&&&&
第一部分:基础锤炼 (20分)
1、给下列加点字注音(4分)
邑人&&&&&&&&&
扳&&&&&&&&&&
环谒&&&&&&&&&&&
2、解释下列句子中加点字的含义& (4分)
①未尝识书具______&&&&&&&&&&&&&&&
②即书诗四句______
③宾客其父______&&&&&&&&&&&&&&&&&
④余闻之______
3、朗读下面句子,指出停顿不正确的是&&
(2分)&&&
①自是/指物/作诗立就&&&&&&&&&&&&&&
②借旁近/与之,即/书诗四句
③其诗/以养父母、收族/为意&&&&&&&&
④日扳仲永/环谒于邑人&&&&&&&
4、联系上下文,具体指出“其”所指代的内容。(4分)
①即书诗四句,并自为其名。&&&&&&&&&&&&&
②其文理皆有可观者。
③其诗以养父母、收族为意。&&&&&&&&&&&&&
④稍稍宾客其父。
5、文房四宝是指&&&&&
、&&&&&&&&
四种文具。(4分)
6、你知道哪些关于学习的名人名言,请写出三至四条。(4分)
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
第二部分:课文精读 (30分)
(一)阅读下面文段,回答问题。
金溪民方仲永, 世隶耕。仲永生五年,未尝识书具,忽啼求之。父异焉,借旁近与之,即书诗四句,
并自为名。其诗以养父母、收族为意,传一乡秀才观之。自是指物作诗立就,其文理皆有可观者。邑人奇之,稍稍宾客其父,或以钱币乞之。父利其然也,日扳仲永环谒于邑人,不使学。
余闻之也久。明道貌岸然中,从先人还家,于舅家见之,十二三矣。令作诗,不能称前时之闻。又七年,还自扬州,复到舅家问焉。曰:“泯然众人矣”。
7、找出文段中的通假字,并注音释义。(3分)
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
8、翻译下列句子(4分)
①邑人奇之,稍稍宾客其父,或以钱币乞之。
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
②父利其然也,日扳仲永环谒于邑人,不使学。
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
9、方仲永具有怎样非凡的才能?作者这样写的用意是什么?(4分)
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
10、是什么原因造成方仲永最后“泯然众人矣”?(3分)
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
11、找出文中最能突出仲永天资非凡的三个副词,试作品析。(3分)
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
12、下列句子中,属于正面描写的有____属于侧面描写的有____(2分)
未尝识书具,忽啼求之。&&&&&&&&&&&&&&&&&
B. 即书诗四句, 并自为其名。
自是指物作诗立就。&&&&&&&&&&&&&&&&&&&&
D. 其文理皆有可观者。
E. 邑人奇之,稍稍宾客其父,或以钱币乞之。 F. 父异焉。
(二)阅读下面选段,回答问题。
王子曰:仲永之通司悟,受之天也。其受之天也,贤于材人远矣。座之为众,则其受于人者不至也。彼其受之天也,如此而已其贤也,不受这人,且为众人;今夫不受之天,固众人,又不受这人,得为众人而已耶?
13、选段中点明方仲永成为“众人”原因的一句是:&&&&&&&&&&&&&&&&&&&&&&
14、“仲永这通悟,受之天也。”请从上文中找出得出这一结论的根据。(3分)
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
15、方仲永由一名天才儿童成为一名普通人,谁该对此负责?请谈谈你的看法。(3分)
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
16、选段是一段议论,以往的课文删去了这段,删去好不好?说说你的看法。(2分)
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
第7课& 最后一课
第一部分&&
基础锤炼(20分)
1.《最后一课》的作者_________&&,他是__________&&(国籍)作家。(4分)
2.《最后一课》的文体是&_______,这种文体的三要素是______&&、_____&&、______&&(4分)。
3.《最后一课》通过对人物语言、行动的描写,体现了人物_________的思想感情。(2分)
4。给下列加点字注音:(6分)
哽住(&&&&&&
皱边(&&&&&&&&&
惩罚(&&&&&&&&
&&&&&&)&&&&&&&
踱步(&&&&&&&&&
郝叟(&&&&&&&&
5.“最后一课”指的是:(   )(4分)
A、最后一堂语法课& B、最后一堂历史课C、最后一堂法语课&
D、最后一堂习字课
第二部分&&
课文精读(30分)
一 阅读下面文段,回答问题。(11分)
(-)&我本来打算趁那一阵&&偷偷地溜到我的座位上去;可是那一天,一切偏安安静静的,跟星期日的早晨一样。我从开着的窗子望进去,看见同学们都在自己的座位上了;韩麦尔先生呢,踱来踱去,胳膊底下挟着那怕人的铁戒尺。我只好推开门,当着大家的面走进静悄悄的教室。你们可以想象,我那时脸多么红,心多么慌!
可是一点儿也没有什么。韩麦尔先生见了我,很温和地说:“快坐好,小弗郎士,我们就要开始上课,不等你了。”
我一纵身跨过板凳就坐下。我的心稍微平静了一点儿,我才注意到,[我们的老师今天穿上了他那件挺漂亮的绿色礼服,打着绉边的领结,带着那顶绣边的小黑丝帽.这套衣帽,他只在督学来视察或者发奖的日子才穿戴。]而且整个教室有一种不平常的的气氛。最使我吃惊的,后边几排一向空着的板凳上坐着好些镇上的人,他们也跟我们一样&&。其中有郝叟老头儿,戴着他那顶三角帽,有从前的镇长,从前的邮递员,还有些旁的人。个个看来都很忧愁。郝叟还带着一本书边破了的初级读本,他把书翻开,摊在膝头上,书上横放着他那副大眼镜。&
6.划横线的语句中共有四个错别字,请指出来,并加以改正。(4分)
(1)( )()(2)( )( )&(3)( )( )(4)( )( )
7.选择恰当的词填在横线上。(3分)
(1)我本来打算趁这一阵&&(A.喧闹B.热闹C.喧哗)偷偷地溜到我的座位上去
(2)而且整个教室有一种不寻常的&&(A.安静B.严肃C.肃静)的气氛。
(3)最使我吃惊的,后边几排一向空着的板凳上坐着好些镇上的人,他们也跟我们一样&&。(A安静B.严肃C.肃静)
8.本文段通过各种异常现象的描绘,造成一种山雨欲来风满楼之势。请具体指出课堂上有什么异常现象。(4分)
__________________________________________________________________________&
二 阅读下面文段,回答问题(19分)
(二)&忽然教堂的钟敲了12下。祈祷的钟声也响了。窗外又传来普鲁士兵的号声——他们已经收操了。韩麦尔先生站起来,脸色惨白,我觉得他从来没有这么高大。
“我的朋友们啊,”他说&“我一我一”
但是他哽住了,他说不下去了。
他转身朝着黑板,拿起一支粉笔,使出全身的力量,写了两个大字&&&“法兰西万岁!”
然后他呆在那儿,头靠着墙壁,话也不说,只向我们做了一个手势&“放学了,一你们走吧。”&
9.选段开头写教堂的钟声、祈祷的钟声、普鲁士兵的号声,有什么作用?(3分)
__________________________________________________________________________
10“忽然教堂的钟声敲了十二下”,加点词“忽然”表明了什么?(3分)
__________________________________________________________________________
11.韩麦尔先生此时此刻有无数的话要说,但是他咬住了,说不下去了,是因为()(3分)
A.时间太少了,满肚的话一时无从说起
B.他要离开他教的学生,心情难过&
C.想到课一结束,他就要离开这生活了四十年的地方,心中有说不出的惆怅&
D.最后一课即将结束,从此将和祖国的语言告别,留恋与失望、痛苦与悲愤到了极点,千言万语不知从何说起&
12.韩麦尔先生“使出全身的力量,写了两个大字:‘法兰西万岁!”’这一细节描写表现了韩麦尔先生怎样的思想感情?(3分)
___________________________________________________________________________
13.文中“我觉得他从来没有这么高大”的含义是什么?(3分)
__________________________________________________________________________
14.常见的破折号的用法有以下几种:(4分)
A.表示解释说明&B.表示语音延长&C.表示意思的递进&D.表示语意的转折。判断下列两句中的破折号是哪种用法。
(1)“我的朋友们啊,”他说,“我——我—(&&
)&(2)“散学了,——你们走吧。”(& )
第10课& 木兰诗
第一部分&&
基础锤炼(20分)
1.下列加点字注音有误的一项是(  )(4分)
A.可汗(k& h&n)辔头(p&i)鞍鞯(jiān)B.啾啾(jiū
jiū)朔气(su&)燕山(yān)C.云鬓(b&n)金柝(tu&)铠甲(kǎi)
&D.红妆(zhuāng)穿著(zhu&)傍地(b&ng)
2.下列句子中没有错别字的一项是(  )(4分)
A.昨夜见军贴,可汗大点兵&&
B、万里赴戎机,关山渡若飞 
C.出门看火伴,火伴皆惊忙&&
D、双兔傍地走,安能辩我是雄雌
3.下列句子中加点词解释有误的一项是(  )(4分)
A.愿为市鞍马  市:买&&&&
东市买骏马     市:集市
B.出郭相扶将   郭:外城&&&&
木兰不用尚书郎   不用:不愿作
C.朔气传金柝   朔:北方&&&&&&
策勋十二转     策勋:记功
D.军书十二卷   十二卷:十二本&&&
&赏赐百千强     强:有余
4.下列句子中没有用对偶手法的一项是(  )(4分)
A.当窗理云鬓,对镜贴花黄& B、雄兔脚扑朔,雌兔眼迷离
C.将军百战死,壮士十年归& D、策勋十二转,赏赐千百强
5.对诗句品味有误的一项是(  )(4分)
A.“万里赴戎机”:“万里”极言征程之远,“赴”表现动作之迅速、果敢。
B.“关山度若飞”:跨越飞和山,像飞一样,展现了木兰的矫健雄姿。
C.“朔气传金柝”:朔,指北方。用打更的声音在寒气中传送,表现军旅生活的单调、无聊。
D.“寒光照铁衣”:用寒光和铁衣,展示边关将士的英武风采。
第二部分&&
课文精读(30分)
阅读下面文段,然后答题。
万里赴戎机,关山度若飞。朔气传金柝,寒光照铁衣。将军百战死,壮士十年归。
归来见天子,天子坐明堂。策勋十二转,赏赐百千强。可汗问所欲,木兰不用尚书郎;愿驰千里足,送儿还故乡。
爷娘闻女来,出郭相扶将;阿姊闻妹来,当户理红妆;小弟闻姊来,磨刀霍霍向猪羊。开我东阁门,坐我西阁床,脱我战时袍,著我旧时裳,当窗理云鬓,对镜贴花黄。出门看火伴,火伴皆惊忙:同行十二年,不知木兰是女郎。
6.按提示将下列类型的句子各选一句。(3分)
(1)对偶句:__________________________________________________________________
(2)排比句:__________________________________________________________________
(3)夸张句:__________________________________________________________________
7.分别用一句话概括选文三段各段的内容。(6分)
&_______________________________________________________________________
________________________________________________________________________
________________________________________________________________________
8.选文第一段共三句话,第一句写_____________,第二句写__________,第三句写________________(6分)
9.选文第二段突出了木兰__________________高尚品格。(1分)
10.选文第三段既是故事的___________________,又是
___________,连用四个“我”字,体现木兰的_____________之情,也写出了全家的_______________气氛。(4分)
11.从选文看,文章略写_____________和______________,详写_______________,突出了木兰既有
______________,又有
__________________&的多重性格。(5分)
12.解释加点词的含义。(5分)
(1)朔气传金柝( & &
(2)出郭相扶将( & &
& ) (3)著我旧时裳( &
(4)对镜帖花黄( & &
&&&(5)出门看火伴(
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。写一个含有两个动词的句子_百度作业帮
写一个含有两个动词的句子
你问的问题本身 就有问题,你应该问
写一个含有两个动作的句子,而不是两个动词.
因为一个英语句子中是绝对不允许出现两个动词的,而有时候一个句子中往往需要两个动作,这个时候除谓语动词外,其它的动词就要构成相应的
动词不定式啊 现在分词啊 或 动名词来表达另外的动作了.
二楼写的那个句子解释一下:like 是谓语动词,而playing则是动名词,因为此句中出现了两个动作,所以play需要加上ing构成动名词,虽然加上了ing , 这个单词它名词化了,可是它依然表示一种动作.这个句子的意思就是
“我喜欢打乒乓球(桌球)”.然而有的同学可能要问了,“那么我也见过 I like
play table tennis 这个句子啊
是不是和它意思一样呢,解释一下你就明白了:此句我用的是 动词不定式做的宾语,因为like
是个标准的及物动词.记住一点,动词不定式都有一个逻辑将要的概念.就是说 I
play table
这个句子的意思是我喜欢将要去打桌球,表示打桌球这个动作可能呆会我就要去做.而用动名词表示的话,意思就是我喜欢打桌球这项运动,没有说我呆会可能要去打桌球,只是说我喜欢而已.
就这么点区别,希望你看了这么多不要头晕,好好学吧.呵呵用5至7个动词写一个游戏作文50字_百度知道
用5至7个动词写一个游戏作文50字
他弯着腰,篮球在他的哗礌糕啡蕹独革扫宫激手下前后左右不停地拍着,两眼溜溜地转动,寻找“突围”的机会。突然他加快了步伐,一会左拐,一会右拐,冲过了两层防线,来到篮下,一个虎跳,转身投篮,篮球在空中划了一条漂亮的弧线后,不偏不倚地落在筐内。
其他类似问题
作文的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁怎样写一个拼写检查器 by Peter Norvig
怎样写一个拼写检查器
上个星期, 我的两个朋友 Dean 和 Bill 分别告诉我说他们对 Google 的快速高质量的拼写检查工具感到惊奇.
比如说在搜索的时候键入
[speling], 在不到 0.1 秒的时间内, Google 会返回: 你要找的是不是 [spelling]. (Yahoo! 和
微软也有类似的功能).
让我感到有点奇怪的是我原想 Dean 和 Bill 这两个很牛的工程师和数学家应该对于使用统计语言模型构建拼写检查器有职业的敏感.
但是他们似乎没有这个想法.
我后来想了想, 他们的确没什么理由很熟悉统计语言模型. 不是他们的知识有问题, 而是我预想的本来就是不对的.
我觉得, 如果对这方面的工作做个解释, 他们和其他人肯定会受益. 然而像Google
的那样工业强度的拼写检查器的全部细节只会让人感到迷惑而不是受到启迪.
前几天我乘飞机回家的时候, 顺便写了几十行程序, 作为一个玩具性质的拼写检查器. 这个拼写检查器大约1秒能处理10多个单词, 并且达到 80%
的准确率. 下面就是我的代码, 用Python 2.5 写成, 一共21 行, 是一个功能完备的拼写检查器.
import re, collectionsdef words(text): return re.findall('[a-z]+', text.lower()) def train(features):& & model = collections.defaultdict(lambda: 1)& & for f in features:& & & & model[f] += 1& & return modelNWORDS = train(words(file('big.txt').read()))alphabet = 'abcdefghijklmnopqrstuvwxyz'def edits1(word):& & n = len(word)& & return set([word[0:i]+word[i+1:] for i in range(n)] + & & & & & & & & & & # deletion& & & & & & & &[word[0:i]+word[i+1]+word[i]+word[i+2:] for i in range(n-1)] + # transposition& & & & & & & &[word[0:i]+c+word[i+1:] for i in range(n) for c in alphabet] + # alteration& & & & & & & &[word[0:i]+c+word[i:] for i in range(n+1) for c in alphabet]) &# insertiondef known_edits2(word):& & return set(e2 for e1 in edits1(word) for e2 in edits1(e1) if e2 in NWORDS)def known(words): return set(w for w in words if w in NWORDS)def correct(word):& & candidates = known([word]) or known(edits1(word)) or known_edits2(word) or [word]& & return max(candidates, key=lambda w: NWORDS[w])
这段代码定义了一个函数叫 correct, 它以一个单词作为输入参数, 返回最可能的拼写建议结果. 比如说:
&&& correct('speling')'spelling'&&& correct('korrecter')'corrector'
拼写检查器的原理, 一些简单的概率知识
我简单的介绍一下它的工作原理. 给定一个单词, 我们的任务是选择和它最相似的拼写正确的单词. (如果这个单词本身拼写就是正确的,
那么最相近的就是它自己啦). 当然, 不可能绝对的找到相近的单词, 比如说给定 lates 这个单词, 它应该别更正为 late 呢
还是 latest 呢? 这些困难指示我们, 需要使用概率论, 而不是基于规则的判断. 我们说, 给定一个词
在所有正确的拼写词中, 我们想要找一个正确的词
c, 使得对于
w 的条件概率最大, 也就是说:
argmaxc P(c|w)
上面的式子等价于:
argmaxc P(w|c) P(c)
因为用户可以输错任何词, 因此对于任何 c 来讲, 出现 w 的概率 P(w) 都是一样的,
从而我们在上式中忽略它, 写成:
argmaxc P(w|c)
这个式子有三个部分, 从右到左, 分别是:
1. P(c), 文章中出现一个正确拼写词 c 的概率, 也就是说, 在英语文章中, c 出现的概率有多大呢?
因为这个概率完全由英语这种语言决定, 我们称之为做语言模型.
好比说, 英语中出现 the 的概率& P('the')
而出现& P('zxzxzxzyy') 的概率接近0(假设后者也是一个词的话).
2. P(w|c), 在用户想键入 c 的情况下敲成 w 的概率. 因为这个是代表用户会以多大的概率把 c 敲错成 w, 因此这个被称为误
3. argmaxc, 用来枚举所有可能的 c 并且选取概率最大的, 因为我们有理由相信,
一个(正确的)单词出现的频率高,
用户又容易把它敲成另一个错误的单词, 那么, 那个敲错的单词应该被更正为这个正确的.
有人肯定要问, 你笨啊, 为什么把最简单的一个 P(c|w) 变成两项复杂的式子来计算? 答案是本质上
P(c|w) 就是和这两项同时相关的, 因此拆成两项反而容易处理. 举个例子, 比如一个单词 thew 拼错了. 看上去 thaw
应该是正确的, 因为就是把
a 打成 e 了. 然而, 也有可能用户想要的是 the, 因为 the 是英语中常见的一个词, 并且很有可能打字时候手不小心从 e
滑到 w 了.
因此, 在这种情况下, 我们想要计算& P(c|w), 就必须同时考虑 c 出现的概率和从 c 到 w
把一项拆成两项反而让这个问题更加容易更加清晰.
现在, 让我们看看程序究竟是怎么一回事. 首先是计算 P(c),
我们可以读入一个巨大的文本文件, ,
这个里面大约有几百万个词(相当于是语料库了).
这个文件是由
中可以获取的一些书,
语料库构成. (当时在飞机上我只有福尔摩斯全集, 我后来又加入了一些, 直到效果不再显著提高为止).
然后, 我们利用一个叫 words 的函数把语料中的单词全部抽取出来, 转成小写, 并且去除单词中间的特殊符号. 这样,
单词就会成为字母序列, don't
就变成 don 和 t 了.1 接着我们训练一个概率模型, 别被这个术语吓倒, 实际上就是数一数每个单词出现几次. 在
函数中, 我们就做这个事情.
def words(text): return re.findall('[a-z]+', text.lower()) def train(features):& & model = collections.defaultdict(lambda: 1)& & for f in features:& & & & model[f] += 1& & return modelNWORDS = train(words(file('big.txt').read()))
实际上, NWORDS[w] 存储了单词 w 在语料中出现了多少次. 不过一个问题是要是遇到我们从来没有过见过的新词怎么办.
假如说一个词拼写完全正确, 但是语料库中没有包含这个词, 从而这个词也永远不会出现在训练集中. 于是, 我们就要返回出现这个词的概率是0.
这个情况不太妙, 因为概率为0这个代表了这个事件绝对不可能发生, 而在我们的概率模型中, 我们期望用一个很小的概率来代表这种情况.
实际上处理这个问题有很多成型的标准方法, 我们选取一个最简单的方法: 从来没有过见过的新词一律假设出现过一次. 这个过程一般成为”平滑化”,
因为我们把概率分布为0的设置为一个小的概率值. 在语言实现上, 我们可以使用Python collention 包中的 defaultdict
类, 这个类和 python 标准的 dict (其他语言中可能称之为 hash 表) 一样, 唯一的不同就是可以给任意的键设置一个默认值,
在我们的例子中, 我们使用一个匿名的 lambda:1 函数, 设置默认值为 1.
然后的问题是: 给定一个单词 w, 怎么能够枚举所有可能的正确的拼写呢? 实际上前人已经研究得很充分了, 这个就是一个编辑距离的概
这两个词之间的编辑距离
定义为使用了几次插入(在词中插入一个单字母), 删除(删除一个单字母), 交换(交换相邻两个字母),
替换(把一个字母换成另一个)的操作从一个词变到另一个词.
下面这个函数可以返回所有与单词 w 编辑距离为 1 的集合.
def edits1(word):& & n = len(word)& & return set([word[0:i]+word[i+1:] for i in range(n)] + & & & & & & & & & & # deletion& & & & & & & &[word[0:i]+word[i+1]+word[i]+word[i+2:] for i in range(n-1)] + # transposition& & & & & & & &[word[0:i]+c+word[i+1:] for i in range(n) for c in alphabet] + # alteration& & & & & & & &[word[0:i]+c+word[i:] for i in range(n+1) for c in alphabet]) &# insertion
显然, 这个集合很大. 对于一个长度为 n 的单词, 可能有n种删除, n-1中对换, 26n 种 (译注: 实际上是 25n
种)替换 和 26(n+1) 种插入 (译注: 实际上比这个小, 因为在一个字母前后再插入这个字母构成的词是等价的). 这样的话,
一共就是 54n + 25 中情况 (当中还有一点重复). 比如说, 和 something 这个单词的编辑距离为1 的词按照这个算来是
511 个, 而实际上是 494 个.
一般讲拼写检查的文献宣称大约80-95%的拼写错误都是介于编译距离 1 以内. 然而下面我们看到,
当我对于一个有270个拼写错误的语料做实验的时候, 我发现只有76%的拼写错误是属于编辑距离为1的集合.
或许是我选取的例子比典型的例子难处理一点吧. 不管怎样, 我觉得这个结果不够好, 因此我开始考虑编辑距离为 2 的那些单词了.
这个事情很简单, 递归的来看, 就是把 edit1 函数再作用在 edit1 函数的返回集合的每一个元素上就行了. 因此, 我们定义函数
def edits2(word):& & return set(e2 for e1 in edits1(word) for e2 in edits1(e1))
这个语句写起来很简单, 实际上背后是很庞大的计算量: 与 something 编辑距离为2的单词居然达到了 114,324 个.
不过编辑距离放宽到2以后,
我们基本上就能覆盖所有的情况了, 在270个样例中, 只有3个的编辑距离大于2. 当然我们可以做一些小小的优化:
在这些编辑距离小于2的词中间,
只把那些正确的词作为候选词. 我们仍然考虑所有的可能性, 但是不需要构建一个很大的集合, 因此, 我们构建一个函数叫做 known_edits2,
这个函数只返回那些正确的并且与
w 编辑距离小于2 的词的集合:
def known_edits2(word):& & return set(e2 for e1 in edits1(word) for e2 in edits1(e1) if e2 in NWORDS)
现在, 在刚才的 something 例子中, known_edits2('something') 只能返回 3 个单词:
'smoothing', 'something' 和 'soothing', 而实际上所有编辑距离为 1 或者& 2 的词一共有
114,324 个. 这个优化大约把速度提高了 10%.
最后剩下的就是误差模型部分 P(w|c) 了. 这个也是当时难住我的部分. 当时我在飞机上, 没有网络,
也就没有数据用来构建一个拼写错误模型. 不过我有一些常识性的知识: 把一个元音拼成另一个的概率要大于辅音 (因为人常常把 hello 打成
hallo 这样); 把单词的第一个字母拼错的概率会相对小, 等等. 但是我并没有具体的数字去支撑这些证据. 因此, 我选择了一个简单的方法:
编辑距离为1的正确单词比编辑距离为2的优先级高, 而编辑距离为0的正确单词优先级比编辑距离为1的高. 因此, 用代码写出来就是:
(译注: 此处作者使用了Python语言的一个巧妙性质: 短路表达式. 在下面的代码中, 如果known(set)非空,
candidate 就会选取这个集合, 而不继续计算后面的; 因此, 通过Python语言的短路表达式, 作者很简单的实现了优先级)
def known(words): return set(w for w in words if w in NWORDS)def correct(word):& & candidates = known([word]) or known(edits1(word)) or known_edits2(word) or [word]& & return max(candidates, key=lambda w: NWORDS[w])
correct 函数从一个候选集合中选取最大概率的. 实际上, 就是选取有最大 P(c) 值的那个.
所有的 P(c) 值都存储在 NWORDS 结构中.
现在我们看看算法效果怎么样. 在飞机上我尝试了好几个例子, 效果还行. 飞机着陆后, 我从牛津文本档案库 (Oxford Text
Archive)下载了
Roger Mitton 的 . 从这个库中, 我取出了两个集合, 作为我要做拼写检查的目标. 第一个集合用来作为在开发中作为参考,
第二个作为最后的结果测试.
也就是说, 我程序完成之前不参考它, 而把程序在其上的测试结果作为最后的效果. 用两个集合一个训练一个对照是一种良好的实践,
至少这样可以避免我通过对特定数据集合进行特殊调整从而自欺欺人. 这里我给出了一个测试的例子和一个运行测试的例子.
实际的完整测试例子和程序可以参见
tests1 = { 'access': 'acess', 'accessing': 'accesing', 'accommodation':& & 'accomodation acommodation acomodation', 'account': 'acount', ...}tests2 = {'forbidden': 'forbiden', 'decisions': 'deciscions descisions',& & 'supposedly': 'supposidly', 'embellishing': 'embelishing', ...}def spelltest(tests, bias=None, verbose=False):& & import time& & n, bad, unknown, start = 0, 0, 0, time.clock()& & if bias:& & & & for target in tests: NWORDS[target] += bias& & for target,wrongs in tests.items():& & & & for wrong in wrongs.split():& & & & & & n += 1& & & & & & w = correct(wrong)& & & & & & if w!=target:& & & & & & & & bad += 1& & & & & & & & unknown += (target not in NWORDS)& & & & & & & & if verbose:& & & & & & & & & & print '%r =& %r (%d); expected %r (%d)' % (& & & & & & & & & & & & wrong, w, NWORDS[w], target, NWORDS[target])& & return dict(bad=bad, n=n, bias=bias, pct=int(100. - 100.*bad/n), & & & & & & & & unknown=unknown, secs=int(time.clock()-start) )print spelltest(tests1)print spelltest(tests2) ## only do this after everything is debugged
这个程序给出了下面的输出:
{'bad': 68, 'bias': None, 'unknown': 15, 'secs': 16, 'pct': 74, 'n': 270}{'bad': 130, 'bias': None, 'unknown': 43, 'secs': 26, 'pct': 67, 'n': 400}
在270个测试样本上 270 , 我大约能在13秒内得到 74% 的正确率 (每秒17个正确词), 在测试集上, 我得到 67%
正确率 (每秒 15 个).
更新: 在这篇文章的原来版本中, 我把结果错误的报告高了. 原因是程序中一个小bug.
虽然这个 bug
很不起眼, 但我实际上应该能够避免. 我为对阅读我老版本的这篇文章的读者造成感到抱歉. 在 spelltest
源程序的第四行, 我忽略了if bias:&
并且把 bias 默认值赋值为0. 我原来想: 如果 bias 是0 , NWORDS[target] += bias
这个语句就不起作用. 而实际上, 虽然这个语句没有改变 NWORDS[target] 的值,
这个却让 (target in NWORDS) 为真. 这样的话, spelltest
就会把训练集合中那些不认识的正确拼写的单词都当成认识来处理了, 程序就会"作弊". 我很喜欢 defaultdict
所以在程序中使用了它, 如果使用 dicts 就不会有这个问题了.2
结论: 我达到了简洁, 快速开发和运行速度这三个目标, 不过准确率不算太好.
怎样才能做到更好结果呢? 让我们回过头来看看概率模型中的三个因素:& (1) P(c); (2)
P(w|c); and (3) argmaxc.
我们通过程序给出错误答案的那些例子入手,
看看这三个因素外, 我们还忽略了什么.
P(c), 语言模型. 在语言模型中, 有两种问题会造成最后的错误识别. 其中最严重的一个因素就是 未知单词.
在训练集合中, 一共有15个未知单词, 它们大约占了5%; 在测试集合中, 有43个未知词, 它们占了11%. 当把 spelltest
的调用参数 verbose 设置为 True 的时候: 我们可以看到下面的输出:
correct('economtric') =& 'economic' (121); expected 'econometric' (1)correct('embaras') =& 'embargo' (8); expected 'embarrass' (1)correct('colate') =& 'coat' (173); expected 'collate' (1)correct('orentated') =& 'orentated' (1); expected 'orientated' (1)correct('unequivocaly') =& 'unequivocal' (2); expected 'unequivocally' (1)correct('generataed') =& 'generate' (2); expected 'generated' (1)correct('guidlines') =& 'guideline' (2); expected 'guidelines' (1)
在这个结果中, 我们可以使用看到 correct 函数作用在那些拼错的单词上的结果. (其中 NWORDS
中单词出现次数在括号中),& 然后是我们期望的输出以及出现的次数. 这个结果告诉我们, 如果程序根本就不知道
'econometric' 是一个单词, 它也就不可能去把 'economtric' 纠正成 'econometric'.
这个问题可以通过往训练集合中加入更多语料来解决, 不过也有可能引入更多错误. 同时注意到最后四行, 实际上我们的训练集中有正确的单词,
只是形式略有不同. 因此, 我们可以改进一下程序, 比如在动词后面加 '-ed' 或者在名词后面加 '-s' 也是合法的.
第二个可能导致错误的因素是概率: 两个词都出现在我们的字典里面了, 但是恰恰我们选的概率大的那个不是用户想要的.
不过我要说的是这个问题其实不是最严重的, 也不是独立发生的, 其他原因可能更加严重.&
我们可以模拟一下看看如果我们提高语言模型, 最后结果能好多少. 比如说, 我们在训练集上小"作弊"一下. 我们在
spelltest 函数中有一个参数叫做 bias, 实际上就是代表把正确的拼写词多添加几次, 以便提高语言模型中相应的概率. 比如说,
在语料中, 假设正确的词出现的频率多了1次, 或者10次, 或者更多. 如果我们增加 bias 这个参数的值,
可以看到训练集和测试集上的准确率都显著提高了.
在两个集合上我们都能做到大约 80-90%. 这个显示出如果我们有一个好的语言模型, 我们或能达到准确率这个目标. 不过,
这个显得过于乐观了, 因为构建一个更大的语言模型会引入新的词, 从而可能还会引入一些错误结果, 尽管这个地方我们没观察到这个现象.
处理未知词还有另外一种办法, 比如说, 假如遇到这个词: "electroencephalographicallz",
比较好的纠正的方法是把最后的 "z" 变成 "y", 因为 '-cally' 是英文中很常见的一个后缀. 虽然
"electroencephalographically" 这个词也不在我们的字典中, 我们也能通过基于音节或者前缀后缀等性质给出拼写建议.
当然, 这种简单前后缀判断的方法比基于构词法的要简单的多.
P(w|c) 是误差模型. 到目前为止, 我们都是用的一个很简陋的模型: 距离越短, 概率越大.
这个也造成了一些问题, 比如下面的例子中, correct 函数返回了编辑距离为 1 的词作为答案,
而正确答案恰恰编辑距离是 2:&
correct('reciet') =& 'recite' (5); expected 'receipt' (14)correct('adres') =& 'acres' (37); expected 'address' (77)correct('rember') =& 'member' (51); expected 'remember' (162)correct('juse') =& 'just' (768); expected 'juice' (6)correct('accesing') =& 'acceding' (2); expected 'assessing' (1)
举个例子, 程序认为在 'adres' 中把 'd' 变成 'c' 从而得到 'acres' 的优先级比把 d 写成 dd
以及 s 写成 ss 的优先级高, 从而作出了错误的判断. 还有些时候程序在两个编辑距离一样的候选词中选择了错误的一个, 比如:
correct('thay') =& 'that' (12513); expected 'they' (4939)correct('cleark') =& 'clear' (234); expected 'clerk' (26)correct('wer') =& 'her' (5285); expected 'were' (4290)correct('bonas') =& 'bones' (263); expected 'bonus' (3)correct('plesent') =& 'present' (330); expected 'pleasant' (97)
这个例子给我们一个同样的教训: 在 'thay' 中, 把 'a' 变成 'e' 的概率比把 'y' 拼成 't' 大.
为了正确的选择 'they', 我们至少要在先验概率上乘以 2.5, 才能使得最后 they 的几率超过 that, 从而选择
显然, 我们可以用一个更好的模型来衡量拼错单词的概率. 比如说, 把一个字母顺手打成两个,
或者把一个元音打成另一个的情况都应该比其他打字错误更加容易发生. 当然, 更好的办法还是从数据入手: 比如说, 找一个拼写错误语料,
然后统计插入; 删除; 交换和变换在给定周围字母情况下的概率. 为了采集到这些概率, 可能我们需要非常大的数据集. 比如说,
如果我们带着观察左右两个字母作为上下文, 看看一个字母替换成另一个的概率, 就一共有 266 种情况, 也就是大约超过
3 亿个情况. 然后每种情况需要平均几个证据作为支撑, 因此我们知道10亿个字母的训练集. 如果为了保证更好的质量,
可能至少100亿个才差不多.
需要注意的是, 语言模型和误差模型之间是有联系的. 我们的程序中假设了编辑距离为 1 的优先于编辑距离为 2 的.
这种误差模型或多或少也使得语言模型的优点难以发挥. 我们之所以没有往语言模型中加入很多不常用的单词, 是因为我们担心添加这些单词后,
他们恰好和我们要更正的词编辑距离是1, 从而那些出现频率更高但是编辑距离为 2 的单词就不可能被选中了. 如果有一个更加好的误差模型,
或许我们就能够放心大胆的添加更多的不常用单词了. 下面就是一个因为添加不常用单词影响结果的例子:
correct('wonted') =& 'wonted' (2); expected 'wanted' (214)correct('planed') =& 'planed' (2); expected 'planned' (16)correct('forth') =& 'forth' (83); expected 'fourth' (79)correct('et') =& 'et' (20); expected 'set' (325)
枚举所有可能的概率并且选择最大的: argmaxc.
我们的程序枚举了直到编辑距离为2的所有单词. 在测试集合中, 270个单词中, 只有3个编辑距离大于2, 但是在测试集合中,
400个中却有23个. 他们是:
purple perpulcurtains courtensminutes muinetssuccessful sucssufulhierarchy heiarkyprofession preffesonweighted wagtedinefficient ineffiectavailability avaiblitythermawear thermawherenature natiordissension desentionunnecessarily unessasarilydisappointing dissapoitingacquaintances aquantencesthoughts thortscriticism citisumimmediately imidatlynecessary necaserynecessary nessasarynecessary nessisaryunnecessary unessessaynight niteminutes muiuetsassessing accesingnecessitates nessisitates
我们可以考虑有限的允许一些编辑距离为3的情况. 比如说, 我们可以只允许在元音旁边插入一个元音, 或者把元音替换, 或者把 c
写成 s 等等. 这些基本上就覆盖了上面所有的情况了.
第四种, 也是最好的一种改进方法是改进 correct& 函数的接口, 让他可以分析上下文给出决断.
因为很多情况下, 仅仅根据单词本身做决断很难, 这个单词本身就在字典中, 但是在上下文中, 应该被更正为另一个单词. 比如说:&
correct('where') =& 'where' (123); expected 'were' (452)correct('latter') =& 'latter' (11); expected 'later' (116)correct('advice') =& 'advice' (64); expected 'advise' (20)
如果单看 'where' 这个单词本身, 我们无从知晓说什么情况下该把 correct('where')
返回 'were' , 又在什么情况下返回 'where'. 但是如果我们给 correct 函数的是:'They where
going', 这时候 "where" 就应该被更正为 "were".
上下文可以帮助程序从多个候选答案中选出最好的, 比如说:&
correct('hown') =& 'how' (1316); expected 'shown' (114)correct('ther') =& 'the' (81031); expected 'their' (3956)correct('quies') =& 'quiet' (119); expected 'queries' (1)correct('natior') =& 'nation' (170); expected 'nature' (171)correct('thear') =& 'their' (3956); expected 'there' (4973)correct('carrers') =& 'carriers' (7); expected 'careers' (2)
为什么 'thear' 要被更正为 'there' 而不是 'their' 呢?& 只看单词本身, 这个问题不好回答,
不过一旦放句子 'There's no there thear' 中, 答案就立即清楚明了了.
要构建一个同时能处理多个词(词以及上下文)的系统, 我们需要大量的数据. 所幸的是 Google 已经公开发布了最长
5个单词的所有序列数
据库, 这个是从上千亿个词的语料数据中收集得到的. 我相信一个能达到 90% 准确率的拼写检查器已经需要考虑上下文以做决定了. 不过,
这个, 咱们改天讨论 :)
我们可以通过优化训练数据和测试数据来提高准确率.
我们抓取了大约100万个单词并且假设这些词都是拼写正确的. 但是这个事情并不这么完美, 这些数据集也可能有错.
我们可以尝试这找出这些错并且修正他们. 这个地方, 修正测试集合并不困难. 我留意到至少有三种情况下, 测试集合说我们的程序给出了错误的答案,
而我却认为我们程序的答案比测试集给的答案要好, 比如说: (实际上测试集给的三个答案的拼写都不正确)
correct('aranging') =& 'arranging' (20); expected 'arrangeing' (1)correct('sumarys') =& 'summary' (17); expected 'summarys' (1)correct('aurgument') =& 'argument' (33); expected 'auguments' (1)
我们还可以决定英语的变种, 以便训练我们的程序, 比如说下面的三个错误是因为美式英语和英式英语拼发不一样造成的,
(我们的训练集两者都有):
correct('humor') =& 'humor' (17); expected 'humour' (5)correct('oranisation') =& 'organisation' (8); expected 'organization' (43)correct('oranised') =& 'organised' (11); expected 'organized' (70)
后的一个改进是让程序运行得更加快一点. 比如说, 我们用编译语言来写, 而不是用解释语言. 我们可以使用查找表,
而不用Python提供的通用的 dict 对象, 我们可以缓存计算结果, 从而避免重复计算, 等等. 一个小建议是: 在做任何速度优化之前,
先弄清楚到底程序的时间花在什么地方了.&
Roger Mitton 写了一个关于拼写检查的综述.
Jurafsky 和 Martin 在他们编撰的教材 Speech and
Language Processing 中很好的讲述了拼写检察.
Manning 和 Schutze 在他们编撰的 Foundations of Statistical
Natural Language Processing 中很好的讲述了统计语言模型, 但是好像没讲拼写检查.
(至少目录中没提).
& 计划含有很多有趣的材料, 比如一些测试数据, 看上去比我用的数据好.&
我原始的程序一共 20行, 不过 Ivan Peev 指出说我的
string.lowercase, 在某些 locale 和某些版本的 Python中会包含 a-z 以外的更多字母,
因此我加了一个字母表, 我也可以使用 string.ascii_lowercase.
感谢 Jay Liang 指出一共 54n+25 个编辑距离为 1的词, 而不是 55n+25 个.
感谢Dmitriy Ryaboy 指出 NWORDS[target] += bias bug.
其他编程语言实现
我发表这个文章后, 很多人用其他语言实现了. 我的目的是算法而不是 Python. 对于那些比较不同语言的人, 这些其他语言实现可能很有意思:
Erlang: by Federico
Haskell: by
Perl: by riffraff
Scheme: by Shiro
Scheme: by Jens
其他自然语言翻译
by Yasushi Aoki
文 by Petrov Alexander
1. 这个地方显然作者是为了简化程序, 实际上don't 一般都按照 dont 来处理.
2. 如果程序把训练集合中正确的目标词存放到 NWORDS 中, 就等价于提前知道答案了, 如果这个错误的词编辑距离为
2 之内没有其他正确词, 只有一个这个答案, 程序肯定会选取这个答案. 这个就是所谓的"作弊".}

我要回帖

更多关于 用几个动词写一段话 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信