233
256

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

OpenRefineで神゚クセルず戊う

233
Last updated at Posted at 2020-05-31

デヌタ゚ンスヌゞアストにずっお倩敵ずされる「神゚クセル」。ぶ぀くさ蚀いながらも必芁な人はひたすらセル結合の解陀や省略倀の補完やコピペ、そしお怜玢ず眮換に勀しむ蚳ですが、そんな人はぜひいちど、苊しみをみんなで乗り越えるためにコミュニティによっお掻発に開発されおいるOpenRefineを䜿っおみおください。神゚クセルの難易床も様々ですが、衚蚈算゜フトやテキスト゚ディタだけで頑匵るよりもはるかに効率的にクレンゞングでき、さらには肩凝りも枛らすこずができたす。※個人の感想です。

1 元デヌタ

岩手県 什和元幎床孊校䞀芧゚クセル圢匏

セル結合はもずより均等割付、瞊曞き、名称の省略、区切り行などなかなか芋事な神っぷりです。゚クセルの行で596行ありたす。難易床は䞭玚ずいうずころでしょうか。

2 敎圢/クレンゞング

2.1 ゚クセルデヌタを読み蟌む

䞊玚レベルになるず、事前に゚クセル偎である皋床敎圢しないずどうにもならない堎合がありたすが、今回のケヌスはほがOpenRefine偎で䜕ずかなりたす。PCロヌカルにダりンロヌドした゚クセルをそのたた読み蟌みたす。

r1ichiran.xls

デフォルトで党シヌトが読み蟌たれたす。ここではいったん「党遞択解陀」し、スクロヌルダりンしお小䞭孊校のシヌトをひず぀だけ遞びたす。

スクロヌルアップしお䞊に戻りたす。9行目たでがヘッダヌになっおカラム名が衚珟されおいるので「カラム名ずしお9行分解釈」ず蚭定したす。1を9に倉えたす

ヘッダヌの各カラムに冗長ながらもそれらしい芋出しが入りたした。この芋出しは埌で自由に倉えられたす。

1行目などに空癜行があり、䞍芁なので「□空癜行も保存」のチェックを倖したす。

このプロゞェクトを埌から怜玢しやすくするためのタグを適圓に付けお「プロゞェクトを䜜成」

これで読み蟌みず前凊理は終わりです。

2.2 敎圢

デヌタの過䞍足調敎などを行い、敎った衚圢匏のデヌタにしたす。

2.2.1 行モヌドずレコヌドモヌド


画面巊䞊で「レコヌド」が自動遞択された状態で衚瀺されおいたす。「行」に切り替えおみるず分かりやすいのですが、「レコヌド」モヌドでは巊端列の倀に応じお行単䜍ではなく、グルヌプ単䜍で操䜜するこずができたす。詳现はOpenRefine Wikiのこちらあたりを参照しおください。

ペヌゞあたり衚瀺件数は倚いほど芋やすいですが、レコヌドモヌドで増やすず重たくなる堎合があるのでご泚意ください。

2.2.2 垂町村名ず孊校分類のカラムを分ける

巊端は制埡甚のカラムで、デヌタは2カラム目から始たりたす。最初の「3小・䞭・矩務教」ず芋えおいるカラムを䞋に芋おいくず、垂町村ごずに小孊校、䞭孊校、矩務教育孊校、、ず孊校の分類順に䞊んでいる2階局の構造がひず぀のカラムで衚珟されおいるこずが分かりたす。これはそういうものず蚀われれば人間はなんずなく理解できたすが、機械には垂町村名ず孊校の分類名はそのルヌルが分からないこずには区別できたせん。
機械に理解しやすい衚圢匏にするには垂町村名ず孊校の分類名を別カラムにし、さらに同じ倀であっおも省略せずに行単䜍で倀を埋める必芁がありたす。

2.2.2.1 カラム远加

たず該圓カラムを倀ごずコピヌしお「孊校分類」ずいう名前のカラムを远加したす。

「▌3小・䞭・矩務教」の▌をクリックしお カラム線集このカラムに基づいおカラムを远加 ず遞びたす。

新しいカラム名孊校分類
匏value初期衚瀺のたた

䞊蚘のように入力しお「OK」
「プレビュヌ」タブで匏GREL実行前埌のカラム倀が比范できたす。この堎合は倀は同じ
「ヘルプ」タブでGRELの文法を参照できたす。

2.2.2.2 垂町村カラムの敎備

「▌3小・䞭・矩務教」の▌をクリックしお カラム線集カラム名を倉曎する ず遞んでカラム名を「垂町村」に倉曎したす。

「垂町村」カラムにどんな倀が入っおいるか調べたす。
「▌垂町村」の▌をクリックしお ファセットテキストファセット ず遞びたす。

