ÆüËܸì¤Î¥Ú¡¼¥¸¤ò¥Ö¥é¥¦¥¶¤Ç¸«¤Æ¤¤¤ë¤È¤ª¤«¤·¤Ê°ÌÃ֤Dzþ¹Ô¤µ¤ì¤ë¤³¤È¤¬Â¿¤¤¤Î¤Ç¤¹¤¬¡¢Ã±¸ì¤Èñ¸ì¤Î´Ö¤Ë¥¹¥Ú¡¼¥¹¤òÆþ¤ì¤ë±Ñ¸ì¤Ê¤É¤È°Û¤Ê¤ê¡¢ÆüËܸì¤Ç¤Ïʬ¤«¤Á½ñ¤­¤¬¤µ¤ì¤Æ¤¤¤Ê¤¤¤Î¤¬¸¶°ø¡£Ã±¸ì¤ÎÅÓÃæ¤Çʸ¾Ï¤¬ÀÞ¤êÊÖ¤µ¤ì¤Æ¤·¤Þ¤¦¸¶°ø¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£BudouX¤Ïµ¡³£³Ø½¬¥â¥Ç¥ë¤òÍøÍѤ·¤ÆÍÆÎ̤òÍÞ¤¨¤Ä¤Ä¡¢¥µ¡¼¥É¥Ñ¡¼¥Æ¥£¡¼¤ÎAPI¤ä¥é¥¤¥Ö¥é¥ê¤Ë°Í¸¤»¤º¤Ëʬ¤«¤Á½ñ¤­¤ò¹Ô¤Ã¤Æ¤¯¤ì¤ë¥ª¡¼¥×¥ó¥½¡¼¥¹¥é¥¤¥Ö¥é¥ê¤Ê¤Î¤Ç¡¢Æɤߤ䤹¤¤²þ¹Ô¤¬¼Â¸½¤Ç¤­¤Þ¤¹¡£

Google Developers Japan: BudouX: Æɤߤ䤹¤¤²þ¹Ô¤Î¤¿¤á¤Î·ÚÎ̤Êʬ¤«¤Á½ñ¤­´ï

https://developers-jp.googleblog.com/2023/09/budoux-adobe.html

BudouX¤Î»ÈÍÑ¥¤¥á¡¼¥¸¤Ï²¼¿Þ¤ÎÄ̤ꡣ½¾Íè¤Ï²èÌÌÉý¤Ë¤è¤Ã¤Æ¤Ï¡ÖºÇÀèü¡×¤ä¡Ö¥Æ¥¯¥Î¥í¥¸¡¼¡×¤Ê¤É¤Îñ¸ì¤ÎÅÓÃæ¤Ç²þ¹Ô¤¬¹Ô¤ï¤ì¤Æ¤·¤Þ¤¦»ö¤¬¤¢¤ê¤Þ¤·¤¿¤¬¡¢BudouX¤ò»ÈÍѤ¹¤ë¤³¤È¤Çñ¸ì¤ÎÁ°¸å¤Ç²þ¹Ô¤òÆþ¤ì¤ë»ö¤¬¤Ç¤­¡¢Æɤߤ䤹¤µ¤ò²þÁ±²Äǽ¤Ç¤¹¡£



BudouX¤Ï¿ôʸ»ú¤º¤Äʤ٤¿É½¸½¤Ç¤¢¤ëN¥°¥é¥à¤òÆÃħÎ̤Ȥ·¤Æ»ÈÍѤ·¡¢¤½¤ÎN¥°¥é¥à¤ËÂФ·¤ÆAdaBoost¥¢¥ë¥´¥ê¥º¥à¤òŬÍѤ·¤¿µ¡³£³Ø½¬¥â¥Ç¥ë¤òÍøÍѤ·¤Æ¤¤¤Þ¤¹¡£µ¡³£³Ø½¬¤Î¥â¥Ç¥ë¤¬¤½¤ì¤¾¤ì¤Îʸ»ú¤´¤È¤Ë¡Ö¼¡¤Îʸ»ú¤È¤Î´Ö¤ÇÀÚ¤ë¤Ù¤­¤«¡×¤òͽ¬¤¹¤ë¤³¤È¤ÇŬÀڤʲþ¹Ô¤ò¼Â¹Ô¤·¤Æ¤¤¤ë¤È¤Î¤³¤È¡£

