自然言語処理の立ち位置をざっくり知るために国立国会図書館典拠データを参照したのち、ついでにウィキデータを整備したところ、典拠データで修正した方がよさそうな箇所を見つけたので修正提案を行なった話

Translate this post

稲門ウィキペディアン会の Eugene Ormandy です。2024年10月、自然言語処理について学ぶために国立国会図書館典拠データにアクセスし、ついでにウィキデータを編集したところ、典拠データで修正した方がよさそうな箇所を見つけたので、国立国会図書館に修正提案を行いました。その一連のプロセスをまとめます。

Uraniwa, CC0

経緯

ウィキデータへの知見を深めるために、私は2024年10月ごろから自然言語処理の勉強を始めました。この分野は非常に興味深く、楽しく教科書を読み進めていたのですが、そんな折にふと「そもそも自然言語処理って、学問においてどのような立ち位置なのだろう。上位とされる分野や、下位とされる分野はなんなのだろう」という疑問を抱きました。

そこで、国立国会図書館典拠データ (Web NDL Authorities) における「自然言語処理」の項目にアクセスして確認することに。国立国会図書館典拠データとは、その名のとおり日本の国立国会図書館が作成する典拠データのことで、様々な項目の上位語や関連語、日本十進分類法における分類などがまとめられています。詳しく知りたい方は、下記の解説ページをご覧くださいませ。

国立国会図書館 (Nesnad, CC BY 4.0)

国立国会図書館典拠データを確認

国立国会図書館典拠データ「自然言語処理」にアクセスしたところ、上位語として「情報処理」が、下位語として「漢字処理」「機械翻訳」「テキストマイニング」が提示されていました。また、関連語として「言語」「オントロジー (情報科学)」「コーパス言語学」が挙げられていました。頭の整理に非常に役立ちましたが、一方で「ニューラルネットワークについては言及がないし、知識グラフにいたっては立項すらされていないのね」とも思いました。

2012年アメリカ合衆国大統領選挙のナラティブ・ネットワーク。テキストマイニングの一例。(Thinkbig-project, CC BY 4.0)

ついでにウィキデータを編集

私は比較的ヘビーなウィキメディアンです。つまり、自分の知的活動はできる限りウィキメディア・プロジェクトの改善につなげたいと思っている人間です。ということで、今回の作業もウィキデータに反映することにしました。具体的には「自然言語処理」およびその下位概念のウィキデータ項目4つに、上位クラスを設定することにしました。

実際に行った作業は以下のとおりです。なお、本稿ではウィキデータの初歩的な解説は割愛しておりますので、わからない点などありましたら「Wikidata:はじめに」などのガイドラインを適宜ご参照ください。

1. 自然言語処理 (Q30642)

まずはウィキデータ項目「自然言語処理 (Q30642)」を編集。すでに日本語ラベルは記入されていたものの、日本語の「説明」フィールドが未記入だったので、英語の説明文を翻訳しました。また、国立国会図書館典拠データを出典として「上位クラス (P279)」プロパティにバリュー「情報処理 (Q750843)」を追加しました。

なお、上位クラスプロパティには既に、バリューとして人工知能 (Q11660)計算機科学 (Q21198)計算言語学 (Q182557)学問領域 (Q11862829) が入力されていました。これに情報処理 (Q750843) を追加して良いものか少し迷いましたが、上記の項目はいずれもその上位クラスに情報処理 (Q750843) が登録されていなかった点、そして、自然言語の上位クラスとしての「情報処理」には国立国会図書館典拠データという信頼できる情報源がある点を踏まえ、バリューに追加しました。

ちなみに、計算言語学 (Q182557) という項目が上位クラスプロパティのバリューとして計算機科学 (Q21198) を有している以上、この両者が自然言語処理 (Q30642) の上位クラスプロパティのバリューとして入力されているのは不適切では?とも思いましたが、いかんせん当該分野の知見が私にはないので、修正は控えました。

ウィキデータ項目「自然言語処理 (Q30642)」における「上位クラス (P279)」プロパティ。筆者がバリュー「情報処理 (Q750843)」を追加する前の状態。2024年10月27日 (日) 16:07 (UTC) 版。CC0.

上記の他にも、国立国会図書館典拠データ「自然言語処理」に同義語として登録されていたもののうち「言語情報処理」と「言語とデータ処理」を、ウィキデータ項目「自然言語処理 (Q30642)」の日本語「別名」フィールドに記入しました。

ウィキデータ項目「自然言語処理 (Q30642)」におけるラベル、別名等。2024年10月28日 (月) 13:50 (UTC) 版。CC0.

2. 機械翻訳 (Q79798)

続いて、自然言語処理の下位語である「機械翻訳 (Q79798)」を編集。まずは、日本語の「説明」フィールドが空白だったので、英語の説明 “use of software for language translation” をベースとして入力しました。なお、直訳すると日本語として不自然だと思ったので、下記画像のように「ソフトウェアを用いた言語翻訳」としました。

ウィキデータ項目「機械翻訳 (Q79798)」におけるラベル、別名等。2024年10月29日 (火) 02:12 (UTC) 版。 CC0

ウィキデータの「説明」フィールドの記述(自然言語)は奥が深く、本気で取り掛かろうと思えばそれこそ辞書編纂者のような努力が求められますが、それでは埒が明かないので「大きく間違っていなければとりあえず書いておく。何も記述されていないよりは遥かにマシ」と割り切る必要があるなと個人的には感じています。ウィキデータの「説明」フィールドは、スマートフォン版ウィキペディアの概要部分など様々な場面で利用されますからね。

閑話休題。その後はウィキデータ項目「機械翻訳 (Q79798)」に上位クラス (P279) プロパティを設定し、バリューとして自然言語処理 (Q30642) を入力しました。もちろんその出典は、国立国会図書館典拠データ「機械翻訳」です。

バリューには既に「翻訳 (Q7553)」と「計算言語学 (Q182557)」が入力されていましたが、ともに上位クラスに自然言語処理 (Q30642) を持たなかったので、安心して入力しました。ついでに、バリューの一つ「翻訳 (Q7553)」については、国立国会図書館典拠データ「機械翻訳」を用いた出典補足も行っておきました。

なお、「計算言語学 (Q182557) の上位クラスとして自然言語処理 (Q30642) を登録しておいた方がいいかな?」とも思いましたが、いかんせん当該分野の知識がない上、国立国会図書館典拠データにも「計算言語学」は立項されていなかったので控えました。

ウィキデータ項目「機械翻訳 (Q79798)」の上位クラスプロパティ。2024年10月29日 (火) 04:29 (UTC) 版。CC0.

また、国立国会図書館典拠データ「機械翻訳」には、同義語として「自動翻訳」「翻訳機」「Machine translating」が挙げられていたので、これらのうちウィキデータ項目「機械翻訳 (Q79798)」の日本語「別名」フィールドに未反映だった「翻訳機」を、同フィールドに追加しました。「翻訳機 (Q11610578) 」というウィキデータ項目が別に立項されていることをふまえると、この別名は追加しない方がいいかなとも思いましたが、「機械翻訳 (Q79798)」と「翻訳機 (Q11610578) 」が統合される可能性は低そうなので、とりあえず追加しておきました。

3. テキストマイニング (Q676880)

同じく、国立国会図書館典拠データ「自然言語処理」に下位語として登録されていた「テキストマイニング」のウィキデータ項目「テキストマイニング (Q676880)」も編集しました。

1, 2 同様、説明欄を記入し、上位クラスプロパティのバリューとして「自然言語処理 (Q30642)」を追加しました。また、既に上位クラスプロパティのバリューとして記載されていた「テキストデータマイニング (Q70708084)」に、出典として国立国会図書館典拠データ「テキストマイニング」のURLを追加しました。

なお、国立国会図書館典拠データ「テキストマイニング」に上位語として登録されていたのは「データマイニング」です。しかし上述のとおり、ウィキデータ項目「テキストマイニング (Q676880)」の上位クラスプロパティにバリューとして入力されていたのは「テキストデータマイニング (Q70708084)」でした。

