存档:2005年1月

2005年1月31日

Shell Script

定理:如果需要经常重复做某一项工作,那么就一定有让电脑自动完成的方法。

国际标准时间2月1日,又到了每月初提供最新下载包的时候了。今天一犯懒,写了个 Shell Script,扫描指定目录下当月新增的剧本,打包,然后移动到相应的目录,再把该目录打包。整个脚本运行起来不到1分钟,就把每月需要10分钟左右的手工工作做完了,而且在仔细审查了代码之后,可以肯定不会出错。 表情

当前目录分布情况:pdf 和 txt 目录包含每月产生的剧本,同级 script 目录下的 PDF Format 和 TXT Format 包含所有的剧本,按照编号(1□□□、2□□□等等)分出子目录。脚本的原理就是先把当月的文件打包,然后按字母顺序排列组合出可能的文件名集,若该类文件名存在,则移至相应的目录,并把该目录打包。仅此而已。注意:文件名第二位有字母的需要先处理。比如7h*若留在后面,就会与更广泛的7*所吻合而被提前处理掉。

帖出来用于处理 pdf 格式的脚本 zippdf,处理 txt 的大同小异。有在 Unix 下面玩儿的朋友欢迎交流经验。

#!/bin/sh
# Go to monthly directory.
cd pdf/
# Remove old zips, if there is any.
rm -f *.zip
# Pack this month's files.
zip newp *
# Go through from 7a* to 7z*
for findex in a b c d e f g h i j k l m n o p q r s t u v w x y z;
do
filename="7$findex*.pdf"
dirname="7""$findex""00p"
# If the pattern matches:
if ls $filename
then
# Move files to the corresponding directory
mv -f ./$filename "$HOME/script/PDF Format/$dirname/"
cd "$HOME/script/PDF Format/$dirname/"
# Pack this directory
zip -r "$HOME/pdf/""$dirname"".zip" *
cd "$HOME/pdf/"
fi
done
# Go through from 9a* to 9z*
for findex in a b c d e f g h i j k l m n o p q r s t u v w x y z;
do
filename="9$findex*.pdf"
dirname="9""$findex""00p"
# If the pattern matches:
if ls $filename
then
# Move files to the corresponding directory
mv -f ./$filename "$HOME/script/PDF Format/$dirname/"
cd "$HOME/script/PDF Format/$dirname/"
# Pack this directory
zip -r "$HOME/pdf/""$dirname"".zip" *
cd "$HOME/pdf/"
fi
done
findex=1
# Go through from 1* to 9*
while [ $findex -le 9 ]
do
filename="$findex*.pdf"
dirname="$findex""000p"
# If the pattern matches:
if ls $filename
then
# Move files to the corresponding directory
mv -f ./$filename "$HOME/script/PDF Format/$dirname/"
cd "$HOME/script/PDF Format/$dirname/"
# Pack this directory
zip -r "$HOME/pdf/""$dirname"".zip" *
cd "$HOME/pdf/"
fi
findex=`expr $findex + 1`
done

《太湖山》剧照辨认

曾经在感叹富连成兴衰的时候发过一张《太湖山》的剧照,后来和皇兄谈起此事,猜测谁可能是哪个,最后的结论是:这种问题只能去请教吴小如教授。于是乎,发信给枯石瘦木大哥,相烦讨教。在他回家过年前,有幸去拜会刘曾复教授,问来了如下结果:

《太湖山》剧照
《太湖山》剧照

左一:谭盛英(据刘曾复说为戏中与花逢春一起的某主角老生;据小豆子手中陈富瑞《太湖山》藏本,里面主角老生似乎只剩下个公孙胜了,但是按剧照的打扮,应不是)、左二(后):段富寰(非段盛环)、左三(前):李盛佐(太湖山强匪,下跪着)、左四(后)、右二(后):戴盛来、张盛桐(哪个是哪个不确认)、右四(后):周盛明(以上三人为校尉)、右三(前)孙盛文(李俊)、右一:高盛麟(花逢春)