¥â¥Ç¥ë¤Î³Ø½¬¤Ë¤ÏµþÅÔÂç³Ø¾ðÊó³Ø¸¦µæ²Ê¤ÈNTT¥³¥ß¥å¥Ë¥±¡¼¥·¥ç¥ó²Ê³Ø´ðÁø¦µæ½ê¤Î¶¦Æ±¸¦µæ¥æ¥Ë¥Ã¥È¤Ë¤è¤ë²òÀÏºÑ¤ß¥Ö¥í¥°¥³¡¼¥Ñ¥¹¤ò»ÈÍѤ·¤¿¤È¤Î¤³¤È¤Ç¤¹¡£¤Ê¤ª¡¢³Ø½¬¤Ë¤Ä¤¤¤Æ¤Î¾ÜºÙ¤Ê¼êË¡¤Ï¥ê¥Ý¥¸¥È¥êÆâ¤Îscripts/README¤Ë¤Æ²òÀ⤵¤ì¤Æ¤¤¤Þ¤¹¡£

¤Þ¤¿¡¢¼ÂºÝ¤ËBudouX¤ò³èÍѤ·¤Æ¤¤¤ë»öÎã¤È¤·¤Æadobe.com¤ÎÎ㤬Åо줷¤Æ¤¤¤Þ¤¹¡£Adobe¤Ï½¾Íè¤è¤ê¶èÀÚ¤êʸ»ú¤ò¼êÆ°¤ÇÁÞÆþ¤¹¤ë¤³¤È¤ÇŬÀڤʲþ¹Ô¤ò¼Â»Ü¤·¤Æ¤¤¤Þ¤·¤¿¤¬¡¢adobe.com¤Î¹½ÃÛ¤ËÍøÍѤ¹¤ë¥³¥ó¥Æ¥ó¥Ä´ÉÍý¥·¥¹¥Æ¥à(CMS)¤òAdobe Experience Manager¤«¤éAEM Franklin¤Ë°Ü¹Ô¤¹¤ëºÝ¤ËÆüËܸì¤Î²þ¹Ô½èÍý¤Îµ¡Ç½¤¬¤Ê¤¯¤Ê¤Ã¤Æ¤·¤Þ¤Ã¤¿¤¿¤á¡¢BudouX¤òƳÆþ¤·¤¿¤È¤Î¤³¤È¡£

¤¿¤À¤·¡¢Æ³Æþ¤ÎºÝ¤Ë¤Ï3¤Ä¤Î²ÝÂ꤬»Ä¤Ã¤Æ¤¤¤¿¤È½Ò¤Ù¤é¤ì¤Æ¤¤¤Þ¤¹¡£

1¡§ÀºÅÙ¤ÎÌäÂê

Adobe¤Î¥µ¥¤¥È¤Ç¤è¤¯»ÈÍѤµ¤ì¤Æ¤¤¤ë¸ÀÍդΤ¦¤Á¡¢¡Ö¤ª¡¢¤´¡¢¤Ê¤É¤Îº·É¸ì¡×¡Ö¥Ç¥¸¥¿¥ë¥¨¥¯¥¹¥Ú¥ê¥¨¥ó¥¹¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ê¤É¤ÎŤ¤¥«¥¿¥«¥Ê¤ÎÊ£¹ç̾»ì¡×¤Ê¤É¤Ë¤Ä¤¤¤ÆBudouX¤Îɸ½à¥â¥Ç¥ë¤Ç¤ÏÀºÅÙ¤¬Ä㤤¤È¤¤¤¦ÌäÂ꤬¤¢¤ê¤Þ¤·¤¿¡£¤³¤ÎÌäÂê¤Ë¤Ä¤¤¤Æ¤ÏAdobe.com¤Î¥Ç¡¼¥¿¤Ç³Ø½¬¤µ¤»¤ë¤³¤È¤ÇŬÀڤʵ¡³£³Ø½¬¥â¥Ç¥ë¤ò³«È¯¤·¤Æ²ò·è¤·¤¿¤È¤Î¤³¤È¡£

2¡§¶Ø§½èÍý¤ÎÌäÂê

