Madara
Madara

Reputation: 368

I would like to know a way to convert following unicode string to modern Japanese characters

I've been attempting to create a Convolutional network that involves me using the Kuzushiji dataset to convert ancient kuzushiji documents into modern Japanese. I was just looking for a way to decode the labels given for each image into normal modern day Japanese characters

Sample string is given below

U+306F 1231 3465 133 53 U+304C 275 1652 84 69 U+3044 1495 1218 143 69 U+3051 220 3331 53 91 U+306B 911 1452 61 92 U+306B 927 3445 71 92 U+306E 904 2879 95 92 U+5DE5 1168 1396 187 95 U+3053 289 3166 69 97 U+4E09 897 3034 121 107 U+306E 547 1912 141 108 U+3084 1489 2675 151 109 U+3068 1561 2979 55 116 U+5DF1 1513 2500 127 117 U+3082 1213 1523 72 119 U+3055 1219 3266 95 124 U+306E 259 2230 68 125 U+306E 1184 2423 169 125 U+4E16 849 2236 163 127 U+7D30 1144 1212 200 128 U+305D 316 3287 57 133 U+4EBA 217 2044 183 135 U+3051 277 2974 112 137 U+308C 201 3423 181 137 U+3060 243 2830 159 143 U+5F37 1479 2034 163 145 U+306E 1497 1567 123 152 U+305F 1164 952 145 153 U+3066 552 1199 97 155 U+4FF3 537 2095 176 155 U+6839 203 1439 184 156 U+304B 1188 2606 156 157 U+8AE7 549 2328 156 159 U+308C 1495 2784 168 159 U+5B50 891 1255 100 164 U+3092 584 2546 117 164 U+53CA 849 1588 151 164 U+8005 1192 2198 133 169 U+305A 889 1763 103 171 U+907F 513 945 181 171 U+6B63 539 1439 136 172 U+6587 192 2382 216 173 U+3075 1512 3371 147 176 U+6642 1465 1338 168 179 U+601D 1492 3175 159 180 U+306A 1191 2775 135 181 U+3081 593 3313 151 184 U+6D6E 868 1982 155 184 U+3092 873 2400 145 192 U+6C17 1504 1754 145 200 U+8077 208 1770 197 204 U+8001 1167 1687 152 208 U+6B66 1184 1942 171 208 U+697D 568 2762 133 209 U+3082 247 1159 116 212 U+76F2 253 2578 119 215 U+82E5 1465 951 172 216 U+81EA 1852 1736 104 219 U+3069 220 928 139 229 U+98A8 541 1619 147 236 U+306B 1521 2239 83 237 U+88CF 851 2608 169 237 U+7573 905 3189 103 244 U+606F 876 937 123 244 U+5E8F 1816 2096 152 296 U+3057 629 2985 27 300 U+3057 1243 2942 39 313

Upvotes: 0

Views: 95

Answers (1)

daxim
daxim

Reputation: 39158

Run with perl -C so-57962343.pl.