另稍来录音一份,为当时辨认时录下的。刘老真可谓博学多识,而且记忆力如此之好,只从剧照便能记起这一班富、盛的名字,且与原书不差(更值得一提的就是原书误作的“段盛环”,考富社名单,确知有段富寰而无段盛环),真是让人钦佩不已。

这才是真正做学问的。衷心祝愿老先生健康长寿,顺祝春节快乐!

枯石大哥回家了,看他论坛里的帖子说,在家的时节上网也就不方便了。不管怎样,也要谢谢了! 表情

2005年1月29日

“人言可畏”

不要误会,实在是想不出更好的词来形容这个话题了,与“人言可畏”的真正含义毫无关系。

这些天和网友金缘通电子邮件,谈到一个问题,就是剧本的录入。金缘问:“是怎么录入啊?不会是一个一个字的往里敲吧!我没有接触过这方面工作,但是别人建网站时,大量的资料是用扫描仪扫进去,再用汉字识别软件把它转换成文字文件,再使用语音软件边念边校对。您们也是这样做的吗?”

这里涉及同一类的两个问题:文字识别和文字阅读。在文字阅读方面,现在的技术已经算是比较成熟了,至少在小豆子接触的中、英两种文字的文字到语音的程序,都是很流畅的(除了个别特殊发音的地方有时会念错)。而在文字识别方面,英文的识别已经较以前有了很大进步了。但由于中文比英文在字形上复杂得多,中文的光学字符识别(OCR)技术,小豆子认为离成熟尚早——尤其是对付像剧本这样有着特殊情况的输入源。

首先,为了提高识别的正确率,需要让程序“学”很多词句的组合,在一个地方看不清的时候,就要程序根据上下文来判断当前所缺字符字形与哪些字相似、此处该出现的词的词性以及其概率,然后做出选择。而由于剧本文学与普通的文字有着很多不同,如果按照普通文档来识别,错误率还是很高的。

其次,由于老书是繁体字,加上年头久远,纸质发黄,哪里是字哪里是纸分得不是那么明显,若强行采用黑白扫描,字中间就可能会是一团漆黑,使得电脑更难辨认。尤其是中文字库之大,形似而差几笔的字很多。所以这也是老剧本识别率低的一个原因。

但这也不是说敲字就保证没有错别字,只是这样产生的错别字更容易找出来(特指拼音,五笔字型或其他按字形输入的输入法,所产生的错别字有些类似于 OCR 的结果)。比如“已然”,如果用扫描,可能被扫描成“己然”,而若校对时候没有仔细看,就会被忽略掉;拼音如果拼错了,拼错的字在字形上与正确的字有很大差别,所以比较容易看出来。虽然直接敲字在录入的时候可能会费一些时间,但是在整理、校对和格式化的时候却能够省时。因此,两种方法只能说各有利弊而已。

参加录入剧本的朋友很多,在校对的时候,能够看出哪些是用拼音敲的,哪些是用扫描仪或五笔录入的。条条大路通罗马,这都是数字化的手段,不存在一定要使用什么录入方法的问题。当然不可否认,对于一些页面干净的新书,有些 OCR 程序还是有很高识别率的。

皇兄的二次校对对那些形似而实非的字是很敏感的,最近抓住一个“隹”,应为“佳”,实在厉害!

人的思想、语言比电脑要复杂得多得多了,在文字、语音识别、文字之间的翻译等等与人言有关的工作上,电脑永远也不能代替人(所以您若是位翻译,大可不必因为某个号称更强的翻译软件的出现而担心会丢掉饭碗)。电脑以及为人工智能而奋斗的人们,应该是最能体会“人言可畏”的吧。 表情

2005年1月27日

你回来了?

今天整理《西厢记》剧本,田汉1958年创作的,应该被列在“新编历史剧”的行列。不过,将近半个世纪过去了,当年的“新编”,有些已经成了“传统剧目”,比如《白蛇传》、《杨门女将》什么的。