¹ÔƬ¤ä¹ÔËö¤ËÆÃÄê¤Îʸ»ú¤¬Íè¤Ê¤¤¤è¤¦¤Ëʸ»ú¤ÎʤӤòÄ´À°¤¹¤ë½èÍý¤Î¤³¤È¤ò¶Ø§½èÍý¤È¤¤¤¤¤Þ¤¹¡£ÉáÃʤϥ֥饦¥¶¤¬¼«Æ°¤Ç¶Ø§½èÍý¤ò¹Ô¤Ã¤Æ¤¯¤ì¤Þ¤¹¤¬¡¢BudouX¤Î»ÈÍÑ»þ¤Ë¤ÏBudouX¤Î¶èÀÚ¤êʸ»ú¤¬Í¥À褵¤ì¤Æ¹ÔƬ¤Ëµ¿ÌäÉ䤬ÉÕ¤¤¤Æ¤·¤Þ¤¦¤Ê¤É¤ÎÌäÂ꤬ȯÀ¸¤·¤¿¤È¤Î¤³¤È¡£



Adobe¤Ï¥ë¡¼¥ë¥Ù¡¼¥¹¤Î¶Ø§½èÍý¤òÄɲ乤뤳¤È¤Ç¤³¤ÎÌäÂê¤ò²ò·è¤·¤Þ¤·¤¿¡£

3¡§ºÙ¤«¤¤¥«¥¹¥¿¥Þ¥¤¥º¤ÎÌäÂê

¾ì¹ç¤Ë¤è¤Ã¤Æ¤Ï¡¢BudouX¤Î¼«Æ°½èÍý¤Ç¤Ï¤Ê¤¯¼êÆ°¤ÇÆÃÄê¤Î°ÌÃ֤˶èÀÚ¤ê¤òÆþ¤ì¤¿¤¤¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£Adobe¤Ï¡Ö²þ¹Ô¥ë¡¼¥ë¤ò¼êÆ°¤ÇÄɲ乤ë¡×¡Ö¥Ú¡¼¥¸¤Î°ìÉô¤ËBudouX¤òŬÍѤ·¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¡×¡ÖBudouX¤ËÅϤ¹¥Ñ¥é¥á¡¼¥¿¡¼¤òÄ´À°¤¹¤ë¡×¤Ê¤É¤ÎÄ´À°¤ò¥Ú¡¼¥¸¤´¤È¤ËÀßÄê¤Ç¤­¤ë¤è¤¦¤Ë¤¹¤ë¤³¤È¤Ç¡¢Â¿¤¯¤ÎÉôʬ¤ÇBudouX¤Î¼«Æ°½èÍý¤Î²¸·Ã¤ò¼õ¤±¤Ä¤Ä¡¢ºÙ¤«¤¤Éôʬ¤âÍýÁÛÄ̤ê¤Ë²þ¹Ô¤µ¤»¤ë¤³¤È¤¬²Äǽ¤Ë¤Ê¤Ã¤¿¤È¤Î¤³¤È¡£

¤³¤¦¤·¤¿²þ¹Ô½èÍý¤Î¡Ö¤¢¤ê¡×¡Ö¤Ê¤·¡×¤Î°ã¤¤¤ò°ì¸«¤·¤Æʬ¤«¤ëÈæ³Ó²èÁü¤¬·ÇºÜ¤µ¤ì¤Æ¤¤¤Þ¤·¤¿¡£²þ¹Ô½èÍý¤¬Ìµ¤¤¾ì¹ç¡¢¡Ö¥Ä¡¼¥ë¡×¡ÖÄɲáס֥¢¥¯¥»¥¹¡×¤Ê¤É¤Îñ¸ì¤ÎÅÓÃæ¤Ç²þ¹Ô¤¬Æþ¤Ã¤Æ¤·¤Þ¤¤¤Þ¤¹¡£



BudouX¤ò»ÈÍѤ·¤¿²þ¹Ô½èÍý¤òÆþ¤ì¤ë¤³¤È¤Ç²¼µ­¤Î¤è¤¦¤ËÆɤߤ䤹¤¤É½¼¨¤Ë¤Ç¤­¤ë¤È¤¤¤¦¤ï¤±¡£



BudouX¤ÏUnicode¤ª¤è¤Ó¹ñºÝ²½¤ÈÃÏ°è²½¤Ë´Ø¤¹¤ë¥é¥¤¥Ö¥é¥ê¤Ç¤¢¤ë¡ÖInternational Components for Unicode(ICU)¡×¤Î°ìÉô¤È¤Ê¤Ã¤Æ¤ª¤ê¡¢¥¦¥§¥Ö¤Ë¸Â¤é¤º¤µ¤Þ¤¶¤Þ¤Ê¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤ÇÍøÍѤµ¤ì»Ï¤á¤Æ¤¤¤ë¤È¤Î¤³¤È¡£¤½¤Î¤Û¤«¡¢2023ǯÆâ¤ÎÅо줬ͽÄꤵ¤ì¤Æ¤¤¤ëAndroid 14¤ä¡¢2023ǯ10·î31Æü¥ê¥ê¡¼¥¹Í½Äê¤ÎChrome 119¤ÇBudouX¤¬ºÎÍѤµ¤ì¤ë¸«Ä̤·¤Ç¡¢lang°À­¤¬¡Öja¡×¤ËÀßÄꤵ¤ì¤Æ¤¤¤ëÍ×ÁǤËCSS¤Ç¡Öword-break: auto-phrase¡× ¤òÀßÄꤹ¤ë¤À¤±¤ÇBudouX¤Î¼«Æ°²þ¹Ôµ¡Ç½¤¬ÍøÍѲÄǽ¤Ë¤Ê¤ê¤Þ¤¹¡£



