Googleã®åæ£ãã¼ã¿å¦çè¨èªSawzallã®çµ±è¨ã©ã¤ãã©ãªãC++, Ruby, Pythonããå©ç¨ããã©ã¤ãã©ãªSZaruãå ¬éãã¾ãã
Googleã§å©ç¨ããã¦ããåæ£ãã¼ã¿å¦çè¨èªSawzallã®OSSå®è£ szl ãå ¬éããã¾ããã
å ¬éãããã½ã¼ã¹ã®ä¸ã«ã¯Sawzallã®å®è¡ç°å¢ã®ä»ã«å¤§è¦æ¨¡ãã¼ã¿åãã®çµ±è¨ã©ã¤ãã©ãªãå«ã¾ãã¦ãã¾ãããã®çµ±è¨ã©ã¤ãã©ãªã«ã¯é«åº¦ãªã¢ã«ã´ãªãºã ãå®è£ ããã¦ããã®ã§ããããä»ã®è¨èªãããå©ç¨ã§ããã¨ä¾¿å©ã ãªã¨æããC++, Ruby, Pythonããå©ç¨ã§ããããã«ãã¾ããã
便å©ãªçµ±è¨ã¢ã«ã´ãªãºã ã®1ã¤ã«åºç¾åæ°ãä¸ä½ã®N件ã®è¦ç´ ã®æ½åº(top-N)ãããã¾ãã
top-Nãæ±ããå ·ä½ä¾ã¨ãã¦ã¯ãèªç¶è¨èªå¦çã§ãã使ããåºç¾åæ°ä¸ä½ã®åèªãæ±ããå¦çãããã¾ãããã®å¦çã®åç´ãªå®è£ ã§ã¯ãã¾ãå ¨åèªã®åºç¾åæ°ãæ±ãã¦ããã次ã«ååèªãåºç¾åæ°ã®éé ã§ã½ã¼ããã¦åºç¾åæ°ä¸ä½ã®åèªãæ±ãã¾ãããããããã®å®è£ ã§ã¯ã¦ãã¼ã¯ãªåèªæ°Kï¼æ°åä¸ããæ°ç¾ä¸ï¼ã«æ¯ä¾ããã¡ã¢ãªã¨è¨ç®éãå¿ è¦ã¨ãªãã¾ãã
ããã«ãããã¦Sawzallã®çµ±è¨ã©ã¤ãã©ãªã§ã¯ãNã«æ¯ä¾ããã¡ã¢ãªã¨è¨ç®é*1ã§top-Nãæ±ãããã¾ããé常 N 㯠K ããé常ã«å°ããã®ã§é常ã«å°ãªãã¡ã¢ãªã§ä¸ä½è¦ç´ ãæ±ãããã¨ãã§ãã¾ãããã®ããããããã«ãã£ããããå³å¯ãªtop-Nã§ã¯ãªã誤差ãå«ãæ¨å®éã¨ãªãã¾ããããã¼ã¿éã大ããå ´åã¯èª¤å·®ã¯ç¡è¦ã§ãã¾ãã*2
å
¬éå
ã¯æ¬¡ã®ãã¼ã¸ã¨ãªãã¾ãã
SZaru: Porting of excellent Sawzall aggregators.
ä»ã®ã¨ããæç¨æ§ãé«ãããª3ã¤ã®éè¨å¦ç(top, unique, quantile)ã移æ¤ãã¦ãã¾ãã
SZaruã®å®è£ ã®éç¨ã§sawzallã®å é¨å®è£ ãè²ã ã¨ã¿ã¦ã¿ãã®ã§ããããªãã¸ã§ã¯ãã®ãã¤ããªåã¸ã®ã·ãªã¢ã©ã¤ãºãè¨èªã¬ãã«ã§çµã³ã¤ãã¦ããã®ãé¢ç½ãã£ãã§ããåæ£å¦çã§ã¯ããã»ã¹éã§ãªãã¸ã§ã¯ããããåãããã«ã·ãªã¢ã©ã¤ãºãå¿ é ãªã®ã§ãè¨èªã¬ãã«ã§çµ±åããã¦ããæ¹ãè²ã ã¨ä¾¿å©ãªã®ã§ãããã
ãªããååã®æå³ã¯ç¬ï¼ããï¼ã«ãªãã¨ãªãSãã¤ãã¦Sawzallã«è¿ãèªæã«ãã¦ã¿ã¾ãããååãã¤ãã¦ããç¥ã£ãã®ã§ããszaruã¯ãã³ã¬ãªã¼èªã ã¨ããã®æå³ã¿ããã§ãã
*1:å³å¯ã«ã¯ããéãã¾ããã
*2:top-Nã®æ¨å®ã¢ã«ã´ãªãºã ã¯Count-Sketchã¨å¼ã°ãã¦ããæ¥æ¬èªã§ã®è§£èª¬è¨äºãããã¾ããradiumsoftware.com