不过那一时期的新编与现在的新编有很大不同,那个时候的新编传统的元素很多,京剧的程式化也保留了很多,可以说是在传统戏的基础上进行的改编;而今天的新编戏倒更像是以西洋歌剧为基础改编过来的。

比如《西厢记》中,崔忠回来见崔夫人,崔夫人问:“崔忠回来了?”崔忠说:“回来了。”这在传统戏中可以说是最常见的一组问答模式了,即甲上来专门等乙,乙正好回来,然后甲问:“你回来了?”,乙说:“回来了。”这种对话要是放在生活中就不对了,因为这是明显的废话,没回来能和你对话吗?(当然,两个人在打手机的话,就正常了。)

类似的问答模式还有如乙把事情经过讲说一遍,甲说:“怎么讲?”乙再把所说的最后一句重复一遍,甲就明白了。

这当然就是艺术与生活的区别,也就是京剧不同于什么西洋歌剧、话剧、小品等等的所在。现在的编导们,真可谓费力不讨好,编出来的东西既不能流传后世(后世?能持续三年就不错了),挣个名,也不能搞活市场,挣个利。没名没利还招骂,如果不是什么缺心眼儿、“有什么疯病”的话,实在想不出还能有什么原因让他们年复一年地这样搞下去。 表情

2005年1月26日

《武家坡》前的前情

《武家坡》徐东霞饰王宝钏、徐东明饰薛平贵
《武家坡》徐东霞饰王宝钏、徐东明饰薛平贵

薛平贵在武家坡前的一场调戏,道德与否,人情怎样,暂且不论,单说就京戏而言,可谓经典中的经典了(尤其是在现在演员所会传统戏不多的情况下,更是被翻过来、调过去地演)。不过这里有个问题。

不知道从什么时候开始,薛平贵在窑前的大段唱的词儿改了:

(西皮导板)提起当年泪不于,
(西皮原板)夫妻们寒窑受尽了熬煎。
自从降了红鬃战,
唐王驾前去讨官。
官封我后军都督府,
你的父上殿把本参。
自从盘古
(西皮流水板)立地天,
哪有岳父把婿参?
西凉国,造了反,
薛平贵倒做了先行官。
两军阵前遇代战,
她把我擒下了马雕鞍。
多蒙老王赐恩典,
反将公主配良缘。
西凉的老王把驾晏,
众文武保我坐银安。
那—日驾坐银安殿,
宾鸿大雁口吐人言。
手执金弓银弹打,
打下了半幅血罗衫。
展开罗衫从头看,
才知道寒窑受苦的王宝钏。
不分昼夜往回赶,
为的是回家夫妻得团圆。
三姐不信从头算,
连去带来十八年。

那位说,小豆子啊,这段可不一直这么唱?不然,看一下老《戏考》:

(西皮导板)二月二日龙抬头,
(西皮原板)王三姐打扮彩楼前。
王孙公子有千万,
彩球单打薛平贵。
怀抱彩球相府转,
(西皮二六板)你父一见怒冲冠。
前门赶出薛平贵,
后门又赶王宝钏。
夫妻二人无投奔,
破瓦寒窑把身安。
楚江河下妖魔现,
红鬃烈马把人餐。
为丈夫擒了红鬃马,
唐王驾前讨封官。
封我殿前都督府,
你父一见把本参。
他说西凉造了反,
一封战表到长安。
唐王展开表文看,
吓坏了满朝的文武官。
苏龙、魏虎为元帅,
薛平贵倒作了先行官。
号炮三声崔前站,
平贵寒窑别宝钏。
王三姐难舍薛平贵,
平贵舍不得王宝钏。
马缰绳,剑砍断,
妻回寒窑夫奔西凉川。
三姐不信屈指算,
这连来带去有十八年。

不光老《戏考》,马连良、王玉蓉合灌的唱片中也是类似的唱法(大约因为唱片长度限制,精简了):