¤Ê¤ª¡¢BudouX¤ÏJavaScript¡¦Python¡¦Java¤Î¥é¥¤¥Ö¥é¥ê¤¬ÍÑ°Õ¤µ¤ì¤Æ¤ª¤ê¡¢¤½¤ì¤¾¤ì¤Î»ÈÍÑÎã¤âµ­ºÜ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£

¢¡JavaScript

¥Ñ¥Ã¥±¡¼¥¸´ÉÍý¥Ä¡¼¥ë¤ÎNPM¤òÍøÍѤ¹¤ë¾ì¹ç¡¢¡Önpm i budoux¡×¤ÇBudouX¤ò¥¤¥ó¥¹¥È¡¼¥ë²Äǽ¤Ç¤¹¡£¥¤¥ó¥¹¥È¡¼¥ë¸å¤Ï²¼µ­¤Î¥³¡¼¥É¤ÇÍøÍѲÄǽ¤Ç¤¹¡£

import { loadDefaultJapaneseParser } from 'budoux' ;
const parser = loadDefaultJapaneseParser();
console.log(parser.parse('º£Æü¤ÏÅ·µ¤¤Ç¤¹¡£')); // ['º£Æü¤Ï', 'Å·µ¤¤Ç¤¹¡£']


NPM¤òÍøÍѤ»¤ºES Module¤È¤·¤ÆÆɤ߹þ¤à¾ì¹ç¤Ï²¼µ­¤Î¥³¡¼¥É¤¬ÍøÍѤǤ­¤Þ¤¹¡£

<script type="module"> import {loadDefaultJapaneseParser} from
'https://unpkg.com/budoux/module/index.js';
const parser = loadDefaultJapaneseParser();
console.log(parser.parse('º£Æü¤ÏÅ·µ¤¤Ç¤¹¡£')); // ['º£Æü¤Ï', 'Å·µ¤¤Ç¤¹¡£']
</script>


¤µ¤é¤ËWeb ComponentsÈǤâÍÑ°Õ¤µ¤ì¤Æ¤ª¤ê¡¢²¼µ­¤Î¥³¡¼¥É¤ÇBudouX¤òÆɤ߹þ¤à¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

<script
src="https://unpkg.com/budoux/bundle/budoux-ja.min.js"></script>


¤½¤Î¸å¡¢¡Öbudoux-ja¡×Í×ÁǤ˥ƥ­¥¹¥È¤òÀßÄꤹ¤ë¤È¡¢Shadow Root¤Ë¼«Æ°¤Ç¥Æ¥­¥¹¥ÈÀÞ¤êÊÖ¤·¤òÀ°¤¨¤ë¤¿¤á¤Î¥Þ¡¼¥¯¥¢¥Ã¥×¤¬ÁÞÆþ¤µ¤ì¤Þ¤¹¡£

<budoux-ja>º£Æü¤ÏÅ·µ¤¤Ç¤¹¡£</budoux-ja>

<!-- Shadow Root -->

<span style="word-break: keep-all; overflow-wrap:
anywhere;">º£Æü¤Ï<wbr>Å·µ¤¤Ç¤¹¡£</span>


¢¡Python

Python¤Ç¤Ï¥Ñ¥Ã¥±¡¼¥¸´ÉÍý¥·¥¹¥Æ¥à¤Îpip¤ò»ÈÍѤ·¡¢¡Öpip install budoux¡×¤È¤¤¤¦¥³¥Þ¥ó¥É¤ÇBudouX¤ò¥¤¥ó¥¹¥È¡¼¥ë¤Ç¤­¤Þ¤¹¡£¤½¤Î¸å¤Ï²¼µ­¤Î¥³¡¼¥É¤ÇÍøÍѲÄǽ¤Ç¤¹¡£

