TA的每日心情 | 擦汗 2020-7-3 13:51 |
---|
签到天数: 19 天 [LV.4]偶尔看看III
|
发表于 2021-2-9 19:12:23
|
显示全部楼层
我目前用C#做,i5的CPU大约10秒不到可以提取陆谷孙英汉大词典中的1万单词解释。; e, \; ~5 n9 s( X' O% e& G4 \
作者没有说明提取一个子MDX有什么意义,我主要是用来定制我的通读而非查阅用的词典。比如我可以制作一个牛津高阶6级词汇的词典,里面词头不超过6级只有几千个且释义正文都是牛高中的。提取完之后稍微处理一下可以直接在浏览器中打开。所有浏览器中Chrome渲染速度最快,1000单词的朗文4词典大约1分钟就好了,之后你可以慢慢享受鼠标滚动阅读而毫无迟滞感。还有切图版的图片词典,那制作出来就和看纸版书基本一样的感觉了。6 ~3 u. U2 u; O' ~+ g, J
做这个提取的小工具程序,初看起来简单得象1+1=2般简单。但真的是这样吗?非也!如果真正是严肃地以做产品的精神来做,还是要考虑一些问题的:" c2 ?' |+ \7 w5 K1 Y5 A$ {5 t U
(1)MDX中同一个词头有可能出现多次,比如有的单词每个词性就列一个词头出来,且并未加上上标来区分,看起来词头是一模一样的。$ f; B$ d" I1 l# ^/ E
(2)词头内容可能是链接@@@LINK=,且链接可能有多级。链接最终到的那个单词如果不在原词表上出现怎么处理?是新加入这个词头还是不加入而拷贝它的内容过来?
: U5 g# @$ u2 v" x9 T(3)如果原MDX制作有问题,A词头链接B词头,B词头又链接A词头,将陷入死循环,如何侦测出来?我目前用的是递归调用简单地用递归最大层次来限制死循环的发生。
* h3 v @" G7 |/ p(4)前述1,2,3可能同时出现夹杂糅合在一起,程序怎么处理既不遗漏又不重复释义?" u/ v9 P+ [ A3 {' b
(5)如果原词表不按字母顺序排列,应该给用户按原来顺序和按字母顺序两个选择
8 H6 E- o. D( U& X/ Z& j
* r- C @+ [3 H' C
( k5 s" ^6 |1 ~: I) g这些考虑使得编程复杂了很多!我用了整整2天才弄完它们。不到200行C#搞定。6 q, U* F) L3 t9 |2 i- x t: R* I
|
|