看板: BudaTech ◎ 佛典电子化讨论    板主: HeavenChow
阅读文章: 第 1114/2032 篇 | 上篇 | 下篇 | 回覆 | 转寄 | 转贴 | m H d | 返回
发信人: DavidChiou.bbs@cbs.ntu.edu.tw (Post Gateway), 信区: BudaTech
标  题: Re: 一些说明
发信站: 由 狮子吼站 收信 (Wed Dec 31 12:52:31 1997)


寄件人: dnstudio@m2.dj.net.tw [=InterNet E-mail=]
标  题: Re: 一些说明
发信站: 国际网路信件 (Tue Dec 30 09:38:11 1997)


邱大刚 写道:
> 
> ==> 於 Heaven (Heavenchow@Lion) 文中述及:
> :   2.若字元大於 128 , 则此字元及下一个字元属於中文. 检查此中文是否是需要的.
> :   3.若是小於 128 , 以英文及符号看待. (包括换行码)
> :   4.处理完这个中文或英文, 再换下一个字.
> 
>     这□我个人有些小经验, 或许可以提升搜寻速率(如果要搜寻
> 的文件相当多, 而使用的程式语言较高阶的话):
> 
>     "可试著先不管中英文, 全部用英文的搜寻方式. 找出的结果再以中文
>      filter 来除去误判的即可. "
> 
这是 cbs 上的做法?
真要提高速度, 则须要建立 index table, 而且利用如 hashing table 的
资料结构, search 时先 search 此 table 再根据其 index 找到 which file
which line in the file, the string position within the line.

>     另外, 对於较短篇的比对(所以佛典搜寻□case 或许不适用),
> 有时若使用较高阶的语言(ex: Perl), 或许可先将所有的中文字间以空
> 白隔开, 然後再以空白为字元的间隔单位. 这个好处是英文及中文的比对
> 可一次解决掉, 而且是依照中英的相对顺序. 不过效率如何我没有仔细评
> 估过, 仅供参考.
> 
如果用的是英文版的 search engine, 被 search 的中文file用这个处理
应是个好方法(如早期的 netscape 显示中文的问题), 如果自己写程式,
还是用 128 来区别就可以了, 不过其他的 string manupitation 就
都可能自己要动手写了.

>     附带一提的是, 在单教授以前发展的 cgrep 上, 有 "换行搜寻" 的
> 功能. 例如说以下文件:
> "观自在菩萨行深般
>  若波罗蜜多时照见"
>     要找出 "般若" 的话, 就必须具有换行搜寻的功能(这在 maha
> 的测试也有指出), 因此可以考虑未来加入此一功能(据我所知,
> 单教授 cgrep 的作法好像是 define 一个某大小的 buffer, 能将
> 前一行的最後面 n 个字元和这一行接起来, 一同进行比对?)
> 
末学上个月发表的 fts (中文全文检索程式)也做了 "换行搜寻"的功能,
不过是用前一行的尾与後一行的头来控制, 当初思考的时间不少但最後的
algorithm 却不是很复杂.

ps: fts 在如来网上面 http://www.dharma.org.tw/tool/fts95.zip

阅读文章: 第 1114/2032 篇 | 上篇 | 下篇 | 回覆 | 转寄 | 转贴 | m H d | 返回

□ 台大狮子吼佛学专站  http://buddhaspace.org