语料在线系统开发的一得之见:
1)现场计算是灾难性的,使用索引是必须的。在此之前我写了一个实现了单机版colligator全部功能的web版(case, sort, count,span等功能都有),可是无论如何优化速度都没法提高,对于web程序,让用户等待10秒以上是不可忍受的。因为有大量数据只有通过现场计算才能获得,对于处理百万词级的语料库几乎是不可行的。必须使用索引才可以,可是目前无论如何索引,都只能满足确定性的搜索,如:单词、词组。这些可以提前检索好,并以索引形式保存起来。杨伯翰大学的BNC在线应该就是这样做的。可是对于非确定的检索,如:正则表达式,目前的索引技术就无能为力了。即使是确定性的检索,如果加入span,case,sort,count等信息,对同一输入值(如look)的索引将爆炸式地增长,几乎也是不可行的,这也是为什么大多数在线语料库不能提供这些功能的原因,即使单独提供case都很困难。如果把Look, LOOK, LOok, LOOk, lOok...当做不同的单词,索引数将是原来的2的n次方倍(n是单词的长度)
2)目前的索引和引擎技术都不太适合语料库研究,只能满足某一方面的需求,因为他们是为信息检索服务,而不是语言检索,很多我们关注的语言细节被忽略掉了。要对大规模语料库进行各类复杂的检索,需要定制引擎及索引格式。