2005 年 6 月 22 日

杂记

自从上次冒泡儿之后又快一周了,时间怎么过得那么快?而且戏考已经快两周没有更新了。网上不忙了,自然是在网下忙活。好在要忙的功课就快忙完这一阵子了,一切都要恢复正常的状态了。 表情

发现一个非常严重的问题:电子邮件也越来越不稳定了。hotmail 一类的国外邮箱往 126 一类的国内邮箱发信,经常要反复多次才有可能成功。最让人奇怪的是用 126 给 126 发都不稳定。解释?稍微合理一些的解释就是国外 ip 地址来的邮件会更多地被国内的邮件系统误判为垃圾邮件;而另一番面,国内信箱来的邮件也多数被国外的系统误判(后者曾得到验证)。老天,鱼龙混杂的垃圾邮件时代,让正常的通信都变得麻烦起来。

前一阵子和一位老先生的剧本交流就因为这个中断了近一个月。 表情 据悉:“2003年,国内的邮件服务器共收到1500亿封垃圾邮件,尽管其中60%到80%被服务器过滤掉,但至少有470亿封最终流入用户的信箱”。这被过滤掉的八成就有小豆子发去的正常信件吧。

垃圾邮件?
垃圾邮件?

2005 年 5 月 12 日

小结

刚把戏考更新完,上一次更新是在大考将将要到来的时候,而考完就光顾着梨园百年琐记那边了。

今天经高人点醒,回家把程序的代码优化了一下,现在显示年历的速度比以前快了一大块。学到的:1、千万不可反复查询一个表格,要争取一次把要查的都查到,然后再进行处理;2、特定的排序方式可以通过定义一个包含顺序的表格并将其与要排序的内容合并来实现。比如按农历日期排序,可以:

"SELECT * FROM birth, chinesedays, chinesemonths WHERE birth.year=$y " .
"AND birth.cday=chinesedays.cday AND birth.cmonth=chinesemonths.cmonth " .
"AND birth.type ="农历" ORDER BY chinesemonths.month, chinesedays.day, " .
"birth.name"

其中 chinesedays 和 chinesemonths 包含了从初一到三十、正月到十二月的正确排序。

测试版虽然推出去了,但是现在看客居多,目前为止有两个人提供了资料(其中一个还是皇兄)。慢慢来吧,希望大家能摸索出使用的方法(复杂吗?需要写出帮助文档吗?有人会看帮助文档吗?)

现在每天多了个任务就是要往琐记里面添资料,一些是最近发生的,不能放过,一些就是根据传记、史料一类的东西填了。今天增加了照片功能,所以哪天还要抽空扫些人物照片,尽量找便装,实在没有就只能用剧照了。

深夜写 Blog 的情况不多,谁让放假了呢。就先熬到此吧。

2005 年 5 月 3 日

生活真美好

前些天 Cool Edit Pro 出了点儿问题,打开声音文件后,全是乱七八糟的杂音,即便原本是好的部分,复制再粘贴后,也变成一堆垃圾。今天把问题解决,原来硬盘的工作空间不多了,没有足够的地方让 Cool Edit Pro 施展。现在一切正常了。 表情

因为怀疑是 Cool Edit Pro 的问题,昨天换成其继承人 Adobe Audition 1.5 (以前用过 1.0,那会儿 Adobe 刚把 Syntrillium Software 买过来,无非换了层皮而已),还没有花太多时间摸索,不过这个比 1.0 要强多了。

另一个好事儿是来自天津人民广播电台,以前录其戏曲频率,只有周末偶尔能连续录上若干个小时,现在不仅平时也可以很顺利地录上十几个小时,而且天津台的音量最近下调到了合适的水平,不像以前吵得要命,用 Cool Edit 打开一看全溢出来了。虽然大部分都是音配像的录音,但是还是有些盼头儿,而且现在有的音配像录音也有残缺,比如以前有些从电视录的过程中死机或者中断。昨天捕捉到马连良《斩郑文》的录音,现在网上这出录音关键唱处都有明显中断。改天整理出来。

今天发现显卡降温用的风扇坏掉了,怀疑电脑有时候死机与显卡过热有关,立刻换了个新的,希望能够减少死机的次数吧。

其实,人应该是很容易满足的,当一些不顺不好的事情发生后,就更觉得平常的日子是美好了。相信,三天后期末考试结束后,小豆子就更可以享受美好的生活了。 表情

2005 年 4 月 2 日

内存啊,内存

真好,今天把主电脑的内存升级到了1GB 表情 (原来768mb,现换下一条旧的256mb,添上新的512mb,保留原来的一条512mb)。电脑发展的速度忒快了,现在家里存的7年前的电脑,还是32mb的内存呢……而且现在512mb的内存的价格只是半年前的一半。

整理剧本的时候当然感觉不到这新增加的256mb的好处,过些天整理录音,就会有效果了。

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 月 5 日

垃圾邮件

今天收到一封垃圾邮件——其实每天都会收到非常多的垃圾,既然拿到这里来说自然和戏考有关了。信件内容如下:

There appears to be a problem on this page of your site.
On page http://www.xikao.com/content/header.htm
when you click on “编号”,
the link to http://www.xikao.com/net/number.htm
gives the error: Not found.

As recommended by the Robot Guidelines, this email is to explain our robot’s visit to your site, and to let you know about one of the problems we found. We don’t store or publish the content of your pages, but rather use the link information to update our map of the World Wide Web.

Are these reports helpful? I’d love some feedback. If you prefer not to receive these occasional error notices please let me know.

Roy Bryant

呵呵,下面自然是他们的网站啦,贩卖网站检查工具的。很“友好”是吧。他们当然希望有反馈信息啦,这样他们就能继续发垃圾。真是胡说八道,戏考网站上压根儿就没有那个 /net/number.htm 的链接,编号的目录是在 /content/number.htm 下面。混淆视听。骗子越来越鬼了,但只要坚持原则,就不会上当了。 表情

2005 年 1 月 4 日

Adobe Acrobat 7

刚发现,去年年底的时候,Adobe 推出了 Acrobat 7。现在软件更新的速度可够快的了,考虑一下是要升级到新的版本呢,还是继续用现有的6。反正做出来的 PDF 剧本大家都可以读——向下兼容就是好。