这两天在读More Joel on Software,其中有一节讲到MapReduce的原理,于是查了WIKI,读了一些博客,大致了解了其原理。
考虑到我准备写一个翻译MES系统界面的程序,可以借鉴MapReduce的方法。
大致地说,Map是将一个大的作业转化为若干个小的、可分发、可并行的作业。
Reduce是一个逻辑独立的作业,每次作业都能减少总体的运算量。
举例来说,这个翻译是将一个XML文件中对应位置的英语文本翻译为中文。
按照MapReduce的方法,大致分为以下4个步骤:
1、Map,将所有要翻译的句子提取出来,存入数组。
2、Sort,将数组里的数据排序。
3、Reduce,这里有2个函数:
第1个函数取字符串中匹配起始字符,字典中可查到的最长单词,如查Work Station而不是Work。
第2个函数将最小单位字符串查询字典进行翻译。
4、Union,按既定的顺序拼接翻译好的数组。
没有评论:
发表评论