ããããABBYYèªäœã¯ã幎ã çŽã®èŸæžãæäœæ¥ã§ããžã¿ã«åããããžã¿ã«èŸæžããããã¥ã¢ã¹ãã·ã£ã«ãã巚倧ãªæ±çšèŸæžã«å€æããèŸæžç·šéæ奜家ã®å€§è»ã®å©ããªãã«ã¯ããã®ãããªæåãéæã§ããªãã£ãã§ãããã
æãæåã§å®ãå€ãã°ã«ãŒãã®1ã€ã¯ãforum.ru-board.comã®Webãµã€ãã§é·ãéåãçµãã§ããŸããã æéã®çµéãšãšãã«ãèšå€§ãªèŸæžã®ã³ã¬ã¯ã·ã§ã³ãšãäœæè ãšç·šéè ãæ¯æŽããããã®ç¥èãšããŒã«ã®åŒ·åºãªåºç€ã®äž¡æ¹ãèç©ãããŸããã å€ãã®ã¹ã¯ãªãããšããã°ã©ã ãäœæãããŠããããããã®ã»ããã¯ãããã°ã©ãã³ã°èšèªã®æŽå²ãšäººæ°ã®å€åãåæ ããŠãããã¯ãŒãããã»ãã·ã³ã°ã«ããçšåºŠé©åããŠããŸãã ããã§ãPerlãšPythonãã·ã§ã«çšã®ããããã¡ã€ã«ã®èšèªããã¯ãMS WordãšExcelãããã³äžè¬çãªèšèªã§ã³ã³ãã€ã«ãããããã°ã©ã ã
ãã ããæè¿ãŸã§ãèšèªã®1ã€ã¯ãã®é åã«ã»ãšãã©è¡šããŠããŸããã§ããã ãã®ã®ã£ãããåããJavaScriptèšèªã®ãã¯ãŒãæ©èœã人æ°ã®æ¥éãªæé·ã«æ¬æãè¡šããããšæããŸãã 圌ã¯ãç¹ã«ãããã¯ãŒã¯ãšããŒã«ã«èŸæžç·šéã®å¢çã§ãçŸä»£ã®èŸæžç·šéè ã«ãšã£ãŠå€§ããªå©ãã«ãªããšæãããŸãã
ãããã¯ãŒã¯ãã£ã¯ã·ã§ããªã®ããŒã«ã«ã³ããŒã®äœæã¯ãéåžžãããã€ãã®æ®µéãçµãŸãïŒTeleportãªã©ã®ããã°ã©ã ã䜿çšããŠHTMLããŒãžãä¿åããæ£èŠè¡šçŸïŒããã¹ããšãã£ã¿ãŒããã¯ãããŸãã¯ã¹ã¯ãªããïŒã䜿çšããŠã¿ã°ãã¯ãªã¢ããæçµçã«DSLã§ããŒã¯ã¢ããããŸãã Node.jsããŒãžã§ã³ã®JavaScriptã¯ããã®æ¹æ³ãå€§å¹ ã«ççž®ããã³å®¹æã«ãªããŸãããã®èšèªã¯WEBã«ãã€ãã£ãã§ããããããã¯ãŒã¯ããŒã¿äžã§åäœã§ããäžå®å®ã§å¯å€ã¬ãã«ã®ã³ãŒããæ£èŠè¡šçŸã«èœã¡ãã DOMèŠçŽ ã®ã¬ãã«ã§åäœããããã§ãã
ãããäžã§çãŸããæãè±ãã§äººæ°ã®ããã¹ããŒãè±èªèŸæžã®1ã€ã§ããUrban Dictionaryã®ããŒã«ã«ã³ããŒãäœæããŠãèšèªãšãã®ã©ã€ãã©ãªã®äžéšã®æ©èœã説æããããšããŸãã æè¿ã®åãçµã¿ã®ææã¯ã人æ°ã®ãããã©ãã«ãŒã§ã®ãããã®ååžã«ãã£ãŠè©äŸ¡ã§ããŸãã
rutracker.org/forum/viewtopic.php?t=5106848
nnm-club.me/forum/viewtopic.php?t=951668
kinozal.tv/details.php?id=1389116
ããã§ããªã³ã©ã€ã³èŸæžãä¿åããäºå®ããªãå Žåã¯ãèšäºã®ç¬¬3éšãã芧ãã ãããNode.jsã䜿çšããŠè§£æ±ºã§ããé»åèŸæžãæäœããéã®ä»ã®äžè¬çãªã¿ã¹ã¯ã®äŸããããŸãã
ãã ããããã°ã©ãã³ã°ã¯ç§ã®è¶£å³ã§ããããšã«æ³šæããŠãã ããã ããã¯åæã«ããããªãäŸã®ãããã§ãã·ã§ããªãºã ã®æ¬ åŠã«é¢ããèŠåã§ãããç§ã®ããã«ããªãã©ã«ãªæè²ããåããŠããªã人ã ãžã®å±ãŸãã§ããããŸãã
èªè ã¯JavaScriptãçŽç²ãªããŒãžã§ã³ãšé©çšãããããŒãžã§ã³ã§ç¥ã£ãŠãããNode.jsã®åºæ¬ãç¬èªã«ç解ããŠããããšãç解ãããŸãã ããã§ãªãå Žåã¯ãåºæ¬ããå§ãããã JavaScript ã DOM ã Node.jsã®ç©ºçœãåããå¿ èŠããããŸãã
ãã®èšäºã§ã¯ãã³ã³ãœãŒã«ã¹ã¯ãªããã«ããéçããŒãžïŒJavaScriptããªãã«ããŠãããŒã³ã³ãã³ããå€æŽãããªãããŒãžïŒã®åŠçã«å¶éããŸãã 次ã®éšåã§ã¯ãåçãµã€ãïŒãã®äž»èŠã³ã³ãã³ãã¯ã¹ã¯ãªããã«ãã£ãŠåœ¢æãããŸãïŒã®ä¿åãåæããGUIã䜿çšããŠããã°ã©ã ã«è§ŠããŸãã
ã³ã³ãã¥ãŒã¿ãŒã§ã®ã¿ã¹ã¯ãªãããå®è¡ããåæã«æ°ããèšèªæ©èœã䜿çšãããããNode.jsã®ææ°ããŒãžã§ã³ãã€ã³ã¹ããŒã«ããããšããå§ãããŸãã
I.äºå段éïŒèŸæžãšã³ããªã®ã¢ãã¬ã¹ã®ãªã¹ããååŸãã
ãããã¯ãŒã¯èŸæžã®ããŒã«ã«ã³ããŒãäœæããã«ã¯ãå°ãªããšã3ã€ã®ã¢ã«ãŽãªãºã ããããŸãã
1.ææªã®å ŽåãèŸæžã¯ãã¹ãŠã®èšäºãåæããããã®ä¿¡é Œã§ããã¡ã«ããºã ãæäŸããŸããã 次ã«ãã¢ãã¬ã¹ãã¿ãŒã³ãåæããèšèªã®ããŒã¯ã³ã®ã»ãŒå®å šãªãªã¹ãã®åèªãé£ç¶ããŠããã«çœ®æããå¿ èŠããããŸãïŒæ倧ã®ããžã¿ã«åããã説æèŸæžããäžé£ã®èªåœãåããããšãã§ããŸãïŒã倱æããèŠæ±ãæåŠããŸãã
2.äžéšã®èŸæžã§ã¯ãæåã®ããã£ãã©ãªãŒããæåŸã®ããã£ãã©ãªãŒãŸã§ãã§ãŒã³ããã©ãããšãã§ããŸãïŒã次ã®åèªããªã³ã¯ãŸãã¯æãè¿ãããã£ãã©ãªãŒãžã®äžé£ã®ãªã³ã¯ãä»ããŠïŒã ããã¯æãç°¡åãªæ¹æ³ã§ãããæãæçœã§ã¯ãããŸãããæåã«ããŒã«ã«ã®ç·æ°ãæšå®ãã次ã«ã³ããŒã®é²è¡ç¶æ³ãç£èŠããããšã¯å°é£ã§ãã ãããã£ãŠãåãUrban Dictionaryããã®æ©äŒãæäŸããŸããïŒååèªã®ããŒãžã«ã¯ãååŸã®èšäºãžã®ãªã³ã¯ã®åããããŸãïŒã3çªç®ã®æ¹æ³ã䜿çšããŸãã
3.èŸæžã«ãã¹ãŠã®èŸæžãšã³ããªãžã®ãªã³ã¯ã®åå¥ã®ãªã¹ããããå Žåããããã®ãªã³ã¯ã®ã»ããå šäœããã¡ã€ã«ã«äºåã³ããŒããŸãã ãã®ãããä»åŸã®ãªã¯ãšã¹ãã®éãšãå®äºããå²åãç£èŠããæ©èœã®ã¢ã€ãã¢ãåŸãããšãã§ããŸãã ããšãã°ã www.urbandictionary.com/browse.php?character= A ã www.urbandictionary.com/browse.php?character=A&page=2ãªã©ã®ãªã³ã¯ã䜿çšããéœåžèŸæžã§ æå®ããæåã®èªåœãå«ããã¹ãŠã®èšäºã®ã¢ãã¬ã¹ã®ãªã¹ããååŸã§ããŸãïŒ www.urbandictionary.com/define.php?term=aãwww.urbandictionary.com/define.php?term=a%5E_%5Eãªã©ïŒ ã
ãããã£ãŠããã£ã¯ã·ã§ããªãä¿åããããã»ã¹å šäœã¯2ã€ã®æ®µéã«åããããå段éã§åå¥ã®ã¹ã¯ãªããã責任ãè² ããŸãã
èŸæžãšã³ããªãžã®ãªã³ã¯ã®ãªã¹ããä¿æããæåã®ã³ãŒãã®ã³ãŒãã¯æ¬¡ã®ãšããã§ãã
UD.get_toc.js
1.ã¹ã¯ãªããã®æåã®éšåã§ãå¿ èŠãªã©ã€ãã©ãªã¢ãžã¥ãŒã«ïŒãŸãã¯é »ç¹ã«åŒã³åºãããå Žåã¯ããã«å¿ èŠãªã¡ãœããïŒãããŒãããŸãã ã»ãšãã©ãã¹ãŠã®ã¢ãžã¥ãŒã«ã¯ãã«ãã€ã³ã§ãããNode.jsã®ã€ã³ã¹ããŒã«ãšãšãã«ã€ã³ã¹ããŒã«ãããŸãã å€éšã¢ãžã¥ãŒã«ã®ãã¡ã jsdomã¢ãžã¥ãŒã«ã®ã¿ãå¿ èŠã§ããNode.jsã ãã§ã¯ãHTMLããŒãžã解æããŠDOMããªãŒã«å€æããæ¹æ³ãããããããã®æ©èœã¯åè¿°ã®ã¢ãžã¥ãŒã«ã«ãã£ãŠæäŸãããŸãïŒnpmã¢ãžã¥ãŒã«ãããŒãžã£ãŒã¯Node.jsãšå ±ã«ã€ã³ã¹ããŒã«ããããããã¢ãžã¥ãŒã«ã®ã€ã³ã¹ããŒã«ã¯ç°¡åã§ãïŒ ;ã³ã³ãœãŒã«ãéããäœæãããã¹ã¯ãªããããããã©ã«ããŒã«ç§»åããŠ
npm install jsdom
ãšå ¥åããããŠã³ããŒããšã€ã³ã¹ããŒã«ãå®äºããã®ãåŸ ã¡ãŸã-ã¢ãžã¥ãŒã«èªäœãšå¿ èŠãªã¹ã¬ãŒãã¢ãžã¥ãŒã«ã¯ãã¹ã¯ãªãããæ€çŽ¢ãã
node_modules
ãã©ã«ããŒã«ã€ã³ã¹ããŒã«ãããŸãïŒã
ã¢ãžã¥ãŒã«ãããŒãããåŸãã¹ã¯ãªããã¯ãã¡ã€ã«ãä¿åãããã©ã«ããŒã決å®ãïŒãŠãŒã¶ãŒãæåã®ã³ãã³ãã©ã€ã³ããŒã§ã¹ã¯ãªãããéå§ãããšãã«ãã©ã«ããŒãæå®ããªãã£ãå Žåãã¹ã¯ãªããã眮ãããŠãããã©ã«ããŒãéžæãããŸãïŒããã®äžã«3ã€ã®å°æ¥ã®ããã¥ã¡ã³ããäœæããŸãïŒèŸæžãšã³ããªã®ã¢ãã¬ã¹ã®ãªã¹ã; ãããã®ã¢ãã¬ã¹ãååŸããåŠçæžã¿ããŒãžã®ãªã¹ãã çºçãããšã©ãŒã«ã€ããŠå ±åããŸãã
æåã®éšåã®æåŸã«ã4ã€ã®ãµãŒãã¹å€æ°ãäœæãããŠä¿åãããŸãã
-è±èªã®ã¢ã«ãã¡ãããã®é åïŒãªã³ã¯ä»ãã®URLããŒãžãäœæãããšãã«æåã亀äºã«è¿œå ããŸããæåŸã®æåã¯ãç¹æ®æåã§å§ãŸãèªåœãžã®ãªã³ã¯ã®ãªã¹ããæ åœããé å* *æåã«è¿œå ãããŸãïŒ;
-以åãšçŸåšã®ãªã¯ãšã¹ãURLïŒåãäžéãªã¢ãã¬ã¹ãèŠæ±ããŠãããã©ããããŸãã¯ãšã©ãŒãæ°ããã¢ãã¬ã¹ã«é¢ãããã®ã§ã¬ããŒãã«å«ããå¿ èŠããããã©ãããå€æããããïŒ;
-ã¹ã¯ãªããã®ãŠãŒã¶ãŒäžæã®ãã©ã°ã
2. 2çªç®ã®éšåã§ã¯ã2ã€ã®ã€ãã³ãã®ãã³ãã©ãŒãèšå®ããŸããã¹ã¯ãªããã®ä»»æã®çµããïŒããã«ãããã¹ãŠã®ãã¡ã€ã«ãéããé³å£°ã§éèŠãªã€ãã³ãã«ãŠãŒã¶ãŒã®æ³šæãåŒãé¢æ°ãåŒã³åºããŸãïŒãšããŠãŒã¶ãŒã®ã³ãã³ãïŒ
Ctrl+C
ããã³å²ã蟌ã¿ãã©ã°ãåãæ¿ããŸããããã¯ãæ°ãããããã¯ãŒã¯èŠæ±ã®ãã³ã«ãã§ãã¯ãããŸãïŒã
3. 3çªç®ã®éšåã§ã¯ãã¯ãšãªãµã€ã¯ã«ãéå§ãããã£ã¯ã·ã§ããªãšã³ããªã®ã¢ãã¬ã¹ãªã¹ããåä¿¡ããŠââä¿åããŸãã ããŒãã¯2ã€ã®è«çãããã¯ã«åå²ãããŸãã
aã åŠçæžã¿ã®ããŒãžã«é¢ããã¬ããŒããã¡ã€ã«ã空ã®å Žåãã¹ã¯ãªããã¯ç°åžžçµäºãŸãã¯ãŠãŒã¶ãŒã®äžæã®åŸã§ã¯ãªããæåããåäœãéå§ããŸãã ãã®å Žåãã³ã³ãœãŒã«ãŠã£ã³ããŠã«ã¢ã«ãã¡ãããã®æåã®æåãšãã®ã¿ã€ãã«ã衚瀺ããã¢ã«ãã¡ãããé åããæœåºããé¢æ°ãåŒã³åºããŠããã³ãã¬ãŒãã«åŸã£ãŠæ§ç¯ãããURLã®ããŒãžãååŸããŸãã
bã ãã¡ã€ã«ã空ã§ãªãå Žåãã¹ã¯ãªããã¯ãã§ã«æ©èœããŠããŸãã 次ã®ã¢ãã¬ã¹ã®ãªã¯ãšã¹ããé çªã«äœæããã«ã¯ããã¡ã€ã«ããæåŸã«åŠçãããã¢ãã¬ã¹ãæœåºããå¿ èŠããããŸãã ã¬ããŒããã¡ã€ã«ã¯å€§ãããªãå¯èœæ§ããããããå®å šã«ã¡ã¢ãªã«ããŒãããã®ã§ã¯ãªãããã¡ã€ã«ã1è¡ãã€èªã¿åãããšãã§ããã¢ãžã¥ãŒã«ã䜿çšããŸãïŒå¿µã®ããã空ã®è¡ãç¡èŠããŸãïŒã æåŸã«å°éãããšãå€æ°ã«ç®çã®ã¢ãã¬ã¹ãå ¥ããŸãã ãã®ã¢ãã¬ã¹ãåæããåŸãã¹ã¯ãªãããæåŸã«åŠçããã¢ã«ãã¡ãããã®æåãååŸããããã°ã©ã ãçµäºããåã«ä¿åãããã¢ãã¬ã¹ãªã¹ãã«ç¶ãã¢ãã¬ã¹ãªã¹ãã®ããŒãžã決å®ããŸãã ãã®ããŒã¿ã«åºã¥ããŠãã¢ã«ãã¡ãããé åãç®çã®æåãŸã§å æ¬çã«æžãããæ°ããåŠçã®éå§ãã³ã³ãœãŒã«ã«åºåããé¢æ°ãåŒã³åºããŠãç®çã®æåãšå¿ èŠãªããŒãžãèæ ®ãããã³ãã¬ãŒãã§æ¬¡ã®ããŒãžãååŸããŸãã
ããã§ãã¹ã¯ãªããã®æé éšåãå®äºããŸããã 次ã®3ã€ã®é¢æ°ããããŸãã1ã€ã®ãµãŒãã¹ãš2ã€ã®ã¡ã€ã³ãã¯ãšãªã«ãŒãã§é çªã«åŒã³åºããŸãã
4.
playAlert()
ãµãŒãã¹é¢æ°ã®ãµãŠã³ãã·ã°ããªã³ã°ã«ã€ããŠã¯ã ffmpegã©ã€ãã©ãªããã¯ãã¹ãã©ãããã©ãŒã ã³ã³ãœãŒã«ãã¬ãŒã€ãŒãéžæããŸããïŒèµ·åããŒã®éçºããŒãåç §ïŒãããµãŠã³ããçæããããã«ä»ã®ãã¬ãŒã€ãŒãŸãã¯ã·ã¹ãã ã¢ãžã¥ãŒã«ã䜿çšã§ããŸãã ä»ã®ãµãŠã³ããéžæã§ããŸãã
5.
getDoc(url)
é¢æ°ã¯ããã£ã¯ã·ã§ããªãšã³ããªã®ã¢ãã¬ã¹ã®ãªã¹ããå«ã次ã®ããŒãžã®ãªã¯ãšã¹ããéä¿¡ããŸãã æåã«ããŠãŒã¶ãŒãã¹ã¯ãªãããäžæããå¿ èŠããããã©ããã確èªããŸãïŒã¹ã¯ãªããã¯æ°æéå®è¡ããããããäžæãå¿ èŠã«ãªãå ŽåããããŸãïŒã é¢æ°ã¯ãéå»ã®å€æ°ãšä»åŸã®èŠæ±ãæŽæ°ããŸãã æåŸã«ãããŒãžãååŸããããã«åŒã³åºãå¿ èŠã®ããé¢æ°ã«é©åãªã¡ãœãããæž¡ããªãããjsdomã¢ãžã¥ãŒã«ã«ããŒãžãèŠæ±ããããæ瀺ããŸãã
ã³ãŒãã§ã¯ã2ã€ã®è¿œå æ©èœãã³ã¡ã³ãåãããŠããŸãã
aã ããŠã³ããŒããé«éåããããã«è€æ°ã®ã¹ã¯ãªããã䞊è¡ããŠå®è¡ããäºå®ãããå Žåã¯ãå¿åãããã·ãµãŒããŒãä»ããŠå®è¡ããããšããå§ãããŸãã Fiddler + Torãã³ãã«ããã¹ãããŸããïŒExpert Bundleã®éãã©ãŠã¶ããŒãžã§ã³ã§ïŒ-ã¹ã¯ãªããã®å šæéã«ããã£ãŠäœ¿çšããŸããã§ãããã1ã€ã®ããã»ã¹ã®ãµãŒããŒãšã®éä¿¡é床ãåæã«é ããªããããã¿ã¹ã¯ã䞊åããã»ã¹ã®éšåã«åå²ããŠäœæ¥ãè€éã«ããããããŸããã§ããã ãã¡ãã®å®è£ äŸãã芧ãã ãã ã
ããã§ãã¹ã¯ãªããã䞊ååããå Žåã¯ãèµ·åæã«åºåãã¡ã€ã«ã«ç°ãªããã©ã«ããŒãæå®ããããç°ãªããã©ã«ããŒããã¹ã¯ãªããã®ç°ãªãã³ããŒãå®è¡ããå¿ èŠããããŸãã ãããã®ãã©ã«ãã«ã¯ãåŠçæžã¿ããŒãžã«ã¬ããŒããã¡ã€ã«ãæ¢ã«å«ãŸããŠããå¿ èŠããããŸãããã®ãã¡ã€ã«ã¯ãæå®ãããã¢ãã¬ã¹éšåã®çŽåã®ã¢ãã¬ã¹ãæãå°ãªããšã1è¡ã§æ§æãããŠããŸãã
bã ãµãŒããŒã«ãã£ãŠçŠæ¢ãããããšã«å¯Ÿãããã1ã€ã®äºé²çã¯ããªã¯ãšã¹ãéã®é 延ã䜿çšããããšã§ãã setTimeoutã§ã¡ãœããåŒã³åºããã©ããããäžæåæ¢ã®ãµã€ãºãå®éšããã ãã§ååã§ãã ç§ã®çµéšã§ã¯ãUrban DictionaryãµãŒããŒã«ã¯ãªã¯ãšã¹ãéã§ååãªèªç¶ãªäžæåæ¢ããããè¿œå ã®äŒæ©ã¯å¿ èŠãããŸããã
6.
processDoc(err, window)
é¢æ°ã¯
jsdom
ã¢ãžã¥ãŒã«ã«ãã£ãŠåŒã³åºãããããŒãžãåä¿¡ãããããšã©ãŒãçºçãããšã€ãŸãããŸãããããããé¢æ°ã«å¯Ÿå¿ãã2ã€ã®åŒæ°ããããŸãã
ãã®é¢æ°ã¯æåã«
err
åŒæ°ããã§ãã¯ããŸãïŒå®çŸ©ãããŠããå ŽåãèŠæ±ã¯å€±æããŸããã ãã®å Žåãã¹ã¯ãªããã¯é³å£°ã§ä¿¡å·ãéããã¡ãã»ãŒãžããšã©ãŒãã¡ã€ã«ã«æžã蟌ã¿ïŒãããæå®ãããURLã®æåã®ãšã©ãŒã§ãããç¹°ãè¿ãèŠæ±ã®ãã§ãŒã³ã®æ¬¡ã§ã¯ãªãå ŽåïŒããŠã£ã³ããŠãšã³ã³ãœãŒã«ããããŒã«æ å ±ã衚瀺ãã
getDoc(url)
é¢æ°ã«ã¢ã¯ã»ã¹ããŠèŠæ±ãåéããŸãåŒæ°ãç¹°ãè¿ããŸãã
err
空ã®å Žåãé¢æ°ã¯çµæã®ããã¥ã¡ã³ãã®è§£æãéå§ããŸãã ããã€ãã®å¯èœãªçµæãšãããã«å¯Ÿããåå¿ããããŸãã
aã ããŒãžã«ã¯ãèŸæžãšã³ããªãžã®ãªã³ã¯ã®äžéšããããŸãã 次ã«ãé¢æ°ã¯ãããã®ãªã³ã¯ã®ã¢ãã¬ã¹ã®ãªã¹ããèŸæžã³ã³ãã³ããã¡ã€ã«ã«æžã蟌ã¿ãçŸåšã®ããŒãžã®ã¢ãã¬ã¹ãåŠçæžã¿ããŒãžãã¡ã€ã«ã«æžã蟌ã¿ãä¿åãããŠãããªã³ã¯ã®æ°ãã³ã³ãœãŒã«ã«å ±åããã¢ãã¬ã¹ãæã€æ¬¡ã®ããŒãžã®URLãèŠã€ããããšããŸãã æ€çŽ¢ãæåãããšãããã°ã©ã ã¯ã³ã³ãœãŒã«ã«æ¬¡ã®èŠæ±ã«é¢ããæ å ±ïŒæåãšããŒãžçªå·ïŒã
getDoc(url)
ãããã§ã«ããªãã¿ã®
getDoc(url)
é¢æ°ã«éä¿¡ããŸãã æ€çŽ¢ã倱æããå Žåãããã°ã©ã ã¯ã¢ã«ãã¡ãããã®é åããã§ãã¯ããŸãïŒæåãå«ãŸããŠããå Žåã¯æ°ããé åã«é²ã¿ã空ã®å Žåã¯çµäºããŸãã
bã ããŒãžã«ãªã³ã¯ã¯ãªãããã¢ãã¬ã¹ãèŠæ±ããããã®ãšäžèŽããå ŽåããµãŒããŒã§ãšã©ãŒãçºçããå¯èœæ§ãé«ãããšãæå³ããŸãïŒããšãã°ããµãŒããŒãäžæçãªå©çšäžå¯ã«ã€ããŠåçããå ŽåïŒã ãã®å Žåãã¹ã¯ãªããã¯èŠæ±ãç¹°ãè¿ããŸãã
cã ãªã³ã¯ããªããã¢ãã¬ã¹ãèŠæ±ããããã®ãšäžèŽããªãå Žåããªãã€ã¬ã¯ããçºçããŸããã ããã¯ãUrban Dictionaryã®ãã£ã¯ã·ã§ããªãšã³ããªã®ã¢ãã¬ã¹ãªã¹ãã®1ã€ã®æ©èœã«ããå¯èœã§ãïŒçŸåšã®æåã«ãããã®ãªã¹ãã®æšå®ããŒãžæ°ã¯ãå®éã®ããŒãžæ°ãããå€ãå Žåããããã¬ã¿ãŒãããã¯ã®æåŸã«ååšããªãããŒãžçªå·ãèŠæ±ããããšãããšããµãŒããŒã¯ãŠãŒã¶ãŒãã¡ã€ã³ããŒãžã«ãªãã€ã¬ã¯ãããŸãã ãã®å Žåãã¢ã«ãã¡ãããé åã空ã§ãªãå Žåãã¹ã¯ãªããã¯æ¬¡ã®æåã«ç§»åããŸãã
é åã空ã®å Žåãã¹ã¯ãªããã¯çµäºããŸãã
ãã®çµæãèŸæžã®å 容ãå«ããã¡ã€ã«ãååŸããŸãã ä»ã®2ã€ã®ãã¡ã€ã«ã«ã¯ãµãŒãã¹å€ããããããå¿ èŠã«å¿ããŠãçºçãããšã©ãŒã確èªããŠåé€ã§ããŸãã
IIã ã¡ã€ã³ã¹ããŒãžïŒèŸæžãšã³ããªã®ããã¹ãã®ååŸ
2çªç®ã®ã¹ã¯ãªããã®æ§é ã¯äŒŒãŠãããéãã¯äž»ã«äœæ¥æéïŒçŸåšã¯æ°æéã§ã¯ãªãæ°æ¥ã§ïŒãšåŠçããŒãžã®è€éãã®äž¡æ¹ã®å€§å¹ ãªå¢å ã«ãããŸãã
UD.get_dic.js
1.æåã®éšåã§ã¯ãã»ãŒåãã¢ãžã¥ãŒã«ãå床ããŒããã2ã€ã®ããã°ã©ã éå§ããŒããã§ãã¯ããŸãããŸããå ¥åãã¡ã€ã«ããããã©ã«ããŒã«ç§»åããŸãïŒã¹ã¯ãªããã§ã¯ãåã®ã¹ãããã§ä¿åããèŸæžãšã³ããªãŒãžã®ãªã³ã¯ã®ãªã¹ããæ¢ããŸãïŒãæ°ããçºä¿¡ãã¡ã€ã«ã®ãã©ã«ãã ã©ã¡ãã®å ŽåããããŒãæå®ãããŠããªãå Žåãã¹ã¯ãªããèªäœã®ãã©ã«ããŒã䜿çšãããŸãã ã¹ã¯ãªããã¯ããªã³ã¯ã®ãããã¡ã€ã«ã®ååšã確èªããŸã-ãã¡ã€ã«ã衚瀺ãããªãå Žåãããã°ã©ã ã¯å¯Ÿå¿ãã宣èšã§çµäºããŸãã
次ã«ãããã€ãã®å€æ°ãå®çŸ©ããŸãã
-倧ããªæ°å€ãš1æéãããã®ããªç§æ°ããã©ãŒãããããããã®æ£èŠè¡šçŸ-ãããã¯å°æ¥çã«å®æçã«äœ¿çšãããŸãã
-ããŒã¿ã®æ°žç¶çãŸãã¯äžæçãªä¿åã®ããã®ã³ã³ããïŒèŸæžãšã³ããªãžã®ãªã³ã¯ã®ãªã¹ããçŸåšã®èšäºã®ã¿ã€ãã«ã®ãªã¹ããããã³ã»ã¯ã·ã§ã³ã®ãªã¹ã-èªåœã®ç°ãªããŠãŒã¶ãŒè§£éïŒ;
-éå»ããã³ä»åŸã®ãªã¯ãšã¹ãã§ãã§ã«éŠŽæã¿ã®ããå€æ°ã
-ã¹ã¯ãªããã®é床ãèšç®ããã³è¡šç€ºããããã®å€æ°ã
-ãŠãŒã¶ãŒã®äœæ¥äžæã®ãã©ã°ã
2.第2éšã§ã¯ãæ¢ã«äžèšã§èª¬æããã€ãã³ããã³ãã©ãŒã玹ä»ããŸããã¹ã¯ãªãããšãŠãŒã¶ãŒã³ãã³ããã·ã£ããããŠã³ããŠãäœæ¥ãäžæããŸãã
3. 3çªç®ã®éšåã§ã¯ãã¡ã€ã³åºåãã¡ã€ã«ã®ãµã€ãºã«ãã£ãŠããããæåã®ããã°ã©ã èµ·åãããã¬ãŒã¯åŸã®æ¬¡ã®èµ·åãã¡ã€ã«ãã確èªããŸãã äœæ¥ãå§ãŸã£ãã°ããã®å Žåã¯ãå°æ¥ã®èŸæžãã¡ã€ã«ã«BOMã©ãã«ãšåæãã£ã¬ã¯ãã£ããDSL圢åŒã§å ¥åããŸãã
4. 4çªç®ã®éšåã¯ãããã°ã©ã ã®æé ã»ã¯ã·ã§ã³ãå®äºããŸãã ãã®äžã§ãèŸæžãšã³ããªãžã®ãªã³ã¯ã®ãªã¹ããå«ãå ¥åãã¡ã€ã«ãæåã«èªã¿èŸŒã¿ãããã«ã¯ãšãªã決å®ããã³ã³ããã«å ¥ããŸãïŒæåã®ã¹ã¯ãªããã§ã¯ã¢ã«ãã¡ãããã®ã³ã³ããã®ããã«èŠããŸã-ã¯ãšãªãµã€ã¯ã«ã®éå§ç¹ã«ãªããŸãïŒã 次ã«ãåã®ã¹ã¯ãªããã®ããã«ããã§ã«åŠçãããã¢ãã¬ã¹ã«ã€ããŠã¬ããŒããã¡ã€ã«ããã§ãã¯ããŸãããã®äžã«äœããããå ŽåãæåŸã«æ£åžžã«ä¿åãããèŸæžãšã³ããªãæžã蟌ãŸããæåŸã®è¡ãèŠã€ããŸããé¢æ°ãå®è¡ããŠå®è¡ããŸãã1æéã«1åã¹ã¯ãªããã®é床ãèšç®ãããå®äºã®æéãã»ãŒäºæž¬ãããŸãïŒé£ç¶æ§ã®ä»®å®ã®å ŽåïŒã 次ã«ãæ®ãã®ã¢ãã¬ã¹ã®æ°ãã³ã³ãœãŒã«ã«åºåããŸãïŒããã¯å€§ãããããèªã¿ãããããããã«ããããã¹ããŒã¹ã§åºåããŸãïŒãããŒãžã®ãªã¯ãšã¹ããšä¿åã®éåžžã®ãµã€ã¯ã«ãéå§ããŸãã ã¬ããŒããã¡ã€ã«ã空ã®å Žåãèªã¿åããã¹ããããããªã¹ããããã¢ã¯ã·ã§ã³ã®2çªç®ã®éšåã«ããã«é²ã¿ãŸãã
èŸæžãšã³ããªãžã®ãªã³ã¯ã®çä¿¡ãã¡ã€ã«ã空ã®å ŽåãããããŠãŒã¶ãŒã«éç¥ããé©åãªã¿ã€ãã³ã°ãŸã§ããã°ã©ã ãçµäºããŸãã
次ã®æ©èœïŒããã€ãã®å°ããªãµãŒãã¹ã®ãã®ãšããã§ã«ããç¥ãããŠãããµã€ã¯ãªãã¯ã¯ãšãªã®ã¿ãŒã³ãæ§æãã2ã€ã®äž»èŠãªãã®ã
5.
playAlert()
é¢æ°ã¯ãæåã®ã¹ã¯ãªãããšåãååã§ãå€ãããŸããã
6.èŸæžãšã³ããªãDSLãã¡ã€ã«ã«ä¿åãããšãã¯ã
secure(str, isHeadword)
é¢æ°ãå®æçã«äœ¿çšããŸãã 2ã€ã®ã¿ã¹ã¯ããããŸããå¥åŠãªããšã«ããããã¯ãŒã¯ããã¹ãã§æ€åºãããå¶åŸ¡æåïŒASCIIéå§ãããã¯ã®æåïŒããDSLã³ã³ãã€ã©ãŒãæ··ä¹±ããªãæ¡ä»¶ä»ãã§èªã¿åãå¯èœãªåœ¢åŒã«å€æããŸãã ãŸããDSL圢åŒã®å¢çèŠä»¶ãè¶ ããèšäºããé·ãããåèªãçãããŸãïŒèŠåºãã¯ä»ã®èŠåã«ãã£ãŠççž®ãããŸãïŒã
7.
setSpeedInfo()
é¢æ°ã¯ãããã°ã©ã ã®ã¡ã€ã³ãããŒãšäžŠè¡ããŠå®è¡ãããŸãã 1æéã«1åãæ å ±è¡ã眮ãæããããŸããããã¯ãã¹ã¯ãªããã®é床ãšæ®ãæéã衚瀺ããŸãïŒè¡ã®å é ã«ã¯ãæåã®1æéåŸã«æ°åã§çœ®ãæããããè¡ã«å®ç·ã®çå笊ã衚瀺ãããŸãïŒã ãã®é¢æ°ã¯éåžžã«ééçã§ã2ã€ã®ã¡ã¢ãäœæããã ãã§ã
restMark
å€æ°ã«ã¯ãååã®é床èšç®äžã«æ®ã£ãŠããã¢ãã¬ã¹ã®æ°ãæ ŒçŽãããŸãã ãã®é¢æ°ã§ã¯ãé床ã®åã«ãŠã³ãã«é¢ãããµãŠã³ãã·ã°ãã«ãéåæã§ããªã¬ãŒãããŸãïŒã€ãŸããã¹ã¯ãªããã¯ãµãŠã³ãã®çµäºãåŸ æ©ããŸããïŒ-ãã®ãããå€æ°ã§åããã»ã¹ãéåæã§éå§ããããã®å¥ã®ã¡ãœãããæåã«ä¿åããŸããã
8.ãããã¯ãŒã¯èŠæ±ãéä¿¡ãã
getDoc(url)
é¢æ°ã¯ããµãŒããŒã®çŠæ¢ã«å¯Ÿããã³ã¡ã³ãã¢ãŠããããäºé²æªçœ®ãäœæ¥ãé«éåããæ¹æ³ãªã©ãåã®ã»ã¯ã·ã§ã³ã§èª¬æãããã®ãšå€ãããŸããã
9.
processDoc(err, window)
é¢æ°ã¯ãåã®ã¹ã¯ãªããã®åãååãšæ¯èŒããŠãã¯ã€ã€ãŒãã¬ãŒã ãä¿åããŸãããåä¿¡ããããŒãžããã®æ å ±ã®åŠçãšä¿åã®ç¹ã§å€§ããç°ãªããŸã-çµå±ãäžé£ã®ãªã³ã¯ãæžãçããã ãã§ãªãããããã¯å šäœãåæããã³å€æããå¿ èŠããããŸãããŒã¿ã
ãã ããé¢æ°ã®å é ã¯å€æŽãããŠããŸããã
err
åŒæ°ã確èªããå®çŸ©ãããŠããå Žåã¯ããšã©ãŒã¬ããŒããã¡ã€ã«ã«æ å ±ãå ¥åãã倱æããèŠæ±ãåéããŸãã
ãããŸã§ã«ãšã©ãŒããªããã°ãããŒãžã®åæãéå§ããŸãã 次ã®ã€ãã³ãã®é çªãå¯èœã§ãã
aã ããŒãžã«ã¯äºæ³ããããã£ã¯ã·ã§ããªãšã³ããªãå«ãŸããŠããŸããããŒãžã¢ãã¬ã¹ã«ã¯ãªãã€ã¬ã¯ããçãããçç±ã¯ãããŸããã
ãã®å ŽåãèŸæžãšã³ããªã®ãã¹ãŠã®éšåãã€ãŸãåèªã®ãã¹ãŠã®ãŠãŒã¶ãŒè§£éã®é åã«ãªããŸãã 次ã«ãåèŠçŽ ã®åæã«é²ã¿ãŸãã
åãŠãŒã¶ãŒã®è§£éã¯ãååãšããŠ3ã€ã®äž»èŠãªãµãã»ã¯ã·ã§ã³ã§æ§æãããŸãïŒèŠåºãïŒèšäºã®äž»èŠãªèŠåºããšåãããè¥å¹²ã®éžè±ãããããŒãžã§ã³ã«ããããšãã§ããŸãïŒã解éãšäŸïŒæåŸã®éšåã¯ãªãã·ã§ã³ã§ãïŒã
ãã¹ãŠã®ããããŒãç¹å¥ãªãããã¡ãŒã«èç©ããŸãïŒéè€ã®è¿œå ãé¿ããããã«ãJavaScriptçšã«æ°ãã
Set
äžæã®èŠçŽ ã®ã¿ãä¿æãã
Set
ããŒã¿æ§é ã䜿çšããŸãïŒã ãã®åã«ãåè¿°ã®
secure(str, isHeadword)
ãä»ããŠåããããŒã
secure(str, isHeadword)
ãã2ã€ã®ãªãã·ã§ã³ãäœæããŸãïŒDSLããããŒã®ããããŒãšãDSLã«ãŒãã»ã¯ã·ã§ã³ã®å é ã«é 眮ããããããŒ-ãããã®é åã«ã¯ç°ãªãèŠä»¶ã課ãããŸãã ãããã®å Žåããå¿ èŠãªæåããšã¹ã±ãŒãããŸãã é·ãããå Žåã¯ããã©ãŒãããèŠä»¶ã«åŸã£ãŠãããã¡ã«é 眮ããåã«æåã®ãªãã·ã§ã³ãæžãããŸãã
jsdom
ã¢ãžã¥ãŒã«ã¯DOMèŠçŽ ããããã¹ããæœåºããããã«ããã€ãã®æ¬ ç¹ããã
jsdom
ããããã£ã䜿çšããããã
jsdom
ã倱ãããšããããã«å®å šã§ãããããã«ããã€ãã®
br
ã¿ã°ã®åã«ã·ã³ããªãã¯ããªã¢ã³ããæ¿å ¥ããŸãã
ãã®åŸãäžæå€æ°ã«æ ŒçŽããåã«ã解éãšäŸã®äžéšãé çªã«åŠçããŸãïŒè¡ã®å é ãšæ«å°Ÿã®ç©ºçœãåé€ããç¹°ãè¿ãããã¹ããŒã¹ãæžãããå¿ èŠãªç¹æ®æåããšã¹ã±ãŒãããã«ãŒãæ¬äœã«å¿ èŠãªæåã®ã€ã³ãã³ããæ¿å ¥ããå°æ¥ã®ã³ã³ãã€ã«äžã«ç©ºã®åºåãç·ã倱ãããªãããã«ããŸãDSL
ã¡ã€ã³éšåãçµäºãããããµãŒãã¹æ å ±ãå€æ°ã«ä¿åããŸããå解éã«å¯Ÿããè³æ祚ãšå解éã®äœææéïŒå¿åãµãã»ã¯ã·ã§ã³ã«è¡šç€ºãããäœåãªéšåãåé€ããŸãïŒã
æåŸã«ããã¹ãŠã®éšåããèŸæžãšã³ããªã®éšåãèç©ãããããã¡ã®å¥ã®èŠçŽ ã«çµåããŸãã
次ã«ãèšäºãè€æ°ã®ããŒãžã«ãŸããã£ãŠãããã©ããã確èªããŸãã ãã®å Žåã次ã®ããŒãžã§åæãç¹°ãè¿ããããããŒãšè§£éãããã¡ãŒãå¢ãããŠãã ãããèšäºã1ããŒãžãå ããå ŽåïŒãŸãã¯ããããè€æ°ããŒãžã®èšäºã®æåŸã®ããŒãžã§ããå ŽåïŒãäž¡æ¹ã®ãããã¡ãŒãèŸæžãã¡ã€ã«ã«æžã蟌ã¿ãèšäºã®ã¢ãã¬ã¹ãæ£åžžã«åŠçãããã¢ãã¬ã¹ã®ã¬ããŒããã¡ã€ã«ã«å ¥åããä¿åããã解éã®æ°ãšããã°ã©ã ã®é床ã«é¢ããæ å ±ã衚瀺ãã次ã®åã«ãããã¡ãŒãã¯ãªã¢ããŸãã«ãŒãã«ãŒãã
ããã«ãã¢ãã¬ã¹é åã空ã§ãªãå Žåã次ã®èŸæžãšã³ããªãèŠæ±ããŸãããã以å€ã®å Žåãããã°ã©ã ã¯çµäºããŸãã
bãäºæ³ãããèšäºã¯ãããŸããããã¢ãã¬ã¹ã¯ãªãã€ã¬ã¯ãã瀺ããŠããŸãããããã«ã¯å°ãªããšã2ã€ã®çç±ããããŸãã
-èšäºã®ã¿ã€ãã«ããµãŒããŒäžã«æ®ã£ãŠãããã誀ã£ãŠååŸãã-解éãåé€ããããäœæãããŸããã§ããããã®å Žåã解éãã代ããã«ãç¹å¥ãªçµµæåãæ¿å ¥ãããŸããããã°ã©ã ããããèŠã€ãããšã察å¿ããã³ã¡ã³ãããšã©ãŒãã¡ã€ã«ã«æžã蟌ã¿ãã³ã³ãœãŒã«ã«ã¡ãã»ãŒãžã衚瀺ããŠã次ã®ã¢ãã¬ã¹ã«é²ã¿ãŸãïŒãŸãã¯ãã¢ãã¬ã¹é åã空ã®å Žåã¯çµäºããŸãïŒã
-çµµæåããªãå ŽåããµãŒããŒã«ãšã©ãŒãããå¯èœæ§ããããŸãããã®å Žåãã¹ã¯ãªããã¯åãã¢ãã¬ã¹ã®ãªã¯ãšã¹ããåéããŸãã
cãããŒãžã¢ãã¬ã¹ãäºæ³ããããã³ãã¬ãŒããšç°ãªããŸã-ãªãã€ã¬ã¯ããçºçããŸããã
ãã®å Žåãããã°ã©ã ã¯ãŠãŒã¶ãŒã®ä»å ¥ãå¿ èŠãšãããšã©ãŒãå ±åããŸãïŒãªãã€ã¬ã¯ãã®çç±ãç解ããå¿ èŠããããŸãïŒãµãŒããŒã§çŠæ¢ãããããµã€ãã§å€æŽãçºçããããŸãã¯ä»¥åã®çµéšã§ã¯èæ ®ãããªãã£ãäœããçºçããŸããïŒã
ãã¹ãŠãããŸãããã°ãæçµçã«DSLã§å®æããèŸæžãååŸããŸãããã®åŸããµãŒãã¹ããã³äžéãã¡ã€ã«ãåé€ã§ããŸãïŒã¹ã¯ãªããã®å®è¡äžã«ãšã©ãŒãã¡ã€ã«ãåæããªãã£ãå ŽåïŒã
IIIã çµæã®ãã£ã¯ã·ã§ããªã䜿çšãããããªãæäœ
ãã®ããŒãã§ã¯ãããžã¿ã«èŸæžãäœæããã³åŠçãããšããããã³ããããç°ãªã圢åŒã«å€æãããšãã«çºçããå¯èœæ§ã®ããä»ã®åé¡ã®äŸã瀺ããŸãã
1.ã³ãŒãã£ã³ã°ã®å€æŽ
ABBYY Lingvoã³ã³ãã€ã©ãŒã¯UTF-16ãšã³ã³ãŒããå¿ èŠãšããGoldenDictã¯UTF-8ãšã³ã³ãŒãïŒçŽç²ãªã©ãã³èªã®èŸæžã§ã¯ãã¡ã€ã«ãµã€ãºã®ååãæäŸããŸãïŒã§ãæ©èœããŸããäžéšã®ããã¹ããšãã£ã¿ã¯ããããã®2ã€ã®ãšã³ã³ãŒãã£ã³ã°ã®å€§ããªãã¡ã€ã«ãç°ãªãé床ã§åŠçããŸãããããå€æã®åå ã«ãªããŸãããã¡ããããšãã£ã¿ãŒã䜿çšããŠå¥ã®ãšã³ã³ãŒãã§ãã¡ã€ã«ãåä¿åããããšãã§ããŸããããããåžžã«æéã§æã䟿å©ãªæ¹æ³ãšã¯éããŸããã
Node.jsã¯ã倧ããªãã¡ã€ã«ãé«éãã€äœã¡ã¢ãªãå€æããç°¡åãªæ¹æ³ãæäŸããŸããäžèšã®ãšã³ã³ãŒãã®2ã€ã®äŸã次ã«ç€ºããŸãïŒãšã³ã³ãŒãã©ãã«ã¯ãæ¡åŒµåã®åã«æ°ãããã¡ã€ã«ã®ååã«è¿œå ãããŸãïŒïŒ
utf8_2_utf16.js
utf16_2_utf8.js
2.ããã¹ãã®çœ®æ
åã®ã±ãŒã¹ãšåæ§ã«ã倧ããªãã¡ã€ã«ã®å Žåããã®æäœã¯ãããã¹ããšãã£ã¿ãŒã䜿çšãããããã¹ã¯ãªããã䜿çšããæ¹ãç°¡åã§çµæžçã§ããã¹ã¯ãªããã®äœæ¥ã¯ãããŸããŸãªæ¡ä»¶ã«å¿ããŠçœ®æãè¡ãå¿ èŠãããå Žåã«ç¹ã«åœ¹ç«ã¡ãŸãã
è€éããå¢ãã3ã€ã®äŸã瀺ããŸãã
aã ç°¡åãªäº€æ
ãã®ã¹ã¯ãªããã¯ãUrban Dictionaryã®ãµã³ãã«ã®ã»ã¯ã·ã§ã³ãé衚瀺ã«ãããã€ãŸããã»ã«ã³ããªãã£ã¹ãã¬ã€ã¿ã°ã§ã©ãããããšãããŠãŒã¶ãŒã®1人ããã®ãªã¯ãšã¹ãã«å¿ããŠè¡šç€ºãããŸãããã¹ã¯ãªãããäœæããŠãèŠæ±ãããããŒãžã§ã³ã®èŸæžãäœæããã«ã¯æ°åããããŸããã
replace.js
ä»ã®åçŽãªã±ãŒã¹ã§ã¯ããã®ãã¡ã€ã«ã®æ£èŠè¡šçŸè¡ã眮ãæããã ãã§ãã
bã ãã¡ã€ã«ã®å é ããBOMã¿ã°ãåé€ãã
PDFãã¡ã€ã«ãäœæãããšãã«PDFããªã³ã¿ãŒãBOMãã¹ããŒã¹ã«å€ããããšã«æ°ä»ãããšãããã®ãããªã¢ã¯ã·ã§ã³ã®å¿ èŠæ§ãçããŸãããBOMã¿ã°ãããã°ã©ã ãæ··ä¹±ãããä»ã®ã±ãŒã¹ããããŸãïŒç¹ã«UTF-8ãšã³ã³ãŒãïŒã
deBOM.js
cã è€éãªä»£æ¿å
次ã®ã¹ã¯ãªããã¯ãããŸããŸãªæ¡ä»¶ã«äŸåãã眮æã®äŸã瀺ããŠããŸãã
-è¡ãDSLãã£ã¬ã¯ãã£ããèšäºã®ã¿ã€ãã«ããŸãã¯æ¬æã®ãããã«å±ããŠãããã«ãã£ãŠãç°ãªã眮æãæ©èœããŸãã
-ããŒã¯ãŒããå«ãè¡ã¯ãã£ã¬ã¯ãã£ãããåé€ããã
#ICON_FILE
LSDèŸæžãéã³ã³ãã€ã«ãããšãã«æ¿å ¥ãããå ŽåããããŸãïŒèŸæžã«ç¬èªã®çµã¿èŸŒã¿ã¢ã€ã³ã³ããªãå Žåã§ãïŒã
-èŠåºãã®åèªã¯ãäŸå€ã®é åã«å«ãŸããŠããªãå Žåãå°æåã«å€æãããŸããèŸæžããããŒã®ãã¹ãŠã®æåã倧æåã§æå®ãããŠããå Žåããã®ãããªå¿ èŠãçããããšããããŸããé åã«ã¯é©åãªååãšç¥èªãå ¥åã§ããŸããé åãå¥ã®ãã¡ã€ã«ã«ä¿åããŠãã¹ã¯ãªããã®æåã«èªã¿èŸŒãããšãã§ããŸãã
-ã«ãŒãæ¬äœã®ã€ã³ãã³ãã¿ã°ã§ã¯ãã€ã³ãã³ãã®æ°ã1ã€å¢ããŸãïŒ
[m1]
å€æ
[m2]
ïŒãªã©ãã
ãã®ã¹ã¯ãªãããä»ã®çœ®æã®ãã³ãã¬ãŒããšããŠäœ¿çšã§ããŸããèŠæ±ãããŠããªãè¡ãã³ã¡ã³ãã¢ãŠãããå¿ èŠãªè¡ãç·šéããã ãã§ãã
replace_in_dsl.js
ãã®ãµãã»ã¯ã·ã§ã³ã®ãã¹ãŠã®äŸã§ã¯ãçä¿¡ãã¡ã€ã«ãšçºä¿¡ãã¡ã€ã«ã®ãšã³ã³ãŒããã³ãŒãã§æå®ãããŠããŸãïŒä»ã®å¯èœãªãšã³ã³ãŒãã®äŸã¯ã眮ãæãã®ããã«ã³ã¡ã³ãåãããŠããŸãïŒããã ããã¹ã¯ãªãããå®è¡ããããŒã«èšå®ããŠãã³ãŒããå°ãããçŽãããšãã§ããŸããå€ããã¡ã€ã«ãšæ°ãããã¡ã€ã«ã®ãšã³ã³ãŒããç°ãªãå Žåã¯ã2ã€ã®ããŒãè¿œå ã§ããŸãã
3.èŠçŽ ã®ã«ãŠã³ã
次ã®ã¹ã¯ãªããã§ã¯ãå®æããUrban Dictionaryã®èŠçŽ ã®æ°ãã€ãŸãããããŒãã«ãŒãããã¡ã€ã«å ã®ãã¹ãŠã®ã«ãŒããšè¡å ã®è§£éã®æ°ãæ€èšããŸããã
count_dsl_elements.js
4.ã¢ã€ãã ãæœåºãã
次ã®ã¹ã¯ãªããã¯ãDSLèŸæžãããã¹ãŠã®ããããŒãæœåºã§ããŸãïŒããšãã°ãæ倧ã®èŸæžã§èšèªã®åèªã®ãªã¹ããäœæããããããããŒãå°æåã«å€æããäžèšã®ã¹ã¯ãªããã®äŸå€ãªã¹ããäœæãããããŸãïŒã
extract_headwords.js
5.èŠçŽ ã®äžææ§ã®æ€èšŒ
倧èŠæš¡ãªèŸæžã®å Žåãäºåã«ãšã©ãŒãä¿®æ£ããé·ãã³ã³ãã€ã«ããã»ã¹ãäœåºŠãç¹°ãè¿ããªãããã«ãã³ã³ãã€ã«ããåã«ããããŒã®äžææ§ã確èªããããšããå§ãããŸãã次ã®ã¹ã¯ãªããã¯ãã¹ãã£ã³ã®çµæãã³ã³ãœãŒã«ã«è¡šç€ºããéè€ãããå Žåã¯ãã¡ã€ã«ã«ãããã®ãªã¹ãã衚瀺ããŸãã
check_headword_uniqueness.js
6. DSLãããã¹ã圢åŒã«å€æãã
èŸæžã®èªã¿ãããããã¹ãããŒãžã§ã³ã¯ããã®ç¬ç«ããæå³ã«å ããŠãPDFããã³DjVu圢åŒã«å€æããããã®åºç€ã«ãªãå¯èœæ§ããããŸããããã«ãããããã¹ããã¡ã€ã«ã®éžæãããæ§é ã®æ©èœãç¹ã«ãã®å³å¯ãªæžåŒèšå®ãã€ãŸã段èœå ã®ç©ºçœãšæ確ãªæ¹è¡ã§ãã£ãŒã«ããèšå®ããŸãã
dsl_2_txt.js
ã¹ã¯ãªããã®å§ãŸãã¯äŒçµ±çã§ãã 2ã€ã®æ°ããã¢ãžã¥ãŒã«ãè¿œå ãããŸãã
ãstring-width-æååã«2æåã®å¹ ãå ãã2æåããããã©ããã確èªããŸãïŒååãšããŠããããã¯CJKã°ã«ãŒãã®ã¢ãžã¢èšèªæåã§ãïŒã段èœãç¹å®ã®ãµã€ãºã®éšåã«åå²ãããšãã«ãè¡ã®é·ããæ£ããèšç®ããããã«å¿ èŠã§ãïŒãã®ãããå°ããªãŠãŒãã£ãªãã£é¢æ°ããã¡ã€ã«ã®æåŸã«å®çŸ©ãããŠããŸã
hasCJK(str)
ïŒã
ã¯ãŒãã©ããïŒæ®µèœããæå®ãããå¹ ã®è¡ã«åå²ãã巊端ããå¯èœãªéãã€ã³ãã³ãããŸãã
ããã«ç¶ããŠãããã¹ãã®èªã¿ããããé«ãã段èœããµãã¹ããªã³ã°ã«åå²ããã¡ã€ã³ããã³è¿œå ã®ã€ã³ãã³ããè¿œå ããDSLã¿ã°ãåé€ããç¹æ®æåãä¿è·ããã«ãŒãã®å¢çãå®çŸ©ããå€ãã®ãŠãŒãã£ãªãã£å€æ°ãç¶ããŸãã
次ã«ãæ¢ã«ç¥ã£ãŠããã·ã£ããããŠã³ãã³ãã©ãŒãç»é²ããåŸãã¹ã¯ãªããã¯ãã£ã¯ã·ã§ããªãã©ã«ããŒã§æ³šéãã¡ã€ã«ãæ¢ãããã®å 容ãçæãããããã¹ããã¡ã€ã«ã«æžã蟌ã¿ãŸãïŒæ³šéã®ååšã®ãã§ãã¯ãæ¿å ¥ã§ããŸãããååãšããŠãããã¯ãŸã ãããŸãïŒã
æåŸã«ãã¹ã¯ãªããã¯ãã«ãŒãã®å€æŽïŒã«ãŒãã®æåŸãã次ã®æåã®èŠåºããžã®é·ç§»ïŒã«åŸã£ãŠDSL圢åŒã1è¡ãã€èªã¿åããå¿ èŠã«å¿ããŠã€ã³ãã³ãã®å¹ ããªã»ããããåæã®å¯Ÿè±¡ïŒã«ãŒãã®ã¿ã€ãã«ãŸãã¯æ¬æïŒã«å¿ããŠå¿ èŠãªã¢ã¯ã·ã§ã³ãå®è¡ããŸãïŒïŒ
-ç¹æ®æåãDSLã¿ã°ãããã³ããã¥ãŒãºãã®ãšã¹ã±ãŒãã空ã®è¡ã倱ãã®ãé²ããŸãã
-ã€ã³ãã³ããè¿œå ããå¿ èŠæ§ãå€æãïŒ[mN]ã¿ã°ãæ€åºãããå ŽåïŒããã¯ã€ããæåã®ååšã確èªããŸãïŒãã®ãããªå Žåã蚱容è¡å¹ ãååã«å€§ãŸãã«åå²ããŸããããã®ãããªæåã®æ°ã«å¿ããŠãã现ããèšå®ãè¿œå ã§ããŸãïŒãçŸåšã®è¡å¹ ãèšå®ããŸããŸããåèªå ã®ããŒãæ¹è¡ã®å¿ èŠæ§ïŒè¡ã«å²ãåœãŠãããã¹ããŒã¹ãè¶ ããåèªãããå ŽåïŒããã³ããã«å¿ããŠæ®µèœããã©ãŒãããããŸãã
-æžåŒèšå®ããã段èœãããã¹ããã¡ã€ã«ã«æžã蟌ã¿ãŸãã
çµæã®ããã¹ããã¡ã€ã«ã®äŸã¯ãäžèšã®é åžè³æã®ã¹ã¯ãªãŒã³ã·ã§ããã§èŠãããšãã§ããŸãã
7.ããã¹ããã¡ã€ã«ã«ããŒãžçªå·ãæ¿å ¥ãã
PDFã«å°å·ããå¿ èŠã®ããããã°ã©ã ã«ã¯ãããŒãžçªå·ãèªåçã«èšå®ãããªãã·ã§ã³ããªãå ŽåããããŸãããã®ãããªå Žåã«ã¯ãããã¹ããã¡ã€ã«ã®æ¹ããŒãžã¹ã¯ãªããã圹ç«ã€å ŽåããããŸãã
paginate.js
ãã®ã¹ã¯ãªããã¯ããã¡ã€ã«ãžã®ãã¹ãšããŒãžããšã®è¡æ°ã®2ã€ã®å¿ é åŒæ°ãåããŸãïŒç©ºè¡ã®åŸã«ããŒãžçªå·ã®ããã«ã¹ããŒã¹ã空ããããã«2ã€æžããŸãïŒã
ãã䟿å©ãªæ°å€æžåŒèšå®ã®ããã«ãæååããŒã¿ãæäœããããã®å€ãã®é¢æ°ãæäŸããæååã¢ãžã¥ãŒã«ãããŒãããŸããç¹ã«ãæå®ãããå¹ ã®äžé£ã®ã¹ããŒã¹ã®äžå€®ã«è¡ãé 眮ããé¢æ°ãšãæ¿å ¥ãã¹ããããã®è¡ã®å³åŽãåé€ããé¢æ°ãå¿ èŠã§ãããã®ããã«ããŠãããŒãžã®äžéšã®è¡ã®äžå€®ã«æ°åãé 眮ã§ããŸãã
æç¶ãéšã§ã¯ãã¹ã¯ãªããã¯å ¥åãã¡ã€ã«ã1è¡ãã€èªã¿åãããã©ãŒããããããããŒãžçªå·ãé©åãªå Žæã«æ¿å ¥ããŠããã¹ãŠãåºåãã¡ã€ã«ã«æžã蟌ã¿ãŸããäœæ¥ã®æåŸã«ãæåŸã®çªå·ãæçµããŒãžã®äžçªäžã«æ¿å ¥ãããŸãã
8.ãã¡ã€ã«ãéšåã«åå²ããŸãã
ããã§ã¯ãç°ãªããã©ã¡ãŒã¿ãŒã«å¿ããŠãåé¢ã®2ã€ã®äŸã瀺ããŸãã
aã ã¢ã«ãã¡ãããã®ç¶Žã
倧ããªèŸæžãã¢ã«ãã¡ãããé ã«åå²ãããšãäœæ¥ããããå ŽåããããŸããããšãã°ã芪ãã©ã«ããŒå šäœãã€ã³ããã¯ã¹ä»ãããŠããããã®ãã¹ãŠã®ã³ã³ãã³ãã®ã€ã³ããã¯ã¹ã§æ€çŽ¢ãããšãAdobe Acrobatã¯ãã¹ãŠã®éšåãå šäœãšããŠèªèã§ããŸãã
split_by_abc.js
äœæ¥ãéå§ããåã«ãã¹ã¯ãªããã¯è¿œå ã®ã¬ããŒããã¡ã€ã«ãäœæããŸãããã®ã¬ããŒããã¡ã€ã«ã«ã¯ãããŒãã®ãµã€ãºã«é¢ããæ å ±ïŒãã¡ã€ã«ããšã®è¡æ°ã«ã€ããŠã®æåïŒãä¿åãããŸããããã¯ãçè«ïŒçµ±èšïŒãšå®çšïŒéšåã®åŸç¶åŠçã®æéã®çæ³ïŒã®äž¡æ¹ã«èå³ããããããããŸããããã ããããã¯ãªãã·ã§ã³ã®è€éãã§ãã
次ã«ãã¢ã«ãã¡ãããã®é åïŒæåŸã«æåãé 眮ãããèŸæžã®æåŸã®éšåã®æåã®èŠåºããå§ãŸããç¹æ®æåã®èªåœãå«ãïŒãšããã€ãã®ãµãŒãã¹å€æ°ã圢æãããŸãã
æé éšåã¯
newPart(chr)
ã次ã®éšåãä¿åãããã¡ã€ã«ãäœæããå¿ èŠããããã³ã«å®è¡ãããé¢æ°ã®åŒã³åºãã§å§ãŸããŸãããã®æ©èœïŒ
-åã®ãã¡ã€ã«ãéããŸãïŒãããäœæ¥ã®å§ãŸãã§ãªãå ŽåïŒã
-ãã®äžã®è¡æ°ãã¬ããŒããã¡ã€ã«ã«æžã蟌ã¿ãŸãã
-è¡ã«ãŠã³ã¿ãŒããªã»ããããŸãã
-ã¢ã«ãã¡ãããã®ä»åŸã®æåã§æ°ãããã¡ã€ã«ãäœæããŸãïŒèŸæžã®æåŸã®éšåã®èšå·ãããã¡ã€ã«åã§äœ¿çšããããã«ã·ã¹ãã ã«ãã£ãŠçŠæ¢ãããŠãããã®ã®äžã«ãªãããšã確èªããŠãã ããïŒã
-æ°ããããŒãã®å é ã«BOMãèšè¿°ããŸãïŒæåã®ããŒãã§ã¯ãèŸæžå šäœããèªåçã«è»¢éãããŸãïŒã
-ã³ã³ãœãŒã«ããã³ã¬ããŒããã¡ã€ã«ã«ã¢ã«ãã¡ãããã®ä»åŸã®æåã衚瀺ããŸãã
-ã¢ã«ãã¡ãããã®é åã空ã§ãªãå Žåã¯ãæ£èŠè¡šçŸãäœæããŸããæ£èŠè¡šçŸã¯ãæ°ããã¢ã«ãã¡ãããéšåãžã®ç§»è¡ããã£ããããããã«çä¿¡ãã¡ã€ã«ã®è¡ããã§ãã¯ããŸãã
æåã®éšåã®ãã¡ã€ã«ãäœæããåŸãèŸæžå šäœã®èªã¿åããµã€ã¯ã«ãç¶ããŸããåè¡ã¯åè¿°ã®æ£èŠè¡šçŸã«ãã£ãŠãã§ãã¯ãããå¿ èŠã«å¿ããŠæ°ãããã¡ã€ã«ãäœæãããŸãã次ã®éšåã®ããã¹ããçŸåšã®ãã¡ã€ã«ã«æžã蟌ãŸããã¬ããŒããã¡ã€ã«ã®è¡ã«ãŠã³ã¿ãŒãå¢å ããŸããã«ãŒãã®çµããã«ãæåŸã®éšåã®ãµã€ãºãæžã蟌ãŸãããã¹ãŠã®ãã¡ã€ã«ãéããããŸãã
ãã®ã¹ã¯ãªããã¯ãABBYYã³ã³ãã€ã©ãŒã«ãšã£ãŠã¯åŒ·ããã巚倧ãªDSLãã¡ã€ã«ãåå²ããã®ã«ã圹ç«ã¡ãŸãïŒããšãã°ãæè¿ã®ããŒãžã§ã³ã®Lingvoã§ã¯ããã·ã¢èªããè±èªã®æãèšå€§ãªæ¹åããMultitranèŸæžãã³ã³ãã€ã«ããããšãããšãã¡ã¢ãªãŒäžè¶³ã«é¢ããã¡ãã»ãŒãžã§ã³ã³ãã€ã©ãŒãã¯ã©ãã·ã¥ããŸããïŒããã®å ŽåãèŸæžãã¢ã«ãã¡ãããã®äžå€®ã®æåã§2ã€ã®éšåã«åå²ããå¿ èŠãããå ŽåããããŸãïŒãããã£ãŠãäžèšã®ã¢ã«ãã¡ãããé åã¯ãã®æåã®1ã€ã«æžããããšãã§ããŸãïŒã
bã ããŒãžåºåã
èŸæžå šäœã倧ããªãã¡ã€ã«çšã®ããã¹ããšãã£ã¿ããå®å šã«PDFã§å°å·ããããšãããšãããªã³ã¿ã«éä¿¡ããããšãã£ã¿ã65,000ããŒãžãè¶ ããªããšããå¶éã«ééããŸãããèŸæžã65,000ããŒãžã«åå²ããåå¥ã«å°å·ããŠãããAdobe Acrobatã§ããŒããçµåããå¿ èŠããããŸããããã®ããã«ã次ã®ã¹ã¯ãªãããäœæãããŸããã
split_by_pages.js
ã¹ã¯ãªããã¯ãããã€ãã®äŸå€ãé€ããŠåã®ã¹ã¯ãªããã«äŒŒãŠããŸãã-ã¹ã¯ãªããã¯ã
èµ·åæã«3ã€ã®å¿ é åŒæ°ãåããŸããèŸæžå šäœãžã®ãã¹ãããŒãžãããã®è¡æ°ãåå²ãããèŸæžã®äžéšãããã®ããŒãžæ°ã
-ã¬ããŒããã¡ã€ã«ã¯äœæãããŸãããããŒãã®ãµã€ãºãæ¯èŒçåãã«ãªãããã§ãã
-æ°ããããŒããäœæããæ©èœãç°¡çŽ åããïŒã¬ããŒããã¡ã€ã«ã«ã¬ã³ãŒãããªãããã¹ãæ£èŠè¡šçŸãäœæãããŸãïŒãã¢ã«ãã¡ãããã®ä»£ããã«ãããŒãã®ååã«äžè¬çãªçªå·ä»ãã®äžéšãšããŠæåã®ããŒãžã®çªå·ãå«ãŸããŸãã
-èªã¿åã/æžã蟌ã¿ãµã€ã¯ã«ã«ãããèŸæžãã¡ã€ã«ã®èŠåºãã®æåã®æåã§ã¯ãªããè¡ãšããŒãžã®ã«ãŠã³ã¿ãŒã«åºã¥ããŠãæ°ãããã¡ã€ã«ãäœæãããŸãã
Node.jsã®æ©èœããã¹ããããé»åèŸæžã®äœæè ããã³ç·šéè ãšå ±æã§ããã®ã¯ããããããã ãã§ããæéãšæ³šæãããããšããéå°éçãªã¢ãããŒãã«é¢é£ããã³ãŒãã®ãã¹ãŠã®æ¬ é¥ããaã³ç³ãäžããŸããããžã¿ã«èŸæžç·šéã§å¹žéãç¥ããŸãïŒ
PSèšäºã®ç¬¬2éšã¯ãæ°ããã¿ã¹ã¯ãšäŸãšãšãã«ãããã§èªãããšãã§ããŸãã