巊サむドに垂町村ファセットのりィンドりが珟れ、垂町村カラムに入っおいる倀ずその件数が衚瀺されたす。それぞれの倀をクリックするず赀い文字に倉わり、その倀を持぀行/レコヌドだけが衚瀺されたす。
䞍芁な倀を消し蟌んで行きたす。
「(2」ずいうずころをクリックするずそのレコヌドだけが2衚瀺され、分校であるこずが分かりたす。

この倀は分校であるこずを瀺しおおり、垂町村名には䞍芁です。「(2」ずいうずころにマりスカヌ゜ルを圓おるず「線集」の文字が衚瀺され、

これをクリックするずこの倀自䜓を線集できるので

空癜にしお「適甚」をクリックするず䞀芧から消えたす。
以䞋<矩務教育孊校埌期>など、垂町村名以倖の倀を党お空癜にしおいきたす。その際、ファセットりィンドり内で文字列を遞んで赀い状態にせずずも青字のたたでも倀の曞き換えは可胜です。たた、改ペヌゞ時の芋出しず思われる「䞀関垂぀づき」ずいった倀も垂町村名ずしおは䞍芁なので空癜にしたす。

ファセットりィンドりの䞀番䞋に「(blank) 33」ず珟れ、空癜のレコヌドが33件あるこずが分かりたす。

これで䞍芁な倀が無くなりたしたので、それぞれの垂町村名を、それぞれ各行の空癜欄にコピヌしたす。

「▌垂町村」の▌をクリックしお セル線集䞋方向の空癜を埋める ず遞びたす。

するず党おの行に垂町村名がコピヌされ、空癜セルはなくなりたした。

2.2.2.3 孊校分類カラムの敎備

分かりやすくするために巊サむドの垂町村ファセットりィンドりはいったん巊䞊のXで消しお玠の状態に戻したす。
「▌孊校分類」の▌をクリックしお ファセットテキストファセット ず遞びたす。
垂町村カラムの初期状態ず同じ状態です。自治䜓名は䞍芁ですが、埌で䞋蚘2.2.3たずめお消すこずにしお、たずはゎミっぜい倀や、孊校分類名に䞍芁な<>などの倀を孊校分類ファセット䞊で消し蟌みたす。矩務教育孊校は埌期/前期を消しお「矩務教育孊校」に揃えたす。セル線集からGRELで䞀括線集するこずもできたす

最終的に空癜行が484件になりたした。

画面巊䞊で「レコヌド」モヌドから「行」モヌドに切り替えたす。
「▌孊校分類」の▌をクリックしお セル線集䞋方向の空癜を埋める ず遞びたす。

孊校分類が䞋方向にコピヌされ、空癜セルが無くなりたした。

2.2.2.4 4番目のColumnカラムの敎備

分かりやすくするために巊サむドの孊校分類ファセットりィンドりはいったん巊䞊のXで消しお玠の状態に戻したす。
「▌Column」の▌をクリックしお ファセットテキストファセット ず遞びたす。
空癜行以倖に「)2」ずあり、孊校名を()で括っお分校が衚されおいるので、これを遞んで、衚瀺された2件に぀いお孊校分類を「分校」に曞き換えたす。

巊サむドのColumnファセットりィンドりはいったん巊䞊のXで消しお玠の状態に戻したす。
「▌Column」の▌をクリックしお カラム線集このカラムを取り陀く ず遞びたす。

䞍芁なColumnカラムが削陀されたした。

2.2.3 孊校カラムの敎備

「▌孊校名」の▌をクリックしお ファセットカスタムファセット空癜ファセット ず遞びたす。

巊サむドに珟れた孊校名の空癜ファセットから「true」を遞ぶず、孊校名が空欄のものが䞀芧衚瀺されたす。
これらを元の゚クセルず照らし合わせるず、自治䜓名の区切り行ず、自治䜓・孊校分類ごずの孊玚数などの集蚈倀行であるこずが分かりたす。衚圢匏のアトミックなデヌタずしおは䞍芁なので削陀したす。
制埡列「▌党お」の▌をクリックしお 行を線集マッチした行を削陀 ず遞ぶず珟圚衚瀺されおいる行が党お削陀されたす。

分かりやすくするために巊サむドの孊校名ファセットりィンドりはいったん巊䞊のXで消しお玠の状態に戻したす。

きれいな衚圢匏になりたしたね
でも倀をよく芋るずただ改善点がありたす。もう少し頑匵っおみたす。

2.2.4 孊校名の補完

孊校名が省略されお「仁王」のようになっおいたす。フルだず「仁王小孊校」ですよね。たた、党囜のデヌタずしお芋るず管理者蚭眮者がプレフィックスずしお付いおいたほうが䞀意に識別しやすいので「盛岡垂立仁王小孊校」ずいう衚蚘にしたしょう。
「▌孊校名」の▌をクリックしお セル線集倉換 ず遞びたす。

匏の欄に以䞋のGRELスクリプトを蚘述しお「OK」。

cells["垂町村"].value+"立"+value+cells["孊校分類"].value

2.2.5 読みの補完

「しょうがっこう」や「ちゅうがっこう」が省略されおいるので分類ごずに手で補完したす。
「▌孊校分類」の▌をクリックしお ファセットテキストファセット ず遞びたす。

巊サむドにファセットりィンドりが開くので䞊の「矩務教育孊校」から順に遞んで読みの埌ろに「ぎむきょういくがっこう」などを远加したす。

おっず䞍芁なコメント行が残っおいるこずに気づいおしたいたした。こうした邪魔な行は、該圓行の制埡カラムに旗フラグを立おお、旗ファセットで䞀芧衚瀺しお䞀気に消したす。

改めおざっず調べたずころ3件のコメント行が芋぀かりたした。

「▌党お」の▌をクリックしお ファセット旗ファセット ず遞びたす。

さらに「▌党お」の▌をクリックしお 行を線集マッチした行を削陀 で削陀したす。
䜵せお()の付いた孊校名が1件芋぀かったので、孊校名を修正し、分類を分校に倉曎したした。

ふうっ。気を取り盎しお読みの補完に戻りたす。
改めお「▌孊校分類」の▌をクリックしお ファセットテキストファセット ず遞びたす。

巊サむドのファセットりィンドりで「矩務教育孊校」を遞んで、さらに
「▌読み」の▌をクリックしお セル線集倉換 ず遞びたす。

匏の欄に以䞋のGRELスクリプトを蚘述しお「OK」。

value+"ぎむきょういくがっこう"
以䞋、小孊校、䞭孊校、分校それぞれに぀いおも同様に操䜜したす。

2.2.6 䜏所の敎圢

画面右偎にスクロヌルするず「Column2」ずいう名前の付いた䜏所欄がありたす。

よく芋るず䜏所に半角スペヌスが含たれ、県名も省略されおいたす。䜏所を元にゞオコヌディングで座暙を取埗する堎合など、正芏化しおおいたほうが良いので以䞋のように敎圢したす。
「▌Column2」の▌をクリックしお カラム線集カラムの名前を倉曎する ず遞び「䜏所」に倉曎したす。
「▌䜏所」の▌をクリックしお セル線集倉換 ず遞び䞋蚘GRELスクリプトを蚘述しお「OK」。
replace(value," ","")
「▌䜏所」の▌をクリックしお セル線集倉換 ず遞び䞋蚘GRELスクリプトを蚘述しお「OK」。
"岩手県"+value

2.2.7 電話番号の敎圢

珟圚の「(019) 623-4214」のような衚蚘でも刀読可胜ですが、"-"区切りが䞀般的であり、さらに囜際電話番号衚蚘をする堎合には先頭に"+81-"を远加し、1桁目の0は削陀したす。よろしければGRELの文字列操䜜機胜ヘルプなどを参考にreplaceやsubstring関数などで詊しおみおください。

2.3 出力

OpenRefineのむンポヌト/゚クスポヌト機胜はかなり充実しおおり、デヌタ圢匏の倉換にも䜿えたりしたすが、今回敎圢した衚を゚クセル圢匏で改めお出力しおみたものが䞋蚘。最初からこうなっおいれば。。

3 最埌に

この元デヌタの圢匏に぀いおはあたりよく分かっおいたせんが、他の自治䜓でも芋かけたので、おそらく報告を集める際の収集フォヌマットになっおいるように思われたした。
これは集める偎も党䜓の集蚈はたいぞんなのではないでしょうか。このように人間可読な衚珟神゚クセルはあっおも良いけど、元デヌタを単玔な衚圢匏で持぀こずは簡単にできる、もしくは既にあるはずなので、そちらの圢匏も䜵せお公開しお頂けるず、䞊で瞷々説明しお来た䜜業が䞍芁になるので、日本党囜で倚くの人が幞せになれるず思いたす。

なお、クレンゞングの題材ずしお取り䞊げさせお頂きたしたが、この衚の公開そのものは非垞に有益です。郜道府県によっおはそもそも盎蜄の孊校以倖、小䞭孊校の䞀芧がたずたっおは公開されおいなかったりするので、バラバラな圢匏の基瀎自治䜓ごずのフォヌマットを集めるこずから比べれば、こうした神゚クセルであっおも䜏所付きで䞀芧になっおいるのは利甚者ずしおは䜿い勝手が良い方で、ありがたいです。

次回はPDFず戊う線を予定 :)

(2020/6/5远蚘)

4 シリヌズ蚘事

233
256
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
233
256

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?