2022年6月5日日曜日

NDC Predictor

国立国会図書館NDLラボが提供している実験的サービスの一つに,NDC Predictorがある。これは,機械学習による日本十進分類の推測アプリであり,テキストエリアに貼り付けられた書誌情報から日本十進分類(NDC9版)を推測する。

日本十進分類法の最新版は,2014年に改訂された新訂10版である。書籍で2分冊800pからなるが,ネット上の関連資料としては,日本図書館協会NDC10による分類記号順標目表や国立国会図書館 の「日本十進分類法(NDC)新訂 10 版」 分類基準がある。

実際の分類には熟練の技が必要かもしれないので,タイトルや著者や出版者などのざっくりした書誌情報で他のテキストが混ざっていても,第一から第三候補まで推測してくれるのであれば,それはそれで有難そうだ。

さっそく,試してみるが,書名と著者名で検索したところ,「統計力学 著者」は,第一候補が90%以上の確率で421/理論物理学,第二候補が1%以内の確率で426/熱力学となった。各著者の第一候補の確率は,久保亮五が99.9%,鈴木増雄99.8%,田崎晴明99.5%,長岡洋介99.2%,北原和夫・杉山忠男98.8%,湯川諭92.3%となった。稲葉肇の統計力学の形成は,91.9%だった。

REST-APIもオープンになっているので,PCからコマンド入力によって結果を機械可読な形式で取り出すこともできる。早速試してみる。APIというとHTTP-APIのGETしか使ったことがない。4回生の2009年の卒業研究でGoogleMap-APIを使って,自然観察の理科ノートを地図上に貼り付けて時空間の変化を調べようというものだった。

今回は,HTTP-POSTを使うので普通のブラウザではアクセスできない。どうするのかと思ったら,curl コマンドを使えばよいということがわかった。具体的には次のようにする。

curl -XPOST "https://lab.ndl.go.jp/ndc/api/predict" --data "bib=統計力学 久保亮五" 

予測に使う文字列は,1000文字以内であり,bib=の後にいれればよい。出力は,JSON形式となり,[ { "value":"推測されたNDCの値, "label":"推測されたNDCのラベル", "score":"推測の確信度(0-1)" }, {第二候補}, {第三候補} ],のようになる。上の例ではつぎのとおり。

[{"value":"421","label":"理論物理学","score":0.9997790320037916},{"value":"426","label":"熱学","score":2.3498150212228626E-4},{"value":"429","label":"原子物理学","score":1.2803195946766326E-5}]

lynxコマンドでも大丈夫かを確かめたところ,標準入力からデータと終了記号をいれてOK。

lynx https://lab.ndl.go.jp/ndc/api/predict -post_data
bib=統計力学 久保亮五
---

[1]開発者のための日本十進分類法

[2]NDCデータ(日本図書館協会)

0 件のコメント: