\section{はじめに}
本論文では，自然言語処理システムの実社会応用の具体例として，筆者が行った2020東京オリンピック参加者名簿の翻訳支援の経験を報告する．実社会応用では，「ことば」が社会的存在であることを考慮したシステム設計・運用が重要となる．オリンピック参加者名簿の翻訳とは，国際オリンピック委員会(InternationalOlympicCommittee,IOC)から提供される名簿に含まれる，ほぼすべての参加者の氏名（アルファベット表記）に，カタカナ表記の訳を付与することである\footnote{氏名を漢字で表記する国・地域の参加者を除く．具体的には，日本，中国，韓国，香港，台湾．}．このタスクは，技術的にはトランスリタレーション(transliteration)の問題とみなされる．しかしながら，客観的な正解は存在しないため，システムが出力すべきものは，システムの利用者，あるいは，社会が納得するカタカナ訳となる．この点については，次章以降で詳しく議論する．本論文では，まず，第2章で，オリンピック参加者名簿翻訳というタスクを説明し，人名翻訳の本質について議論する．第3章では，翻訳支援に使用したシステム\textbf{綴2021}と，実際の翻訳支援作業の経過を示す．続く第4章と第5章では，綴2021とそれを支えるシステム\textbf{袷2019}の技術的詳細を示す．これらのシステムは，準備段階で作成したシステム\cite{Yasue2016a,Yasue2016b,Sato2017}に，改良を加えたものである．第6章では，システムの翻訳結果が実際にどの程度採用されたかを示すとともに，これらの一連の経験を通して得られた知見をまとめる．最後の第7章では関連研究について述べる．本研究の新規性は，オリンピック参加者名簿の翻訳という現実のタスクを実行するためのシステムを設計・実装し，そのタスクをどの程度うまく遂行したかを翻訳結果の採用率という形で示した点にある．なお，本論文では，姓と名の組を表す用語として「氏名」を，姓または名を表す用語として「名前」を用い，「氏名」と「名前」を総称する用語として「人名」を用いる．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{オリンピック参加者名簿翻訳と人名翻訳}
\label{sec:difficult}オリンピック参加者名簿翻訳には，人名翻訳自体の難しさと，オリンピック名簿固有の過酷さが存在する．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{人名翻訳の難しさ}アルファベット表記の人名にカタカナ表記の訳を付与することは，技術的にはトランスリタレーションとみなされる．トランスリタレーションとは，ある言語の表記を，もっぱら発音に基づいて他の言語の表記に変換することである．人名のトランスリタレーションには，次の2つの難しさがある．(1)はトランスリタレーション一般の，(2)は人名のトランスリタレーション固有の難しさである．\begin{enumerate}\item日本語の音で近似する必要がある有名な例に，テニス選手の``AndyMurray''の姓をどのようにカタカナ表記するかという問題（いわゆる，マリー/マレー問題）がある．日本語にない音は，日本語のいずれかの音に近似する必要があるが，そこには自由度があり，訳者，あるいは，翻訳する組織の意向が反映される．\item言語を同定できない人名のアルファベット表記だけから，言語を推測するのは困難である．テキストとして非常に短い（ほとんどの場合，2語）だけでなく，同一表記の語が複数の言語に存在するからである．オリンピックやワールドカップなどのスポーツ大会の参加選手の人名を翻訳する場合，その人物の所属する国家はわかるのが普通であるが，国家から言語を一意に決定することはできない．多言語国家は数多く存在するとともに，婚姻や移民による国籍変更もある．\end{enumerate}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{オリンピック参加者名簿翻訳固有の過酷さ}オリンピック参加者名簿翻訳固有の過酷さとして，次の3点がある．\begin{enumerate}\item対象人数が多い具体的には，2020東京オリンピックの参加者は，13,032人であった．\item対象とする国\footnote{本論文での「国」とは，正確にはIOCコードを持つ国・地域・参加主体を指す．}の数が多い具体的には，2020東京オリンピックの参加国は，206カ国であった．\item開幕直前まで名簿が確定しない開幕の約1ヶ月前から数回に渡って，IOCから参加者の候補リストが送られてくる（回を重ねる毎に更新される）．参加者がほぼ確定するのは開幕直前であり，そのタイミングで大量の人名を翻訳するのは時間的に困難であるため，前もって参加者の候補リストを翻訳しておく必要があるが，候補リストに含まれる候補者の数は，実際の参加者数よりもかなり多い（3.5節で具体的な数字を示す）．なお，大会期間中にも，選手の入れ替えはあるとのことである．\end{enumerate}日本において，オリンピック参加者名簿を翻訳する主な組織は，(1)放送局から委託をうけたNHKの関連会社と，(2)2つの通信社（時事通信社と共同通信社）である．ちなみに，従前は，これら3組織は独立に翻訳を行っていたそうで，同一人物のカタカナ訳が3組織で一致しないものが少なからず存在したようである．東京オリンピック開催に合わせて，3者間でカタカナ訳のすり合わせが行われたと聞いているが，おそらくカタカナ訳の不一致の問題は，完全には解消されていないものと推察する．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{人名翻訳の本質}人名は，その人物を特定する識別子としての機能を持つ．そのカタカナ訳は，その人物の日本語における識別子となるため，同一人物に複数の訳が存在することは好ましくない．そのため，人名を翻訳する際には，まず，既訳の有無を確かめることが重要となる．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\paragraph{既訳が存在する場合}``RogerFederer''のような有名人の場合は既訳が存在し，「ロジャー・フェデラー」が定着している．このような場合の人名翻訳は，定着した既訳に合わせることが要請される．しかしながら，すでに述べた``AndyMurray''のように，複数のカタカナ表記（「アンディ・マリー」と「アンディ・マレー」）が広く使われる場合もある．そのような場合は，そのどちらかに合わせることになるが，一方を採用することにしたならば，一貫してそれを採用する必要がある．ここで注意したいことは，諸般の事情により，定着した訳が変更される場合があるという点である．よく知られた具体例は人名ではなく地名であるが，「グルジア」が「ジョージア」に，「キエフ」が「キーウ」に変更になったことは，記憶に新しい．すなわち，たとえ定着した訳であっても，それは永劫不変の絶対的存在ではない．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\paragraph{既訳が存在しない場合}少数の有名人を除けば，既訳が存在しない人物がほとんどである．本当に存在しないかどうかは知る術はないので，探した範囲で既訳が見つからなかった場合は存在しないと判断する．既訳が存在しない場合，アルファベット表記からその発音を推測し，それを近似的に表すカタカナ表記を定める．そこには恣意性が存在し，客観的な正解というものは存在しない．だからといって，任意のカタカナ表記を採用してよいわけではない．たとえば，``BriceOttonello''というフランス(FRA)の選手の訳に「バンジャマン・ダビエ」を当てることはできない．「ブリス・オットーネロ」のように，それらしいカタカナ訳を当てることが要請される．この訳が社会的に受け入れられば，既訳として定着する．つまり，既訳が存在しない場合の人名翻訳は，定着する可能性のある訳を新たに作ることである．たとえ，それが実際の発音と多少異なっていても，社会に受け入れられれば既訳として定着する．言い換えるならば，定着した既訳とは，社会的に受け入れられた訳である．以上をまとめると次のようになろう．\textbf{人名翻訳の適切さは，社会的に決定される}．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{人名翻訳支援システム「綴2021」}
本プロジェクトは，2020東京オリンピックの参加者名簿の翻訳に関して，時事通信社より協力の要請があり，それを受ける形で2015年に正式にスタートした．時事通信社の意向は，この翻訳作業を機械処理で軽減し，名簿全体の翻訳を実現したいというものであった\footnote{従前のオリンピックの参加者名簿の翻訳では，時事通信社は全参加者の翻訳を準備しなかったとのことである．リアルタイムで読み上げる必要がある放送媒体とは異なり，活字媒体では入稿までに若干の時間的余裕があるため，その時間に翻訳するという方法がとれる．}．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{基本方針}支援システムの設計にあたっては，以下に示す3つの基本方針を定めた．\begin{enumerate}\item{カタカナ表記の統制}日本語は表記に関して寛容な言語であり，カタカナ表記においては，いわゆる「表記ゆれ」が多数存在する．外来語の表記のガイドラインとして，平成3年6月28日の内閣告示二号「外来語の表記」\cite{Katakana}が存在するが，実際にはこのガイドラインを逸脱した表記が多数存在する．支援システムにおいては，使用するカタカナ表記の範囲を厳密に定め，出力するカタカナ訳を統制する．具体的な統制方法は，\ref{sec:Awase}章で詳しく述べる．\item{既訳辞書を用いた翻訳}既訳辞書を整備し，既訳が存在する場合は，既訳を採用する．\item{国毎のトランスリタレータ}同一のアルファベット表記であっても，言語によってカタカナ訳が異なる場合がある．すでに述べたように，人名の言語はわからないため，国毎にトランスリタレータを用意し，訳し分けを実現する．\end{enumerate}既訳辞書の整備\footnote{前回までのオリンピックやメジャーな国際大会の参加者名簿などを元に，オリンピックへの参加予想も考慮して作成するようである．}は，時事通信社が担当した．時事通信社の人名翻訳の基本方針は，「1国1名前に対して，カタカナ訳はひとつ」である．つまり，国と名前が定まれば，カタカナ訳が一意に定まるように統制する．これは原則であり，すでに定着した既訳などは例外として扱う．この方針は，国毎のトランスリタレータの実現に好都合であった．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%fig.1\begin{figure}[t]\begin{center}\includegraphics{30-2ia17f1.pdf}\end{center}\caption{綴2021の構成}\label{fig:system}\end{figure}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{綴2021の構成}綴2021の構成を図\ref{fig:system}に示す．綴2021は，以下の要素から構成されている．\begin{enumerate}\item既訳辞書\\過去に採用された翻訳の具体例を辞書化したもの．氏名対訳辞書と名前対訳辞書の2種類の辞書から構成される．辞書のレコードは，国名の情報（IOCコード）を持つ．\item国別翻訳サブシステム\\名前のアルファベット表記からカタカナ表記を推定するトランスリタレータ．国別翻訳サブシステムは，全部で208個存在する．このうち207個はIOCコードに対応するサブシステムで，残りの1個は，国名が不明の場合に使用するサブシステムである．\item辞書翻訳モジュール\\入力に対して既訳辞書を検索し，一致するものがあれば出力する．国名の一致は必須である．\item訳語推定モジュール\\入力された国名に基づいて国別翻訳サブシステムを呼び出し，訳語候補を5件出力する．訳語推定の単位は，名前（姓または名）である．\end{enumerate}この構成で，次に示す2種類の翻訳支援サービスを提供する．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%table1\begin{table}[t]\input{17table01.tex}%\caption{一括翻訳の入出力形式}\label{tab:batch}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{一括翻訳サービス}一括翻訳は，多数の氏名を一度に翻訳するサービスで，その入出力はエクセルファイルである．その形式を表\ref{tab:batch}に示す．なお，ここで言及しない列も存在するが，翻訳処理には関与しない．\begin{enumerate}\itemD,F,Gの3列が入力である\itemH列は，翻訳処理の状況（ステータス）を以下の4種類で示す\begin{description}\item[{\rm完全一致}]氏名対訳辞書で翻訳でき，訳が唯一である\item[{\rm一致}]名前対訳辞書で姓と名の両方が翻訳でき，かつ，それぞれの訳が唯一である\item[{\rm重複}]名前対訳辞書での翻訳に，曖昧性（複数の訳）が存在する\item[{\rm推定}]姓と名のいずれかは，訳語推定された（「重複」よりもこちらを優先する）\end{description}\itemI,J列は，辞書翻訳の結果を示す\itemK,L列は，以下の優先度で決定した暫定訳を示す\begin{enumerate}\item氏名対訳辞書での翻訳結果\item名前対訳辞書での翻訳結果（複数訳がある場合は，一番頻度が高いもの）\itemトランスリタレータによる1位の推定結果\end{enumerate}\itemN,O,P,Q列は，辞書翻訳における他の候補を示す\itemR,S,T,U列は，姓の訳語推定結果の2位から5位を示す\itemW,X,Y,Z列は，名の訳語推定結果の2位から5位を示す\end{enumerate}実用システムでは，入出力の形式がシステムの利便性を大きく左右する．このため，入出力形式の設計は非常に重要である．上記の形式は，実際に出力ファイルを利用して最終的な対訳名簿を作成する当事者とよく相談のうえ決定した．\begin{itemize}\itemH列（ステータス）は，翻訳結果を見直す際に，翻訳処理の状況がわかるように導入した．\itemK,L列（暫定訳）は，翻訳結果をそのまま採用する場合の作業を不要にするために導入した．翻訳結果を修正する場合，この2列のみを書き換えればよいため，作業量は最小限で済む．\end{itemize}一括翻訳に要する時間は，翻訳する人名の件数に依存する．3.8万件の場合，MacBookPro(AppleM1,16GB)で5分程度である．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{ウェブサービス}ウェブサービスでは，ユーザーの入力に対して翻訳候補を提示し，訳語決定を支援するサービスである．複数の国を指定して，それらの結果を比較したり，国名から推定される言語を示す機能を持っている．すでに\ref{sec:difficult}章で述べたように，参加者情報は五月雨式に更新されるため，一括翻訳以外の翻訳支援が必要となる．図\ref{fig:interface}に，ウェブサービスの入出力画面を示す．入力は，アルファベット表記の名前と，国名（最大3カ国まで指定可能）である．この例は，``Peter''をHUG（ハンガリー）,GER（ドイツ）,CAN（カナダ）の3カ国を指定して翻訳する場合を示している．指定した3カ国以外に，国名が不明の場合の結果(all)も表示される．出力ページの上部には，訳語推定の結果が示される．辞書翻訳で翻訳できた場合は，その結果も表示される．この例の場合，名前辞書のハンガリー(HUG)の対訳に「Peter/ペテル」があるため，その情報が示されている．訳語の下に国名は，その対訳が存在する国を示している．出力ページの下部には，名前辞書の検索結果が示される．``Peter''の対訳は9カ国に存在し，訳語の種類は3種類である．この部分の表示では，国名から推測される言語も合わせて表示される．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%fig.2\begin{figure}[p]\begin{center}\scalebox{0.97}{%\includegraphics{30-2ia17f2.pdf}}%\end{center}\caption{ウェブサービスのインタフェース}\label{fig:interface}\end{figure}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{オリンピック参加者名簿の実際}表\ref{tab:timeline}に，本プロジェクトのタイムラインを示す．すでに述べたように，本プロジェクトは2020東京オリンピックを見据えて，2015年よりスタートした．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%table2\begin{table}[t]\input{17table02.tex}%\caption{プロジェクト・タイムライン}\label{tab:timeline}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%支援システムのウェブサービスは，2016年リオデジャネイロオリンピックに合わせて稼働させ，それ以降，オリンピック開催に合わせて更新してきた．東京オリンピックの翻訳スケジュールはタイトであることが想定されたため，事前に入念に準備し，本番に備えた．東京オリンピック・パラリンピックが1年延期されたため，実際の作業は2021年となった．その後，時事通信社から依頼があり，引き続き北京オリンピック・パラリンピックの参加者名簿の翻訳を行った．この表からわかるように，東京オリンピック参加者名簿の1回目の一括翻訳は，開催の約3週間前に実施した．この時点で翻訳数は，38,200件であり，最終的な参加者の2.9倍である．すでに述べたように，時間的制約から名簿が確定する前に翻訳する必要があり，翻訳対象の人数は膨れ上がる．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%table3\begin{table}[t]\input{17table03.tex}%\caption{オリンピック・パラリンピックの参加者数と一括翻訳数}\label{tab:olympic}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%表\ref{tab:olympic}に，4大会の参加国数，参加者数，一括翻訳数を示す．この表から，特に夏季オリンピックの参加者名簿の翻訳の過酷さが確認できる．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{「綴2021」の技術的詳細}
本章では，綴2021の技術的な詳細を示す．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{辞書翻訳}辞書翻訳で使用する辞書は，以下の通りである．これらの辞書は，翻訳実行時には，リレーショナルデータベース(SQLite3)に格納され，検索される．辞書翻訳では，国名の一致は必須とする．\begin{description}\item[氏名対訳辞書]28,816レコード．各レコードは，以下の5要素から構成される．\begin{enumerate}\item国名（IOCコード）\item姓（アルファベット表記）\item名（アルファベット表記）\item姓（カタカナ表記）\item名（カタカナ表記）\end{enumerate}\item[名前対訳辞書]40,050レコード．各レコードは，以下の4要素から構成される．\begin{enumerate}\item国名（IOCコード）\item名前（アルファベット表記）\item名前（カタカナ表記）\item頻度（氏名対訳辞書における頻度）\end{enumerate}\end{description}名前対訳辞書は，氏名対訳辞書から機械的に作成する．氏名対訳辞書では，姓と名を区別するが，名前対訳辞書では，姓と名を区別しない．付録の表\ref{tab:country}に，対訳辞書の国別のサイズを示す．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{訳語推定}国別翻訳サブシステムは，MeCab\footnote{\texttt{https://taku910.github.io/mecab/}}をトランスデューサー(transducer)として動作させることによって実現する．そのためには，動作を規定するMeCab用辞書が必要となるが，このMeCab用辞書をそれぞれの国に対して作成することにより，国別翻訳サブシステムを構成する．このMeCab用辞書のことを，本論文では\textbf{国別モデル}と呼ぶ．国別モデルは全部で208個存在する．国別モデルをどのように作成するかは，\ref{sec:Awase}章で述べる．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%fig.3\begin{figure}[t]\begin{center}\includegraphics{30-2ia17f3.pdf}\end{center}\caption{MeCabによる訳語推定}\label{fig:MeCab}\end{figure}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%fig.4\begin{figure}[t]\begin{center}\includegraphics{30-2ia17f4.pdf}\end{center}\caption{袷2019の構成}\label{fig:Awase}\end{figure}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%図\ref{fig:MeCab}に，マレーシア(MAS)用の翻訳サブシステムで``selvathamy''がどのように分解されて翻訳されるかを示す．1行目が入力で，2行目以降が出力である．``se/l/va/tha/m/by''の6単位に分解され，それぞれがカタカナに変換されて「セ/ル/バ/サ/ム/ビー」が得られていることがわかる．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{「袷2019」の技術的詳細}
\label{sec:Awase}袷2019は，綴2021が必要とする国別モデルを作成するシステムである．\pagebreakその構成を図\ref{fig:Awase}に示す．国別モデルの作成は，大きく2段階に分かれる．第1段階では，国が不明の対訳データから，国別モデルの作成基盤となるモデル（\textbf{ベースモデル}）を作成する．第2段階では，それぞれの国に対して，その国の対訳データを用いてベースモデルに再学習を適用し，国別モデルを作成する．これらのモデルの作成には，MeCabの学習機能と再学習機能を利用する．MeCabの学習機能・再学習機能を利用するためには，それぞれの対訳を図\ref{fig:MeCab}に示すような解析結果と同じ形式に変換する必要がある．この形式を\textbf{学習用コーパス}と呼ぶ．対訳をこの形式に変換するためには，対訳のアライメント（部分対応）を推定する必要がある．このアライメントの自動推定が，袷2019の中核的機能であり，その実現には，カタカナ表記の統制と，独自のローマ字表記が重要な役割を果たしている．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{カタカナ表記の統制}袷2019では，規範的カタカナ列を厳密に定義している．具体的には，使用できるカタカナ\mbox{1文字}，カタカナ2文字（通常のカタカナ1文字+小書カタカナ1文字），記号1文字を定義し，それらの列に分解できるカタカナ列を規範的カタカナ列とみなす．表\ref{tab:katakana}に，使用できるカタカナ1文字・2文字の一覧を示す．これらのそれぞれには，独自のローマ字表記（絣式ローマ字）を定めている．このローマ字表記は，アライメントを決定する際に使用する．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%table4\begin{table}[p]\input{17table04.tex}%\caption{袷2019が認めるカタカナ文字（1文字と2文字）とローマ字表記}\label{tab:katakana}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%表\ref{tab:katakana}は，平成3年6月28日の内閣告示二号「外来語の表記」\cite{Katakana}の第1表と第2表のすべてのカタカナ列を含んでいる．これらに加えて，以下のものを追加している．\begin{quote}キェ，ギェ，グィ，グェ，グォ，ヒェ，ヴャ，ヴュ，ヴョ，ビェ，ピェ，ミェ，リェ，ニェ，\\・（中黒），＝（等号），－（マイナス記号），｜（縦棒）\footnote{最後の「｜」は過去の実装を踏襲して残っているだけで，実質的には不要である．}\end{quote}これらの選定に当たっては，カタカナ表記の人名における頻度，規範的リストから除外した場合にどんな表記に変換（標準化）することになるか，全体の一貫性などを考慮した．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%table5\begin{table}[t]\input{17table05.tex}%\caption{規範カタカナ列への変換表}\label{tab:katakana2}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%袷2019は，規範的ではないカタカナ列を検出したり，それを規範的カタカナ列に自動変換（標準化）する機能を有する．自動変換は，以下に従う．\begin{enumerate}\item表\ref{tab:katakana2}に示す変換表で変換できる場合は，この表に従って変換する．\item小書き文字の音が直前と同じ音の場合は，長音記号「ー」に変換する．ただし，直後が長音記号の場合は変換しない．\\例：「キャシィ$\rightarrow$キャシー」，「アルマルジァビィ$\rightarrow$アルマルジャビー」\itemそれ以外の小書き文字は，通常の大きさの文字に変換する．\\例：「ネグレァン$\rightarrow$ネグレアン」，「クデャコフ$\rightarrow$クデヤコフ」\end{enumerate}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{アルファベット表記の統制}名前に含まれる大文字はあらかじめ小文字に変換する．名前のアルファベット表記は，以下の文字だけからなる文字列とする．\begin{quote}\item小文字（aからz），空白，ハイフン(\texttt{-})，アポストロフィ(\texttt{'})\end{quote}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{アライメントの推定}名前のアルファベット表記（統制済）とカタカナ表記（統制済）のアライメントの推定を，次の3ステップで行う．\begin{enumerate}\itemカタカナ表記をローマ字表記に変換する\itemローマ字表記とアルファベット表記のアライメントを決定する\item得られたアライメントを必要に応じて結合し，カタカナ表記とアルファベット表記のアライメントを完成させる\end{enumerate}この処理の中核は，ステップ(2)，すなわち，ローマ字表記とアルファベット表記のアライメントを決定する処理で，その出力は部分対応の列となる．袷2019では，規範的な部分対応として1,191種類の部分対応を定義し，それぞれにスコアを付与してある．与えられた入力（ローマ字表記の文字列とアルファベット表記の文字列）に対して，スコアの総和が最も大きい部分対応の列を動的計画法により求め，これをアライメントとして採用する．1,191種類の規範的な部分対応はすべて手作業で定義した．そのスコアは，若干の例外を除き，部分対応の両辺から自動的に計算される．アライメントには，規範的ではない部分対応が含まれることも認める．ただし，規範的ではない部分対応のスコアは，規範的な部分対応のスコアよりも小さく設定しているため，そのようなアライメントが採用されることは少ない．事実上，これは，「誤りの可能性のある」対訳を見つけるための機能である．カタカナ表記とアルファベット表記のアライメントを直接決定するのではなく，ローマ字表記とアルファベット表記のアライメントを経由して決定するのは，定義すべき部分対応の種類を減らすためである．このアライメント推定プログラムは，対象言語（原語）を問わない．そのため，多くの種類の部分対応を定義する必要がある．部分対応の定義にカタカナを用いると，定義すべき部分対応の種類は，組み合わせ的に増大する．ヘボン式ローマ字や訓令式ローマ字を採用しなかったのは，それらは子音字の一貫性に欠けるからである．たとえば，「サ」と「シ」の子音は明らかに異なる．加えて，それらのローマ字は，いわゆる50音に対してのみ定義されており，それ以外の単位（たとえば「クァ」）には定義されていないからである．絣式ローマ字では，原則として子音字（大文字または数字1字で表す）の一貫性を重要視して設計した．部分対応の定義を手作業で行ったのは，多くの言語に対応するためである．入手可能な人名対訳の量は，メジャーな言語ほど多く，マイナーな言語は少ない．そのため，入手可能な対訳例から部分対応を推定すると，マイナーな言語で必要となる部分対応が十分に得られない．実際，機械学習による部分対応の推定は試みたが，満足できる結果は得られなかった．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%table6\begin{table}[t]\input{17table06.tex}%\caption{定義されている部分対応の長さ}\label{tab:primitive}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%定義した1,191種類の部分対応の両辺の長さ別の数を表\ref{tab:primitive}に示す．ローマ字側の長さが1の部分対応は，日本語の子音，または，母音に対する部分対応である．この表からも，部分対応の定義にカタカナを使用するのは得策ではないことが確認できる\footnote{国が不明である場合に使用する国別モデルallのMeCab辞書に登録されているカタカナ表記とアルファベット表記の部分対応は，10,707種類である．}．なお，例外的に長い対応は「MoHaMaDo（モハマド）/mohd」で，これはひとかたまりとして捉えるのがよいと判断したため，部分対応として採用した．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{学習用コーパスの形式}MeCabの学習機能と再学習機能を利用するために必要な学習用コーパスは，名前対訳のアライメント結果から作成する\footnote{対訳のアライメントが不自然な（アルファベット側に対応要素がないカタカナが存在する）場合は，その対訳からは学習用コーパスを作成しない．}．学習用コーパスの各行は，ひとつの部分対応に対応し，以下に示す9属性から構成される．\begin{enumerate}\item部分対応のアルファベット側\item(1)の母音・子音字情報（v:母音字,c:子音字,X:特殊文字）\item部分対応のカタカナ側\item(3)の母音・子音字情報（v:母音字,s:半母音字,C:子音字,0:ン,Q:ッ,l:長音記号,X:特殊文字）\item(3)の先頭の子音字列（半母音も含む）\item(3)の先頭の子音字\item(3)の末尾の母音字列\item(3)の末尾の母音字\item(3)の末尾の音タイプ（v:通常,l:長音,q:促音）\end{enumerate}これらのうち，(1)と(3)が部分対応のアルファベット側とカタカナ側であり，それ以外の属性は，部分対応から計算する．部分対応にどのような属性を付与するかは，学習における汎化性能に影響する．しかしながら，上記の設定で必要と思われる性能が達成されたため，それ以上の検討は行わなかった．実験的に確かめてはいないが，「どのような対応（単位）を部分対応として採用するか」の方が，「部分対応にどのような属性を設定するか」よりも実行性能に与える影響がより大きいと思われる．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{ベースモデルの作成}\label{sec:base_model}ベースモデルは，MeCabの学習機能を使って作成する．使用した対訳データは，過去の研究\cite{SatoWWW2009,SatoNLP2012}によって得られた，国情報が不明の氏名対訳データ276,311件である．このデータを，まず，名前対訳データ136,106件\footnote{一部，クリーニングを適用した．}に変換し，次に，それぞれの対訳のアライメントを推定して学習用コーパスに変換し，MeCabのモデルを学習した．学習時に設定するCRFのパラメータは，実験的に調査した範囲では$C=0.4$が最も良かったため，この値で作成したモデルをベースモデルとして採用した．なお，このベースモデルの作成は2017年に行った．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{国別モデルの作成}\label{sec:country_model}国別モデルは，MeCabの再学習機能を使って作成する．この再学習機能は，学習済モデルと少量の追加学習用データからモデルを再構築する仕組みである．学習済モデルとしては，上記で述べたベースモデルを用い，追加学習用データとしては，名前対訳辞書に含まれるそれぞれの国の対訳データを用いる．再学習においてもCRFのパラメータが必要となるが，この値は，ベースモデル作成時と同じ$C=0.4$を用いた．208カ国の国別モデルの作成は，MacBookPro(AppleM1,16GB)で約26時間で完了する．そのため，国別モデルの数の多さ（208カ国）は，特に問題とはならない．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{検討}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{暫定訳はどのぐらい採用されたか}綴2021が出力した暫定訳は，実際にどのぐらい使われたのだろうか．時事通信社から入手した4大会の最終対訳名簿と，時事通信社に送付した綴2021の翻訳結果をつきあわせて採用率（そのまま採用された割合）を算出した．対象としたのは，最終対訳名簿と綴2021の翻訳結果の両方に含まれる人名である．人名の同一性は，選手コード\footnote{オリンピック参加者名簿では，候補者を含め，それぞれの選手にユニークなコードが割り当てられている．}の同一性で判定した．その結果を表\ref{tab:used}に示す．氏名は延べ数（人物単位），名前は異なり数（国名，アルファベット表記の名前，カタカナ表記の名前の3つ組の単位）である．氏名の下位分類「完全一致，一致，重複，推定」は，3.3節で述べた翻訳処理の状況に対応する．名前の下位分類「辞書，推定」は，辞書で翻訳したのか，トランスリタレーションで翻訳したのかを表す．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%table7\begin{table}[b]\input{17table07.tex}%\caption{4大会の暫定訳採用率}\label{tab:used}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%まず，東京オリンピックの結果に注目しよう．以下のことが観察される．\begin{itemize}\item翻訳結果が訳語推定によるもの，すなわち，新たにカタカナ訳を付与しなければならない人名が，氏名単位の翻訳では69.6\%，名前単位の翻訳では59.8\%を占めた．既訳辞書は，前回までのオリンピックやメジャーな国際大会の参加者名簿などを元に参加者予想を加味して作成されているが，そのような既訳辞書を用いても，辞書のカバー率は50\%に届かない．\item既訳の採用率は100\%ではない．氏名単位では，完全一致で6.0\%，一致で4.8\%，名前単位では3.4\%が修正された．これは，既訳がさまざまな事情（たとえば，他メディアとの整合性）で修正されることを示している．\item暫定訳の採用率は，氏名単位では90.4\%，名前単位では94.0\%であった．この値は十分高いと言えよう．\item訳語推定に限定した場合の暫定訳の採用率は，氏名単位では88.7\%，名前単位では92.3\%である．この値も十分高いと言えよう．\end{itemize}これらの数値から，綴2021の翻訳支援は十分に役立ったと結論づけてもよいだろう．さらに，綴2021のトランスリタレータ（翻訳サブシステム群）は，実用的な性能を有していると判断してもよいだろう．次に，他の3大会にも目を向けよう．\begin{itemize}\itemパラリンピックはオリンピックと比較して辞書のカバー率が高い．これは，おそらく，パラリンピックの方が参加者を予想しやすいためと考えられる．\item夏季大会に比べて冬季大会の採用率が低い．特に北京オリンピックの採用率が低い．この理由は定かではないが，各国モデルの作成に使用した既訳辞書に由来する可能性（夏季と冬季の参加者数の違いが，既訳辞書にも反映されている）と，対象とする国に由来する可能性（カタカナ訳が難しい国が多い），あるいは，競技種目に由来する可能性（冬季はメジャーな種目が少ない）が考えられる．辞書翻訳の採用率も低いことを考慮に入れると，カタカナ訳の方針が安定していない国が多いということなのかもしれない．\end{itemize}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{得られた知見}本稿で報告したオリンピック参加者名簿の翻訳支援の経験から多くの知見が得られたが，そのなかで筆者が特に重要と思う3点を以下にまとめる．\begin{enumerate}\item現実の問題は，ベンチマークとは異なる現実の人名トランスリタレーションでは，既訳が存在しない人名が対象となる．そこには正解は存在ぜず，トランスリタレータに求められることは，使用者や社会に受け入れられることが期待されるカタカナ訳（のひとつ）を作り出すことである．これまで，トランスリタレータの性能は，既訳データから構成されるテストセットを用い，既訳との一致率で評価されてきた．既訳が存在する人名は，本来はトランスリタレーションの対象外の人名である（トランスリタレーションの対象となる人名の母集団には含まれない）．そのため，テストセットを用いたベンチマークは，現実のタスクでどのぐらい役立つかを必ずしも正しく反映しない．現実のトランスリタレーション・タスクは，正解を当てるという問題ではない．\itemカタカナ訳の設計が重要一度に大量の人名にカタカナ訳を付与する場合，カタカナ訳全体の一貫性や統一性が求められる．そのため，それぞれの人名をどう訳すかを決める以前に，それぞれの国に対してカタカナ訳のガイドラインを決めることがより重要となる．このガイドラインには，どれだけのカタカナを使用するか（たとえば，「ヴ」を使用するのかしないのか），どのようなスペル・部分スペルにどのようなカタカナ表記を当てるか（たとえば，末尾の``vic''を「ビッチ」と訳すのか「ビク」と訳すのか）などが含まれる．今回のプロジェクトでは，カタカナ訳で使用できるカタカナ1文字・2文字を定義し，辞書および学習データのカタカナ表記を統制して，トランスリタレータが出力するカタカナ表記を統制した．このことは，トランスリタレーションを，ある種の設計問題として扱ったとも言える．しかしながら，十分に統制が行き届かなかったという反省もある．特に，複数の語からなる名前，たとえば，``AndreKlippenberg''や``Andre-Pierre''のカタカナ訳をどうするかの設計が不十分であった\footnote{カタカナ訳でこのような名前の区切りをどう表記するかは，社会的にはまったく定まっていないと言ってよい．区切りを無視する場合，中黒「・」でつなぐ場合，ハイフォンやマイナス記号でつなぐ場合など，多種多様な実例が存在する．}．アルファベット表記では，前者のように空白で区切られる場合と，後者のようにハイフォンで区切られる場合があるが，既訳辞書には後者の形式は存在しなかった．前者の場合，時事通信社の方針に従い，綴2021は空白を無視して「アンドレクリッペンベルグ」を出力するが，後者の場合はハイフォンを残し「アンドレ-ピエール」を出力するようになっていた\footnote{実はこれはバグで，設計では，全角のマイナス記号を出力する仕様となっていた．}．最終名簿では，後者はハイフォンを削除した「アンドレピエール」が使われていたため，後者の推定結果は不採用に分類される．このようなハイフォン削除のみの修正は，東京オリンピックの名前の修正数897件中194件(21.6\%)を占めた．\item安定したソフトウェアを使う\\綴2021と袷2019が利用している主要なソフトウェアは，Ruby,MeCab,SQLite3,ActiveRecordである．これらは安定しており，MeCab以外は十分に保守されている．数年に渡るプロジェクトにおいては，安定したソフトウェア，よく保守されているソフトウェアを使うことが重要である．実際，綴の旧バージョンで使用していた辞書検索ツールがOSのバージョンアップで使用できなくなったため，SQLite3への変更を余儀なくされた．\end{enumerate}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{関連研究}
トランスリタレーションの自動化は，Knightらの先駆的な研究\cite{Knight1998}以降，多くの研究が行われてきた．2010年頃までの研究は，Karimiらのサーベイ\cite{Karimi2011}にまとめられている．最近は，我々の研究\cite{JungJSAI2018}を含め，ニューラルネットを利用した実装\cite{Jadidinejad2016,grundkiewicz-heafield-2018-neural,10.1145/3265752}もある．トランスリタレーションは，抽象的には，ある系列を別の系列に変換する系列変換問題と捉えることができる．トランスリタレーションでは，通常の翻訳とは異なり，変換前後で対応する部分列の順序が保存される．そのため，系列ラベリング問題と捉えることもできる．トランスリタレーション過程を具体的にどのようにモデル化するかには，多くのバリエーションが存在する．それらのバリエーションを作り出す主要なポイントは，(1)中間的な音素のレベルを明示的に導入するか否か，(2)変換の最小単位をどのように設計するか，(3)最小単位の変換が何に依存して定まると仮定するか，の3点である．これらを定め，その詳細と実装方法を定めると，具体的な手法が得られる．トランスリタレーションは，対象とする言語対に依存する部分も大きく，どのような方法が最適であるかの判断は，容易ではない．綴2021の方式は，変換過程ではアルファベット表記を直接カタカナ表記に変換するため，中間的な音素レベルを経由しない（直接変換方式）．しかし，最小単位は，音を強く意識した独自のローマ字表記を経由して定める（袷2019）ため，音変換として完結した単位である．つまり，表面上は表記から表記への変換であるが，その変換の最小単位は，音に基づく変換となっている．最小単位への分割と最小単位の変換は，MeCab，すなわち，bi-gramマルコフモデルに基づいて行われ，その確率はConditionalRandomField(CRF)によって訓練例から学習される．トランスリタレーションはMeCabで実行されるため，十分に高速である．綴2021の大きな特徴は，入力として，原言語ではなく，国名を指定する点にある．これは，すでに2.1節で述べたように，人名のアルファベット表記だけから言語を推測することは困難であるという理由による．同時に，「1国1名前に対して，カタカナ訳はひとつ」という名簿翻訳の統制方針を実現するためでもある．どのような学習方式を採用するにせよ，学習ベースのシステムでは，どのような訓練例集合を用いるかが重要な要素となる．アルファベット表記\footnote{原論文では，Latinscript．}とカタカナ表記の人名対訳データとして，ウィキペディアから抽出したデータセットが公開されているが\cite{Merhav2018}，その大きさは名前単位で98,820件であり，かつ，それぞれの表記は統制されていない．これに対して，綴2021は，ベースモデルの学習に，対象とするタスク（オリンピック名簿の翻訳）の要請に合致するように表記を統制した訓練例136,106件を使用し，さらに，各国モデルの学習では，延べ40,050件の国別人名訓練例（既訳辞書）を使用している．トランスリタレーションの出力を統制するためには，訓練例を適切に統制することが不可欠である．これまでのトランスリタレーションの研究では，既訳データから構成されるテストセットを用いて性能を評価してきた．しかしながら，2.3節で述べたように，既訳が存在するならば，トランスリタレーションを適用する必要はない．つまり，このような評価は，本来対象とすべき母集団には含まれないデータを使って評価していることになる．真にトランスリタレーションを必要とするのは，既訳が存在しない場合である．本研究は，オリンピック参加者名簿の翻訳という現実のタスクに対してシステムを設計・実装し，真にトランスリタレーションを必要とする人名に対して，システムのタスク遂行の程度を採用率という形で示した点に新規性がある．なお，採用率は，テストセットを用いてシステムの性能を測るベンチマークの指標ではなく，遂行した現実のタスクの事後評価の指標である．ほとんどのトランスリタレーション研究では，どのような方式でトランスリタレーションを実現するかに焦点が当てられてきた．しかしながら，現実のタスクに対して実際に使えるシステムを作る場合は，その比重は小さい．それよりも，そのタスクが要請する仕様をどう満たすか，それに合わせて訓練例をどのように統制するか，使用形態を想定してどのようなサービスを提供するか，外部要因で定まるスケジュールを満たすために何をすべきか（十分な高速化と修正作業の簡便化）などが，より大きな比重を占める．現実の問題を解く場合は，このような要素を考慮して実現可能な解決策を見つける必要がある．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\acknowledgment本研究に研究パートナーとして協力してくださった時事通信社の朝賀英裕氏に感謝します．本研究では，JSPS科学研究費21300094，2650047の成果を利用した．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\bibliographystyle{jnlpbbl_1.7}\bibliography{17refs}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\appendix
\section{対訳辞書のサイズ}
表\ref{tab:country}に，綴2021の氏名対訳辞書および名前対訳辞書の国別のサイズを示す．\newpage%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%table8\begin{table}[p]\input{17table08.tex}%\end{center}\caption{対訳辞書の国別サイズ（国名はIOCコード）}\label{tab:country}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\clearpage%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\begin{biography}\bioauthor{佐藤理史}{%1988年京都大学大学院工学研究科博士後期課程研究指導認定退学．京都大学工学部助手，北陸先端科学技術大学院大学情報科学研究科助教授，京都大学情報学研究科助教授を経て，2005年より名古屋大学大学院工学研究科教授．博士（工学）．言語処理学会，人工知能学会，日本認知科学会，ACM各会員．}\end{biography}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\biodate\end{document}