negative = false
DevFest は、Google Developer Group(GDG)コミュニティによって世界各地で開かれるデベロッパー向けイベントです。参加者は Android、Firebase、Google Cloud Platform、TensorFlow、Web などの Google のデベロッパー テクノロジーに関する技術情報、知識やアイデアを共有できます。
■ DevFest Shikoku 2023 うどん県 with えれくら
日時 : 2023 年 10 月 29 日(日) 13:00~17:00 場所 : e-とぴあ・かがわ BBスクエア Zoom) 参加費 : 無料 定員 : 0 名 申込サイト : こちら 主催 : GDG Shikoku、えれくら 内容 : IoT
■ DevFest Shikoku 2023 in 徳島
日時 : 2023 年 11 月 4 日(土) 場所 : 株式会社 HIROKA サテライトオフィス鳴門 参加費 : 無料 定員 : 申込サイト : こちら 主催 : GDG Shikoku 内容 : GCP 入門ハンズオン
■ DevFest Nagoya 2023
日時 : 2023 年 11 月 24 日(金) 18:30~ 場所 : マネーフォアード 東海支社、名古屋開発拠点 参加費 : 無料 定員 : 一般参加(19 名) LT 参加(6 名) 申込サイト : こちら 主催 : GDG Nagoya 内容 : LT のテーマは『ことしの頑張り共有しましょう!』
■ DevFest Shikoku 2023 愛媛
日時 : 2023 年 12 月 10 日(日) 13:00~ 場所 : 愛媛大学 総合情報メディアセンター 2F ゼミ室 参加費 : 無料 定員 : 10 申込サイト : こちら 主催 : GDG Shikoku 内容 : 機械学習
■ DevFest: Kobe Developer Day
日時 : 2023 年 12 月 16 日(土) 14:00~ 場所 : 会場調整中 参加費 : 無料 定員 : オフライン会場参加(50 名) オンライン参加(100 名) 申込サイト : こちら 主催 : GDG Kobe 内容 : 復活の GDG Kobe! 記念すべき今年の年末イベント、DevFest Kobe Developer Day を開催いたします!噂のシリコンバレー流エンジニア教育から企業での生成 AI 活用事例まで、幅広くテクノロジーを取り扱ったお話を聞いていただける予定です。
■ DevFest 2023 in 高知
日時 : 2023 年 12 月 17 日(日) 13:30~ 場所 : Kochi Startup BASE 参加費 : 無料 定員 : 15 申込サイト : こちら 主催 : GDG Shikoku 内容 : Google Cloud Platform 入門ハンズオン
■ DevFest Kyoto 2023
日時 : 2023 年 12 月 17 日(日) 13:30~ 場所 : ウィングス京都 参加費 : 無料 定員 : 一般参加(14 名) LT 参加(6 名) 申込サイト : こちら 主催 : GDG京都, WTM京都 内容 : コードラボ、LT 大会
■ GDG DevFest Tokyo 2023
日時 : 2023 年 12 月 9 日(土)10:00~19:00 場所 : ハイブリッド(Google 六本木オフィス& YouTube Live) 参加費 : 無料 定員 : 会場オフライン・一般参加(300 名) LT 参加(10 名) オンライン参加は人数制限無し 申込サイト : こちら 主催 : GDG Tokyo 内容 : Android, Chrome, ML など幅広くセッションを予定中
現在、デベロッパー トークンなしで API を呼び出すことができる Google Ads API パイロット プログラムの早期登録を受け付けています。API アクセスレベルは、Google Cloud プロジェクト ID と Google Cloud の組織によって識別されます。
このパイロット プログラムには、次のようなメリットがあります。
この機能の詳細については、デベロッパー ドキュメントをご覧ください。
ご質問はフォーラムからご連絡ください。
Google Cloud は、日本時間 11 月 15 日(水)〜 16 日(木)の 2 日間にわたり、旗艦イベント Google Cloud Next Tokyo '23 を東京ビッグサイトにて開催します。イベント当日は、会場にて様々なプログラムを用意しておりますので、ぜひ会場にお越しください。登録がまだの方は、事前に こちらからしておきましょう。
各日とも 10 時よりスタートいたします。
基調講演へご来場の先着特典として Google Cloud オリジナル クッションを進呈します。(なくなり次第終了)
オリジナル音声での聴講はメイン会場だけで、サテライト会場は日本語訳の音声のみとなります。
両日とも大変混みあいます。開場は 9:00 からとなりますので、早めの入場にご協力ください。
DAY 1 は大きな進化を遂げている生成 AI と AI、機械学習を中心にプロダクト アップデートをご紹介します。また、Google Cloud の生成 AI ソリューションをすでにご利用いただいている企業のリーダーから、そのビジョンと取り組み、Google Cloud の生成 AI の成果をお聞きします。
DAY 2 は、米国の Next で発表された最新の Google Cloud プロダクトとソリューションをお届けします。さらに、多岐にわたる業種のビジネス リーダーの方々に、ビジネス課題を Google Cloud でどう解決しているのか、インフラストラクチャ、データの利活用、コラボレーションといった側面にフォーカスを当てお話しいただきます。
ブレイクアウト セッションのライブ配信は行っておりませんので、セッションをご覧になりたい方は会場にお越しいただく必要があります。当日、会場にて空席がある場合は、事前登録なしでもご聴講いただけますが、人気セッションは満席の可能性があるため、セッションの事前登録をした上でお越しいただくのをおすすめします。また、セッションの後にスピーカーに直接質問ができる「Ask the Speaker」ブースも設けております。この機会をご活用ください。
実際に触れるライブデモ、エキスパートとの交流やライトニング トークなど、会場でしか体験できない企画を多数ご用意しています。スキルアップやコミュニティと繋がるためにも、この機会をご活用いただき、会場にて直接体験してください。
★ Ask the Expert では、Google のエンジニアや Champion Innovators が皆さんのご質問やご相談にお答えします。データ エンジニア、クラウド アーキテクト、アプリ開発者の方が対象です。
★Innovators Hive にある Tech Base では、Quiz Challenge を実施します。10 問の技術的なクイズに答えると、その正答数に応じた賞品を獲得できます。特賞は、Google Cloud Innovators Plus (通常年間 299 ドル、最大 1,500 ドル相当のデベロッパー特典あり)の 1 年間無料アクセス ※1 です。ぜひ、この機会をお見逃しなく!
★ライトニング トークには、スタートアップ企業や Champion Innovators が登壇します。また、認定資格やトレーニングについてもご紹介します。タイムテーブルは、こちらの 4 ページをご参照ください。事前登録不要です。
★Power of Cloud for Startups エリアでは、スタートアップ向けプログラムのご紹介や技術相談に加えて、Beatrust株式会社・Lazuli株式会社・カラクリ株式会社・株式会社ビットキーのサービスもご紹介します。
この他、Google Cloud Innovators、Jagu’e’r、Google Developer Groups および Game Engineers Meetup といったコミュニティのブースや、Google Maps Platform、イノベーションの源泉となるカルチャーに関するブースでも皆さんをお待ちしています。
会場内 MAP やセッション タイムテーブルは Program Guide をご参照ください。イベント参加にあたっての FAQ はこちらにまとめてあります。
名称 : Google Cloud Next Tokyo '23(略称 Next Tokyo '23)
日時 : 日本時間 2023 年 11 月 15 日(水) ~ 16 日(木)
会場 : 東京ビッグサイト(東京国際展示場) 西展示棟
対象 : 開発者から CEO まで、クラウド テクノロジーを使ったビジネス課題の解決を探求する、すべての方
ハッシュタグ : #googlecloudnext
Google Cloud Next Tokyo 運営事務局
E-mail: gc-nexttokyo-info@google.com
Google Cloud は、日本時間 11 月 15 日(水)〜 16 日(木)の 2 日間にわたり、旗艦イベント Google Cloud Next Tokyo '23 を東京ビッグサイトにて開催します。
Google Cloud の最新製品やソリューションを実際に体験したい方は、本日ご紹介するブースや Innovators Hive の情報のぜひチェックしてください。気になるブースやコンテンツがありましたら、忘れずイベント登録をしておきましょう。
AI Innovation、Modern Infrastructure、Data、Security、Google Workspace、の 5 つのエリアでは 22 の Google Cloud デモブースに加え、カプコン、富士フイルムビジネスイノベーション富士フィルム、明治クッカーによる 3 つのカスタマーブースをご用意しております。
Google Cloud の最新のプロダクトやソリューションを、会場でご体験ください。>> 詳細はこちら
Google Cloud パートナーによるスポンサー展示ブースでは、Google Cloud(GCP)、Google Workspace のデモや導入事例、そして導入支援に関するご相談やクラウド全般に関するご質問をお待ちしています。
ぜひ、スポンサーブースにお越しください。>> 詳細はこちら
主にデベロッパーやエンジニア向けのゾーンです。デモ、ハンズオン、ライトニング トークやエキスパートとの交流を通して、Google Cloud のスキルアップをしたり、コミュニティと繋がることができます。また、スタートアップ向けのコンテンツ、 Google Maps Platform、そしてイノベーションの源泉となるカルチャーについてもご紹介いたします。>> 詳細はこちら
会場 : 東京ビッグサイト(東京国際展示場)
- お問い合わせ -
BudouX は、ウェブをはじめさまざまなプラットフォームで読みやすいテキスト折り返し(改行)を実現するための、軽量な分かち書き器です。オープンソース プロジェクトとして GitHub で公開されており、現時点では日本語と中国語(簡体字、繁体字)をサポートしています。2016 年に公開した Budou の後継となるものですが、Budou とは違いサードパーティの API や分かち書きライブラリに依存せずに動作します。分かち書きのための機械学習モデルを含めて 20 KB 程度に収まるため、ウェブブラウザに配信する JavaScript ファイルに同梱することも可能です。
単語と単語の間をスペースで空けて書く英語などの言語と異なり、日本語や中国語をはじめとするアジア圏の一部の言語は分かち書きをしません。そのため、ウェブサイトやモバイル アプリケーションで日本語や中国語を表示する際に、スクリーンサイズによって好ましくない折り返しが起きてしまうことがあります。このような問題の解決策として、改行要素や改行可能要素を挿入する、特定の要素の折り返しを禁止するなどの方法が考えられます。しかし、そのいずれも対象言語に精通した人物による手作業が必要になるため、大量のテキストがある場合に対応するのは困難です。
この問題を自動で解決するために開発されたのが、BudouX です。BudouX は文字の N グラムに対して AdaBoost アルゴリズムを適用した機械学習モデルを利用しています。この機械学習モデルはテキスト中の各文字について、次の文字の間で区切るべきか否かの二値分類問題を考えます。予測値が正であれば区切り、そうでなければ区切らないという処理を繰り返すことで、読みやすく分かち書きされたテキストを出力します。
特徴量として文字の N グラム(特定の文字が連続して出現するまとまり)のみを使うため、任意の言語に対してモデルを学習、適用できます(Language Neutral)。また、AdaBoost アルゴリズムによって、読みやすい折り返しに強く寄与する N グラムから順に重みを割り当て、それ以外の特徴量は無視できるため、機械学習モデルの軽量化が可能です(Small)。BudouX では JSON シリアライズされた機械学習モデル、すなわち N グラムと重みのペアをデコードして、現れた N グラムに対応する重みの値を足し合わせるだけで予測値が得られます。したがって JSON パーサと基本的な処理構文さえあれば実行できるため、さまざまなプログラミング言語やプラットフォームに容易に拡張することができます(Standalone)。BudouX はこのように Small, Standalone, Language Neutral の 3 つを基本的な方針として開発を進めています。
日本語のデフォルトの分かち書きモデルは、単語単位ではなく文節単位の分ち書きを提供します。これは文節間の改行が日本語の読みやすさに寄与すると考えているためです。このモデルの学習には主に KNB コーパス(Kyoto-University and NTT Blog コーパス)による文節区切りの文章を用いています。モデル訓練の詳細については BudouX scripts README をご覧ください。
現在、BudouX の公式レポジトリでは JavaScript, Python, Java をサポートしています。それぞれの使い方を簡単に紹介します。
JavaScript
NPM を使う場合、BudouX の JavaScript モジュールは npm i budoux としてインストールできます。日本語のデフォルトの分かち書き器を使う場合は、下記のようにしてパーサを読み込み、処理したい文字列をその parse メソッドに渡します。結果は分かち書きされた文字列の配列が渡されます。
import { loadDefaultJapaneseParser } from 'budoux' ; const parser = loadDefaultJapaneseParser(); console.log(parser.parse('今日は天気です。')); // ['今日は', '天気です。']
NPM を使わず、ウェブブラウザ上で下記のように ES Module として直接読み込むことも可能です。ここではビルドされたモジュールをホストするサイトとして unpkg.com を使用した例を示します。
<script type="module"> import {loadDefaultJapaneseParser} from 'https://unpkg.com/budoux/module/index.js'; const parser = loadDefaultJapaneseParser(); console.log(parser.parse('今日は天気です。')); // ['今日は', '天気です。'] </script>
ウェブでの利用を目的としている場合は、Web Components 版も利用可能です。まずウェブページ内で、下記のようにして BudouX カスタム要素を読み込みます。ここでは例として日本語モデル(budoux-ja)を読み込んでいます。
<script src="https://unpkg.com/budoux/bundle/budoux-ja.min.js"></script>
その後、BudouX により折り返し処理を適用したい文字列を budoux-ja カスタム要素に渡すと、自動でテキスト折り返しを整えるためのマークアップが Shadow Root に挿入されます。
<budoux-ja>今日は天気です。</budoux-ja>
<!-- Shadow Root -->
<span style="word-break: keep-all; overflow-wrap: anywhere;">今日は<wbr>天気です。</span>
Python
BudouX モジュールは、 pip install budoux としてインストールできます。以下に、Python で日本語モデルを読み込み、分かち書きを行う例を示します。
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 はプレーンテキストだけではなく、HTML コードに対しても適用可能です。より進んだ使い方について詳しくは BudouX レポジトリの README をご覧ください。
ここからは、BudouX をご活用いただいているアドビの Japan R&D に所属する Software Development Engineer の吉田さんに活用の経緯などをお伺いしました。
どこで BudouX を活用している?
自社のオウンドメディアである adobe.com の日本語サイトにて BudouX を活用しています。適切な改行処理を行うことでデバイスサイズに限らずに読みやすい日本語になるように工夫しています。
BudouX を活用しているページの例
https://www.adobe.com/jp/acrobat/online/ppt-to-pdf.html https://business.adobe.com/jp/resources/main.html https://business.adobe.com/jp/customer-success-stories.html
BudouX を活用に至るまでの経緯
実は BudouX 採用前からアドビでは日本語の改行処理に力を入れていました。adobe.com は自社製品の CMS、Adobe Experience Manager 上で構築されていますが、ページを編集する際に区切り文字をマニュアルで入れることで著者が改行ポイントを設定することができました。我々は以前から日本語における適切な改行処理に関心があったというわけです。 話は本題へと移ります。現在 adobe.com は Adobe Experience Manager で構築された従来のサイトから、次世代のアドビの CMS 製品である AEM Franklin をベースにしたサイトへの移行プロジェクトを実施しています。AEM Franklin では Google Docs や Microsoft Word をオーサリング ツールとして活用することができます、また、Adobe Experience Manager で課題であった複雑なシステム構成やウェブサイトのパフォーマンスなどを容易に改善することができる等、新しいコンセプトの製品となっています。 しかし AEM Franklin をベースとした新しい製品を活用したウェブサイトへの移行となったため、今まで存在していた編集時の日本語の改行処理の機能がなくなってしまいました。このような状況の中で、この問題の解決のためにさまざまな手法を検討し、実装コストや運用コストなどを考慮した結果、サーバーサイドで分かち書きなどの前処理するのではなく、クライアントサイドだけで軽量に動作する BudouX がベストだという結論に至り、採用することとなりました。 それでも導入の際には 3 つ課題がありました。1 つ目は BudouX の日本語のデフォルト モデルはアドビのコンテンツを学習していません。特に「お、ご、などの尊敬語に弱い」、「デジタルエクスペリエンスプラットフォームなどの長いカタカナの複合名詞」は精度の面でやや不安があったわけです。そこで新たに adobe.com のデータをスクレイピングし学習させることでよりアドビのサイトにあったモデルを開発することができました。詳しい話はこちらの記事で書かれているので興味がある方はご覧ください。 2 つ目は禁則処理の問題です。禁則処理とは行頭や行末に特定の文字が来ないように文字の並びを調整する処理を指します。例えば、句読点は行頭には来ないようにするなどが挙げられます。BudouX は次の文字の間で区切るべきか否かの二値分類問題を考えています。その結果、かなり低確率ではありますが、周辺文字の状況によって句読点の前で文字が区切られてしまう例がわずかに見られました。我々が普段 HTML で文章を書いているときはブラウザが自動で日本語の禁則処理をしてくれるので問題ありませんが、BudouX では改行ポイントを <wbr> でコントロールしているので、例えば以下の画像のように行頭に疑問符(半角)が来てしまいます。この問題を解決するために、我々はルールベースの禁則処理を BudouX に追加することで禁則処理を実現しました。なお、この問題は現在 BudouX の GitHub にイシューとして登録しています。
実は BudouX 採用前からアドビでは日本語の改行処理に力を入れていました。adobe.com は自社製品の CMS、Adobe Experience Manager 上で構築されていますが、ページを編集する際に区切り文字をマニュアルで入れることで著者が改行ポイントを設定することができました。我々は以前から日本語における適切な改行処理に関心があったというわけです。
話は本題へと移ります。現在 adobe.com は Adobe Experience Manager で構築された従来のサイトから、次世代のアドビの CMS 製品である AEM Franklin をベースにしたサイトへの移行プロジェクトを実施しています。AEM Franklin では Google Docs や Microsoft Word をオーサリング ツールとして活用することができます、また、Adobe Experience Manager で課題であった複雑なシステム構成やウェブサイトのパフォーマンスなどを容易に改善することができる等、新しいコンセプトの製品となっています。
しかし AEM Franklin をベースとした新しい製品を活用したウェブサイトへの移行となったため、今まで存在していた編集時の日本語の改行処理の機能がなくなってしまいました。このような状況の中で、この問題の解決のためにさまざまな手法を検討し、実装コストや運用コストなどを考慮した結果、サーバーサイドで分かち書きなどの前処理するのではなく、クライアントサイドだけで軽量に動作する BudouX がベストだという結論に至り、採用することとなりました。
それでも導入の際には 3 つ課題がありました。1 つ目は BudouX の日本語のデフォルト モデルはアドビのコンテンツを学習していません。特に「お、ご、などの尊敬語に弱い」、「デジタルエクスペリエンスプラットフォームなどの長いカタカナの複合名詞」は精度の面でやや不安があったわけです。そこで新たに adobe.com のデータをスクレイピングし学習させることでよりアドビのサイトにあったモデルを開発することができました。詳しい話はこちらの記事で書かれているので興味がある方はご覧ください。
2 つ目は禁則処理の問題です。禁則処理とは行頭や行末に特定の文字が来ないように文字の並びを調整する処理を指します。例えば、句読点は行頭には来ないようにするなどが挙げられます。BudouX は次の文字の間で区切るべきか否かの二値分類問題を考えています。その結果、かなり低確率ではありますが、周辺文字の状況によって句読点の前で文字が区切られてしまう例がわずかに見られました。我々が普段 HTML で文章を書いているときはブラウザが自動で日本語の禁則処理をしてくれるので問題ありませんが、BudouX では改行ポイントを <wbr> でコントロールしているので、例えば以下の画像のように行頭に疑問符(半角)が来てしまいます。この問題を解決するために、我々はルールベースの禁則処理を BudouX に追加することで禁則処理を実現しました。なお、この問題は現在 BudouX の GitHub にイシューとして登録しています。
3 つ目はウェブサイトのコンテンツの著者の期待通りに改行処理されていない場合にどうするか? BudouX は高い精度で読みやすい単位に改行処理を行ってくれます。しかし、軽量さやスピードを重視しているので、ときには著者が意図する挙動と違う出力をしてしまうことがありました。また、どれだけ高い精度のモデルを採用したとしても、完全自動では 100% 著者の意図通りの結果を出すことは不可能です。どうしてもコンテンツを運用していく中でここだけは間違えてほしくないという場面は存在するわけです。そこで我々は自動+マニュアルの微調整を可能にすることでこれを解決しました。 幸いなことに AEM Franklin にはオーサリング ツールである Google Docs と Microsoft Word のファイルに対してウェブサイトのページごと、またはすべてのページに細かいメタデータを追加する機能が備わっていました。この機能を活用することで、著者が期待するルールや設定を細かく追加できるようになりました。例えば以下のようなことが可能となっています。 " ご覧ください " というテキストがあったときに " ご " と " 覧ください " の間では改行できないようにする " カスタマージャーニーマップ " というテキストがあったときに " カスタマー " と " ジャーニーマップ " の間で改行できるようにする ページの一部分に BudouX を適用しないようにする BudouX に渡すパラメータを調整する この結果 BudouX のスマートな自動改行処理のベネフィットを受けつつ、著者が細かい微調整を加えることを可能にし、理想な運用体制を構築の実現に成功しました。また、現在では移行前の Adobe Experience Manager で管理されているページでも BudouX は活用されており、マニュアルで実施していた改行処理は自動化されています。 BudouX はその軽量さとパフォーマンスが売りです。Lighthouse のスコアへの影響も軽微なもので、adobe.com のパフォーマンス メトリクスをクリアしています。また、最近では finetune が可能になり個別のサイトのコンテンツにあったモデルをより簡単に開発できるようになりました。今後も BudouX の発展に期待しています。
3 つ目はウェブサイトのコンテンツの著者の期待通りに改行処理されていない場合にどうするか? BudouX は高い精度で読みやすい単位に改行処理を行ってくれます。しかし、軽量さやスピードを重視しているので、ときには著者が意図する挙動と違う出力をしてしまうことがありました。また、どれだけ高い精度のモデルを採用したとしても、完全自動では 100% 著者の意図通りの結果を出すことは不可能です。どうしてもコンテンツを運用していく中でここだけは間違えてほしくないという場面は存在するわけです。そこで我々は自動+マニュアルの微調整を可能にすることでこれを解決しました。
幸いなことに AEM Franklin にはオーサリング ツールである Google Docs と Microsoft Word のファイルに対してウェブサイトのページごと、またはすべてのページに細かいメタデータを追加する機能が備わっていました。この機能を活用することで、著者が期待するルールや設定を細かく追加できるようになりました。例えば以下のようなことが可能となっています。
この結果 BudouX のスマートな自動改行処理のベネフィットを受けつつ、著者が細かい微調整を加えることを可能にし、理想な運用体制を構築の実現に成功しました。また、現在では移行前の Adobe Experience Manager で管理されているページでも BudouX は活用されており、マニュアルで実施していた改行処理は自動化されています。
BudouX はその軽量さとパフォーマンスが売りです。Lighthouse のスコアへの影響も軽微なもので、adobe.com のパフォーマンス メトリクスをクリアしています。また、最近では finetune が可能になり個別のサイトのコンテンツにあったモデルをより簡単に開発できるようになりました。今後も BudouX の発展に期待しています。
Before
After
現在 BudouX は ICU (International Components for Unicode) の一部になっており、ウェブに限らずさまざまなプラットフォームで利用され始めています。Chrome 119 以降では lang 属性が ja で指定された要素について、CSS で word-break: auto-phrase と指定された部分が BudouX によって分節区切りで折り返されるようになります。Android の文節区切り機能も Android 14 以降では BudouX が使われるようになり、大幅なデータサイズ削減が実現します。さまざまなシーンで読みやすい日本語体験を提供すべく、BudouX はこれからも改善を続けていく予定です。
一方で、BudouX の機械学習モデルも完璧ではなく、うまく処理できないケースもあります。もし、望ましい結果が得られないケースがありましたら、ぜひ GitHub から Issue を立ててください。Pull Request も大歓迎です。皆さまからのフィードバックをお待ちしております。
Shuhei Iitsuka - Senior UX Engineer, Google Brand Studio APACTaketo Yoshida - Software Development Engineer, Adobe Japan R&D