use charnames qw();
my $input = 'U+306F 1231 3465 133 53 U+304C 275 1652 84 69 U+3044 1495 1218 143 69 U+3051 220 3331 53 91 U+306B 911 1452 61 92 U+306B 927 3445 71 92 U+306E 904 2879 95 92 U+5DE5 1168 1396 187 95 U+3053 289 3166 69 97 U+4E09 897 3034 121 107 U+306E 547 1912 141 108 U+3084 1489 2675 151 109 U+3068 1561 2979 55 116 U+5DF1 1513 2500 127 117 U+3082 1213 1523 72 119 U+3055 1219 3266 95 124 U+306E 259 2230 68 125 U+306E 1184 2423 169 125 U+4E16 849 2236 163 127 U+7D30 1144 1212 200 128 U+305D 316 3287 57 133 U+4EBA 217 2044 183 135 U+3051 277 2974 112 137 U+308C 201 3423 181 137 U+3060 243 2830 159 143 U+5F37 1479 2034 163 145 U+306E 1497 1567 123 152 U+305F 1164 952 145 153 U+3066 552 1199 97 155 U+4FF3 537 2095 176 155 U+6839 203 1439 184 156 U+304B 1188 2606 156 157 U+8AE7 549 2328 156 159 U+308C 1495 2784 168 159 U+5B50 891 1255 100 164 U+3092 584 2546 117 164 U+53CA 849 1588 151 164 U+8005 1192 2198 133 169 U+305A 889 1763 103 171 U+907F 513 945 181 171 U+6B63 539 1439 136 172 U+6587 192 2382 216 173 U+3075 1512 3371 147 176 U+6642 1465 1338 168 179 U+601D 1492 3175 159 180 U+306A 1191 2775 135 181 U+3081 593 3313 151 184 U+6D6E 868 1982 155 184 U+3092 873 2400 145 192 U+6C17 1504 1754 145 200 U+8077 208 1770 197 204 U+8001 1167 1687 152 208 U+6B66 1184 1942 171 208 U+697D 568 2762 133 209 U+3082 247 1159 116 212 U+76F2 253 2578 119 215 U+82E5 1465 951 172 216 U+81EA 1852 1736 104 219 U+3069 220 928 139 229 U+98A8 541 1619 147 236 U+306B 1521 2239 83 237 U+88CF 851 2608 169 237 U+7573 905 3189 103 244 U+606F 876 937 123 244 U+5E8F 1816 2096 152 296 U+3057 629 2985 27 300 U+3057 1243 2942 39 313';
for my $part (split /(?=U\+)/, $input) {
    $part =~ s{
        (?<codepoint>U\+[[:xdigit:]]+)
    }{
        charnames::string_vianame($+{codepoint})
    }emsx;
    print "$part\n";
}
__END__
は 1231 3465 133 53 
が 275 1652 84 69 
い 1495 1218 143 69 
け 220 3331 53 91 
に 911 1452 61 92 
に 927 3445 71 92 
の 904 2879 95 92 
工 1168 1396 187 95 
こ 289 3166 69 97 
三 897 3034 121 107 
の 547 1912 141 108 
や 1489 2675 151 109 
と 1561 2979 55 116 
己 1513 2500 127 117 
も 1213 1523 72 119 
さ 1219 3266 95 124 
の 259 2230 68 125 
の 1184 2423 169 125 
世 849 2236 163 127 
細 1144 1212 200 128 
そ 316 3287 57 133 
人 217 2044 183 135 
け 277 2974 112 137 
れ 201 3423 181 137 
だ 243 2830 159 143 
強 1479 2034 163 145 
の 1497 1567 123 152 
た 1164 952 145 153 
て 552 1199 97 155 
俳 537 2095 176 155 
根 203 1439 184 156 
か 1188 2606 156 157 
諧 549 2328 156 159 
れ 1495 2784 168 159 
子 891 1255 100 164 
を 584 2546 117 164 
及 849 1588 151 164 
者 1192 2198 133 169 
ず 889 1763 103 171 
避 513 945 181 171 
正 539 1439 136 172 
文 192 2382 216 173 
ふ 1512 3371 147 176 
時 1465 1338 168 179 
思 1492 3175 159 180 
な 1191 2775 135 181 
め 593 3313 151 184 
浮 868 1982 155 184 
を 873 2400 145 192 
気 1504 1754 145 200 
職 208 1770 197 204 
老 1167 1687 152 208 
武 1184 1942 171 208 
楽 568 2762 133 209 
も 247 1159 116 212 
盲 253 2578 119 215 
若 1465 951 172 216 
自 1852 1736 104 219 
ど 220 928 139 229 
風 541 1619 147 236 
に 1521 2239 83 237 
裏 851 2608 169 237 
畳 905 3189 103 244 
息 876 937 123 244 
序 1816 2096 152 296 
し 629 2985 27 300 
し 1243 2942 39 313

Upvotes: 1

Related Questions