(西皮导板)二月二日龙发显,
(西皮原板)王三姐打扮彩楼前。
那王孙公子千千万,
彩球单打平贵男。
夫妻同把
(西皮流水板)相府转,
你的父一见怒冲冠。
西海岸,妖人显,
红鬃烈马把人餐。
为丈夫降了红鬃战,
你的父上殿把本参。
西凉国,造了反,
为丈夫倒做了先行的官。
校场以上把兵点,
平贵寒窑别宝钏。
王三姐舍不得薛平贵,
薛平贵怎舍得王宝钏。
马缰绳,剑砍短,
妻回寒窑夫奔西凉川。
三姐不信掐指算,
连去带来
(西皮散板)十八年。

三段唱,权且叫第一段为“流行唱法”,第二段、第三段为“老唱法”。这里的问题就是,哪种唱法要好一些呢?

首先,老唱法有其情感在里面,尤其是提到平贵别窑那部分,难舍难离,“马缰绳,剑砍短”,多少无奈尽在其中——一剑劈的哪里是缰绳,分明是十八年的光阴。流行唱法不但什么滋味都没有,而且让人一听:敢情要没那大雁骂薛平贵,这小子还不回来呢!虽然这也确是事实,但是很难想象,一个远途归来且已经弄明白自己妻子“贞节如何”的“当军的”,会对妻子说这种如同白开水的流水帐,而不是一些怀旧、温存的话语。

其次,薛平贵唱这一段,是因为王宝钏让这他位“当军的”说明白怎么回事情。那么对于王宝钏来说,十八年前窑前一别之后,薛平贵发生什么自然她是不知道了。按照流行唱法,你薛平贵和她讲什么又是“代战公主”、又是“坐银安”,有什么用呢?而像老唱法,把窑前告别这种只有他们两个人参与的前情“说的明白”,才能让当事人信服啊。

另外,按照流行唱法,在窑外面薛平贵提了与“公主配良缘”,王宝钏一点儿反应都没有;进窑之后,薛平贵唱到“西凉有个代”突然停下来,王宝钏还那儿傻乎乎地说“带什么来了”,就显得不对了。同样的,在外面薛平贵已经说了“坐银安”,进来之后王宝钏还要因为薛平贵所说得天下而吃惊,也就不对了。而老唱法,没有提这些王宝钏根本不知道的事情,到后面再提就显得很顺畅了。

没有考证过《武家坡》和《汾河湾》产生的先后顺序,不过想来可能流行唱法多少借鉴了《汾河湾》里面叙述往事的手法,即叙述一些投军之后的事情。但,这些实在不是女主人公所能知道的,那她们有怎能凭这些去判断真伪呢?

不过流行唱法已经流行,且应该是在解放前就流行了。之所以如此判断,是因为去台的艺人也是如是唱,所以当不是因为大陆为破除封建迷信的吃人红毛儿马而单方面改动的。现如今凡是有唱京剧的地方,十有八九是有会唱《武家坡》的;会唱《武家坡》的,十有八九是按流行唱法去唱。老唱法,恐怕也就残留在老的媒介上了。

2005年1月24日

100出剧本

今天更新了戏考,发现自己已经不知不觉地录入了100出剧本了。当然实际数目比这个要多,因为有些录入好了还没有更新上;只是说现在在网站上体现出来的是:有100出剧本是由小豆子录入的。很有成就感。 表情

把首页的 index.htm 重新写了一下,直接用两个 frameset,其中一个再套一个 frameset 实现了现有的布局,也就是省去了一个页面的加载。

补习完了

好一个月黑风高杀人夜,凌晨了…… 表情

晚上的补习还是有不少成果的:根据错误报告提交上来的内容,改正了《白蛇传》中的一个错别字和“梨园百年琐记”中的一个错别字。啊,“梨园百年琐记”有近两年没更新了,时间晃得真快。给合意太爷发了一些剧照,并扫描了两出剧本发给录入人。又回复了一些信。怎么就这个周末显得那么忙呢?皇兄那边倒是正相反,闲得很,所有二次校对的都完了,已经开始拿好几年前的剧本开刀了。