しかも、ややこしいことにウィキデータには別途「データマイニング (Q172491)」という項目が立項されていました。そして、その項目の上位クラスプロパティにもバリューとして「テキストデータマイニング (Q70708084)」が入力されていました。

なお、国立国会図書館典拠データ「データマイニング」の上位語に「テキストデータマイニング」は挙げられておらず、むしろ「テキストマイニング」の同義語として提示されていました。くわえて、ウィキデータ項目「テキストマイニング (Q676880)」の識別子フィールドに紐づけられている世界各国の典拠データでも、「テキストマイニング」や「テキストデータマイニング」をめぐる扱いはバラバラでした。頭が痛い……。

上記の説明を図示。(Eugene Ormandy, CC0)

仕方がないので、最初に説明したように、ウィキデータ項目「テキストマイニング (Q676880)」の上位クラスプロパティのバリューとして記載されていた「テキストデータマイニング (Q70708084)」に、出典として国立国会図書館典拠データ「テキストマイニング」のURLを追加しました。こちらも「ないよりはマシ」精神による編集です。項目統合などによる整理は、今後の識者に任せます。

4. 漢字処理 (Q130722487)

国立国会図書館典拠データ「自然言語処理」には、下位語として「漢字処理」が登録されていました。そこで、ウィキデータで「漢字処理」と検索したのですが、該当する項目はヒットせず。また、国立国会図書館典拠データ「漢字処理」で「同義語」として登録されていた “Chinese character sets” で検索したところ、ウィキデータ項目「Chinese character sets (Q124097630) 」がヒットしましたが、紐付けられた英語版ウィキペディア記事に鑑みるに、その表す内容は明らかに好意としての「漢字処理」ではないと判断できました。

そこで、新しいウィキデータ項目「漢字処理 (Q130722487) 」を立項しました。説明フィールドを記入したのち、プロパティ「上位クラス (P279)」「用途 (P366)」「国立国会図書館典拠ID (P349)」を記入しました。また、英語のラベルについてですが、グーグルスカラーなどで論文タイトルを閲覧する限り、明らかに “Chinese character processing” の方が妥当だと判断されたので、こちらをラベルとして、国立国会図書館典拠データ「漢字処理」で「同義語」として登録されていた “Chinese character sets” は、英語の「別名」フィールドに記載しました。

これにてウィキデータの編集はひと段落。編集自体は簡易なものでしたが、思いのほか色々な判断をする必要がありました。

ウィキデータ・グラフ・ビルダーで全体像を把握しつつ未整備データを発見する

せっかくなので、ウィキデータ・グラフ・ビルダーを用いて、自然言語処理の下位概念をグラフ化することにしました。

ウィキデータ・グラフ・ビルダーを用いて作成したグラフ。2024年10月作成。(Eugene Ormandy, CC0)

なかなか面白いグラフですが、日本語のラベルを持つ項目が少ないことが残念ですね。せっかくなので、自分の勉強も兼ねて日本語ラベルを追加していくことにしました。具体的には、J-STAGE で日本語の論文を参照しつつ、日本語名称を追記しました。作業を行なった項目は以下のとおりです。作業内容については、各項目の履歴をご確認ください。

国立国会図書館典拠データの修正提案

また、国立国会図書館典拠データの担当部署に、以下の修正提案をメールで送付しました。概要は以下のとおりです。実際のメールでは、参考文献や他の典拠データの状況なども記しています。

  • 「自然言語処理」の関連語に「ニューラルネットワーク」を追加してはどうか。
  • 「知識グラフ」を立項してはどうか。
  • 「漢字処理」の同義語の英語表記は “Chinese character processing” としてはどうか。

まとめ

自分の勉強を進めるために典拠データを参照し、その内容をウィキデータに反映したプロセスをまとめました。

「もっと色々な人に典拠データを使ってほしい」と私は思っていますし、典拠データの可能性は無限大だと思っています。そして何より、私はウィキメディア・プロジェクトの改善によって、人類が得られるフリーな知識が整備されてほしいと心の底から強く強く思っています。本稿が何かの形でその役に立てば幸いです。

Can you help us translate this article?

In order for this article to reach as many people as possible we would like your help. Can you translate this article to get the message out?