import budoux

parser = budoux.load_default_japanese_parser()

print(parser.parse('º£Æü¤ÏÅ·µ¤¤Ç¤¹¡£')) # ['º£Æü¤Ï', 'Å·µ¤¤Ç¤¹¡£']


¢¡Java

BudouX¥â¥¸¥å¡¼¥ë¤ÏMaven Central Repository¤Ë¤Æ¡Öcom.google.budoux¡×¤È¤·¤Æ¸ø³«¤µ¤ì¤Æ¤¤¤Þ¤¹¡£¥¤¥ó¥¹¥È¡¼¥ë¸å¤Ï²¼µ­¤Î¥³¡¼¥É¤ÇÍøÍѲÄǽ¤Ç¤¹¡£

import com.google.budoux.Parser;

public class App {
public static void main(String[] args ){
Parser parser =
Parser.loadDefaultJapaneseParser();
System.out.println(parser.parse("º£Æü¤ÏÅ·µ¤¤Ç¤¹¡£"));
// ["º£Æü¤Ï", "Å·µ¤¤Ç¤¹¡£"]
}
}


¢¡¥Ç¥â

¼ÂºÝ¤ËBudouX¤ÎÆ°ºî¤ò³Îǧ¤Ç¤­¤ë¤è¤¦¡¢¥Ç¥â¤òÍÑ°Õ¤·¤Æ¤ß¤Þ¤·¤¿¡£

¤³¤Î¥Æ¥­¥¹¥È¥¨¥ê¥¢Æâ¤Ëʸ»ú¤òÆþÎϤ·¤Æ²¼¤µ¤¤¡£²¼Éô¤ËBudouX¤Ç¶èÀÚ¤ê¤òÀßÄꤷ¤¿·ë²Ì¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£¥µ¥¤¥º¤òÊѹ¹¤·¤¿ºÝ¤Î·ë²Ì¤¬Ê¬¤«¤ê¤ä¤¹¤¤¤è¤¦¡¢²£Éý¤ò¤¤¤¯¤Ä¤«¤Ëʬ¤±¤Æɽ¼¨¤·¤Æ¤ß¤Þ¤·¤¿¡£

¡¦²£Éý360px

¤³¤Î¥Æ¥­¥¹¥È¥¨¥ê¥¢Æâ¤Ëʸ»ú¤òÆþÎϤ·¤Æ²¼¤µ¤¤¡£²¼Éô¤ËBudouX¤Ç¶èÀÚ¤ê¤òÀßÄꤷ¤¿·ë²Ì¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£¥µ¥¤¥º¤òÊѹ¹¤·¤¿ºÝ¤Î·ë²Ì¤¬Ê¬¤«¤ê¤ä¤¹¤¤¤è¤¦¡¢²£Éý¤ò¤¤¤¯¤Ä¤«¤Ëʬ¤±¤Æɽ¼¨¤·¤Æ¤ß¤Þ¤·¤¿¡£

¡¦²£Éý540px

¤³¤Î¥Æ¥­¥¹¥È¥¨¥ê¥¢Æâ¤Ëʸ»ú¤òÆþÎϤ·¤Æ²¼¤µ¤¤¡£²¼Éô¤ËBudouX¤Ç¶èÀÚ¤ê¤òÀßÄꤷ¤¿·ë²Ì¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£¥µ¥¤¥º¤òÊѹ¹¤·¤¿ºÝ¤Î·ë²Ì¤¬Ê¬¤«¤ê¤ä¤¹¤¤¤è¤¦¡¢²£Éý¤ò¤¤¤¯¤Ä¤«¤Ëʬ¤±¤Æɽ¼¨¤·¤Æ¤ß¤Þ¤·¤¿¡£

¡¦²£Éý100¡ó

¤³¤Î¥Æ¥­¥¹¥È¥¨¥ê¥¢Æâ¤Ëʸ»ú¤òÆþÎϤ·¤Æ²¼¤µ¤¤¡£²¼Éô¤ËBudouX¤Ç¶èÀÚ¤ê¤òÀßÄꤷ¤¿·ë²Ì¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£¥µ¥¤¥º¤òÊѹ¹¤·¤¿ºÝ¤Î·ë²Ì¤¬Ê¬¤«¤ê¤ä¤¹¤¤¤è¤¦¡¢²£Éý¤ò¤¤¤¯¤Ä¤«¤Ëʬ¤±¤Æɽ¼¨¤·¤Æ¤ß¤Þ¤·¤¿¡£