見出し画像

プリティーシリーズのSKK辞書をPrismDBから生成している話

この記事は #プリッカソン Advent Calendar 2020 の17日目です。昨日はくありすさんの「プリパラのキャラがラーメン食べているところのアクキー作ってみました【グッズ制作】」でした。

🎀プリパラ新作アニメおめでとうございます🎀

これを言いに来ました。今年一番うれしい。

さてここからプリッカソンの話・・・

今年アドベントカレンダー書けるかなぁと思っていたけれど、なかひこくんのまた別なアドベントカレンダーのほうで言及されてたので、よしそれじゃなにか書くか、まだプリッカソンあいてるからこっちで行けるな、となった。

本リポジトリを作ったときに LOD についてある程度の知識を持っていた Contributor は僕と @banjun さんだけでした。 こういったプラットフォームはデータの数がキモですから、当然2人以外の協力も不可欠です。

辞書がほしい

一年くらいまえにプリティーシリーズのかな漢字変換辞書がほしいと願望だけ書いていた。

でも直近で欲しいのって,PrismDBから出力されPrismDBに追従して更新されていく漢字変換辞書だったりして。。それもまた地味かもしれないですね。でもほしくないですか?

これはその後実現したので、その話をしたい。成果物はこのrepoにある。

読みがなとは? 登場人物編

PrismDBには一部データに既に読みがなが入っていた。

これを使えばすぐにでもかな漢字変換辞書は作れそうである。しかしよくみると「とうどう シオン」「たいよう ペッパー」などカタカナが混じっている。かな漢字変換の視点からみればひらがなカタカナ混在よりひらがな統一のほうが扱いやすいものの、カタカナ混じりで書かれた読みがなであっても読みは提供できているし、むしろそのほうが自然に見える利点がある。だが今回はユースケースを考慮しPrismDBのname_kanaによる読み表記はひらがなに統一することにした。

読みがなとは? 曲名編

HAPPYぱLUCKYとかA・B・C・D・いいね★ダンスとかの曲名も変換できると捗るのだが、曲名は登場人物名より複雑になりがちで、だいぶ読みがな振りのテクニックが要求される。こういうのもキラキラネームと言うのはは分からないが、必ずしも字面を読むとも限らず、アニメやライブやラジオで実際に発音されたことがあるかが手掛かりになることもあり、正確な読みの収録はコストの高い課題として残されている(読みが収録されていないよりも収録されているDBのほうが役立つのだが、正確じゃないかもしれないという不安も発生してしまう悩ましさ)。

SPARQLでSKK辞書を作ってみた

わたしはAquaSKK(macOS用)とFlickSKK(iOS用)の日本語入力システムをメンテしているので、ここで欲しいかな漢字変換辞書というのはSKK辞書フォーマットである。

PrismDBはSPARQLでクエリできるので、名前と読みがなのペアを取得しつつ、ついでに出来るかぎりSPARQLの機能でSKK辞書フォーマットをつくってみた。

基本的なWHERE句は単純で、例えば下のようにすれば、名前と読みがなをもつ登場人物の、その名前と読みがなのペアを取り出せる。prism:Characterで縛らなければ登場人物に限らずPrismDBに存在する主語のうち、名前と読みがなを持つものを一覧することもできる。

    ?c a prism:Character;
       prism:name ?cname;
       prism:name_kana ?ckana;       

SKK辞書にはアノテーションを含められるので、登場人物にはCVを、チームにはメンバーを、というふうに、主語のクラス(↑SPARQLの「a」の目的語)ごとにアノテーションの付けかたを分けたかったので、登場人物・曲・チーム・ブランドごとにSPARQLクエリを書いた。

これで変換中にこのようにアノテーションが表示される(AquaSKK)。

画像2

画像3

画像4

一般名詞の意味注釈とかぶっても大丈夫なようだ。

画像2

SPARQLすぐ試せるやつ

SPARQLに慣れていない人もクエリをすぐに実行してみたりちょい変して実行できる素敵なサービス ☆ピコピコプラネット☆SPACE にもこのクエリを置いてあるので、動かしてみて仕組みを知りたい人はここの実行ボタンを押してみるといいかも。

辞書をPrismDBに追従する

SPARQLクエリの結果をSKK辞書に変換できるということは、PrismDBが更新されればその最新の内容に追従したSKK辞書を作成しなおせるということになる。これをGitHub Actionsで回すことで、追従PRを出すようにした。辞書生成ロジック自体は手抜きをしている部分もあるので、どんな異常ケースがこれから見つかるか関心があるという意味も込めて、チェックとマージは自分で目でやるようにしている。

ここに更新PRが来ると、だれかがPrismDBを更新してくれて、しかも読みがなまで入力してくれたということになるので、本当にありがたいな~と思いながらマージしている。

読みがなのその他の活用にむけて

読みがなは、かな漢字変換のみならず、たとえばひらがなのみを入力してPrismDBを検索するような用途にも使うことができる。これは登場人物名補完テキストフィールドなどに応用が可能と思われる。

検索対象の主語の正式名称を知らないからSPARQLのクエリが書けない・・・みたいなやや本末転倒な課題も、ひらがなで回避できるようになっている。例えばSoLaMi♡SMILEがアニメエピソード中で行なったライブの取得はひらがなでクエリしてもよい。

    ?live a prism:Live;
       prism:performer/prism:name_kana "そらみすまいる";

なんらかの制約によりかな漢字変換システムが使えないものやそもそもの語彙が必要なもの、例えば声による入力とか、AR空間上の簡易のUIによる入力とか、そういう局面でも使いどころがあるかもしれない。

回顧 ~ これからもどんな未来が来ても

わたしが初めて参加したプリッカソン第2回(当時は「プリパラハッカソン」)では「明後日がプリパラ最終話ですね」「Memorialの歌詞がつらい」という話をすることになった。未来とは桃山みらいのことか??説もあった(?)。この冬、未来とはプリパラがある未来のことになった。PrismDBにはかつてプリパラDBという仮称がついていたこともあった。これからはまたプリパラの新情報を追記していけるのである。

おわり

いかがでしたか?(明日はだれか入れないかな?) 明後日はやっちさんです。お楽しみに。


この記事が気に入ったらサポートをしてみませんか?