ஆசிரியர்: பரதன் தியாகலிங்கம், முத்து அண்ணாமலை
திருக்குறள் 1330 குறட்பாக்களை மாத்திரை பார்வையில் கணினிவழியாக இயல்மொழி ஆய்வு செய்தால் என்ன கிடைக்கும்? திருக்குறளை மாத்திரை மதிப்பின் வாயிலாக வரிசைப்படுத்திப் பார்த்தால் என்ன கிடைக்கும் ? ஏதேனும் புதிய புரிதல் உண்டாகிறதா? பார்க்கலாம் வாருங்கள்.
செய்முறை – அல்கோரிதம்
குறளின் மாத்திரை அளவு என்பது குறளின் உள்ள அனைத்து சீர்பிரிக்காத சொற்களின் தனி மாத்திரை அளவுகளின் சமன்பாடு என்று கொள்ளலாம். இது நமது ஆய்வின் முன்கூட்டிய புரிதல்.
முதலில் இதற்கு ஒரு தமிழில் உள்ள மாத்திரை விதிகளை கணிக்கும் சார்பு தேவைப்படுகிறது. இதனை open-tamil 0.97 தொகுப்பில் ‘tamil.utf8.total_maththirai’ என்ற நிரல்துண்டு வழுங்குகிறது. மேலும் குறட்பக்களை ‘kural.Thirukkural().get_kural_no()’ என்பதிலிருந்து பெரலாம். இரண்டினையும் சேர்த்து ஒரு சிரிய கோவ்சியன் வளையம் பொருத்தலுடன் இணைத்துப்பார்த்தால் இப்படி தெரிகிறது; இதன் மூல நிரல் kural_mathirai.py என்பதில் காணலாம்.
#!/usr/bin/env python3
# This Python file uses the following encoding: utf-8
from kural import Thirukkural
from tamil.utf8 import get_letters, get_tamil_words, total_maaththirai
from collections import Counter, OrderedDict
from pprint import pprint
import matplotlib.pyplot as plt
import matplotlib
import numpy as np
from scipy.optimize import curve_fit
# Define model function to be used to fit to the data above:
def gauss(x, *p):
A, mu, sigma = p
return A*np.exp(-(x-mu)**2/(2.*sigma**2))
def main():
eq = Counter()
eqd = {}
kural = Thirukkural()
for kural_no in range(1330):
kural_words = get_tamil_words(get_letters(kural.get_kural_no(kural_no+1).ta))
mathirai = sum([total_maaththirai(word) for word in kural_words])
if eq[mathirai] == 0:
eqd[mathirai] = [kural_no+1]
else:
eqd[mathirai].append(kural_no+1)
eq[mathirai] += 1
eq_sorted=OrderedDict(sorted(eq.items(),key=lambda x: x))
print("total = ",sum(eq.values()))
plt.scatter(eq_sorted.keys(),eq_sorted.values())
plt.ylabel(u'குறட்பாக்கள் எண்ணிக்கை',{'fontname':'Catamaran'})
plt.xlabel(u'மாத்திரை அளவு',{'fontname':'Catamaran'}) #Arial Unicode MS'})
# p0 is the initial guess for the fitting coefficients (A, mu and sigma above)
p0 = [75., 20., 5.]
coeff, var_matrix = curve_fit(gauss, list(eq_sorted.keys()), list(eq_sorted.values()), p0=p0)
# Get the fitted curve
hist_fit = gauss(list(eq_sorted.keys()), *coeff)
plt.plot(eq_sorted.keys(), hist_fit, label='Gaussian Fitted data (mean=%g, std=%g)'%(coeff[1],coeff[2]))
plt.title(r'குறள் மாத்திரை வரிசை (Gauss \mu=%g, \sigma=%g)'%(coeff[1],coeff[2]),{'fontname':'Catamaran'})
# Finally, lets get the fitting parameters, i.e. the mean and standard deviation:
print ('Fitted mean = ', coeff[1])
print('Fitted standard deviation = ', coeff[2])
plt.show()
if __name__ == "__main__":
main()
விடைகள்
- திருக்குறளில் உள்ள சராசரி குறட்பாவின் மாத்திரை அளவு μ ~ 29.5. இதன் மாற்றமளவு σ ~ 2.5
- மாத்திரை பார்வையில் திருக்குறள் ஏரக்குறைய கௌசியன் பரப்பை போல் அமைந்துள்ளது
- திருக்குறள் மாத்திரை வடிவிலும் கூட அழகிய சீர்மை கொண்டதாக மிகவும் கோர்வையுடன் அமைந்தது.
- குறைந்த அளவு நமாத்திரை நீளம் (23) கொண்ட குறளானவை குறள் எண்கள், 391, 426, 483, 786
“கற்க கசடறக் கற்பவை கற்றபின்
நிற்க அதற்குத் தக.” குறள் 391.
- அதிக அளவு நீளமான மாத்திரை (37.5) கொண்ட குறளானது குறள் வரிகள்,
”காணாதான் காட்டுவான் தான்காணான் காணாதான்
கண்டானாம் தான்கண்ட வாறு.” குறள் 849.
மத்திரை அளவு | குறள் எண்ணிக்கை | குறள் எண்(கள்) |
23 | 4 | 391, 426, 483, 786 |
23.5 | 5 | 67, 77, 366, 637, 979 |
24 | 8 | 108, 485, 961, 965, 1042, 1048, 1277, 1304 |
24.5 | 7 | 304, 467, 602, 652, 1118, 1322, 1324 |
25 | 20 | 133, 193, 331, 360, 412, 477, 546, 559, 576, 592, 616, 771, 796, 846, 947, 1052, 1116, 1239, 1240, 1289 |
25.5 | 29 | 96, 339, 347, 350, 373, 400, 405, 439, 444, 569, 625, 669, 742, 764, 841, 937, 944, 978, 980, 1045, 1072, 1085, 1102, 1108, 1176, 1203, 1258, 1318, 1329 |
26 | 37 | 1, 28, 40, 90, 152, 229, 308, 314, 340, 454, 466, 480, 488, 594, 622, 639, 666, 668, 687, 692, 715, 774, 824, 847, 856, 934, 964, 975, 988, 1008, 1028, 1168, 1238, 1242, 1256, 1279, 1309 |
26.5 | 46 | 45, 54, 107, 168, 175, 196, 236, 296, 364, 451, 484, 516, 518, 531, 540, 571, 572, 598, 608, 611, 623, 628, 700, 706, 708, 738, 769, 838, 854, 877, 935, 954, 1010, 1066, 1071, 1131, 1132, 1134, 1222, 1224, 1227, 1229, 1232, 1233, 1296, 1302 |
27 | 73 | 80, 105, 109, 119, 120, 121, 172, 173, 174, 202, 224, 231, 283, 284, 292, 321, 337, 341, 349, 374, 380, 399, 411, 428, 429, 438, 447, 489, 505, 508, 512, 520, 552, 562, 570, 578, 599, 604, 651, 654, 661, 693, 698, 729, 747, 770, 772, 778, 790, 803, 805, 807, 817, 818, 822, 832, 851, 863, 887, 889, 963, 994, 1019, 1041, 1069, 1107, 1120, 1122, 1159, 1173, 1300, 1321, 1326 |
27.5 | 88 | 21, 34, 39, 64, 73, 87, 95, 98, 111, 115, 124, 131, 140, 157, 205, 207, 208, 210, 215, 239, 261, 270, 272, 280, 293, 309, 315, 336, 388, 394, 419, 431, 457, 465, 468, 469, 482, 491, 494, 495, 542, 543, 545, 554, 558, 574, 575, 581, 629, 653, 657, 679, 690, 705, 739, 759, 788, 811, 821, 823, 835, 876, 878, 882, 883, 904, 918, 949, 1004, 1023, 1039, 1063, 1091, 1105, 1109, 1117, 1138, 1144, 1156, 1165, 1166, 1226, 1257, 1266, 1273, 1281, 1283, 1301 |
28 | 104 | 13, 14, 60, 63, 75, 85, 89, 101, 103, 123, 145, 158, 167, 186, 191, 195, 213, 218, 230, 234, 302, 327, 369, 408, 410, 416, 425, 434, 463, 464, 472, 475, 478, 500, 504, 521, 522, 535, 549, 563, 580, 595, 596, 609, 618, 620, 621, 636, 664, 677, 703, 741, 748, 752, 767, 793, 797, 802, 816, 844, 873, 880, 884, 917, 925, 943, 984, 1003, 1011, 1013, 1031, 1040, 1043, 1051, 1080, 1086, 1088, 1092, 1096, 1099, 1100, 1114, 1135, 1137, 1141, 1146, 1153, 1157, 1177, 1178, 1184, 1199, 1201, 1208, 1210, 1216, 1221, 1259, 1264, 1295, 1306, 1307, 1327, 1330 |
28.5 | 95 | 29, 68, 102, 104, 112, 114, 116, 132, 137, 153, 203, 223, 227, 238, 244, 255, 265, 267, 268, 274, 277, 295, 303, 316, 333, 342, 372, 381, 385, 392, 393, 398, 401, 403, 407, 437, 493, 506, 511, 517, 553, 577, 591, 601, 605, 631, 655, 671, 674, 696, 710, 723, 727, 740, 744, 749, 757, 763, 781, 809, 819, 829, 839, 852, 871, 941, 986, 996, 1025, 1050, 1061, 1062, 1073, 1093, 1098, 1119, 1142, 1152, 1164, 1170, 1196, 1209, 1213, 1223, 1249, 1250, 1268, 1280, 1287, 1290, 1298, 1308, 1310, 1315, 1328 |
29 | 91 | 23, 26, 59, 76, 99, 113, 169, 181, 184, 197, 214, 233, 237, 254, 262, 264, 289, 313, 329, 334, 335, 338, 384, 427, 503, 539, 544, 547, 588, 590, 597, 607, 619, 630, 634, 638, 672, 707, 709, 712, 728, 754, 779, 785, 787, 791, 810, 812, 813, 826, 830, 837, 848, 853, 879, 888, 898, 905, 920, 942, 955, 971, 1014, 1021, 1034, 1068, 1084, 1089, 1110, 1121, 1126, 1139, 1143, 1147, 1149, 1151, 1172, 1193, 1200, 1211, 1231, 1237, 1245, 1247, 1251, 1253, 1271, 1276, 1292, 1299, 1305 |
29.5 | 106 | 9, 33, 53, 55, 61, 66, 71, 79, 100, 136, 150, 154, 171, 177, 182, 192, 216, 226, 259, 279, 288, 290, 306, 310, 323, 344, 352, 363, 371, 375, 376, 377, 378, 404, 414, 418, 440, 448, 449, 455, 486, 497, 501, 527, 532, 585, 589, 593, 603, 641, 644, 650, 688, 697, 704, 726, 731, 734, 736, 743, 746, 751, 761, 765, 782, 801, 814, 815, 831, 836, 842, 850, 870, 872, 899, 922, 933, 945, 953, 958, 970, 974, 982, 997, 1000, 1038, 1053, 1065, 1067, 1095, 1111, 1113, 1128, 1161, 1171, 1219, 1228, 1234, 1235, 1236, 1244, 1252, 1254, 1261, 1284, 1297 |
30 | 116 | 19, 22, 48, 49, 57, 78, 97, 117, 122, 125, 129, 142, 151, 178, 180, 201, 217, 220, 241, 245, 250, 257, 260, 269, 273, 276, 286, 300, 332, 348, 353, 362, 365, 370, 420, 421, 432, 435, 436, 443, 470, 474, 479, 490, 498, 499, 507, 509, 524, 529, 534, 556, 565, 568, 610, 613, 626, 633, 640, 647, 659, 663, 676, 684, 714, 725, 750, 775, 776, 784, 798, 799, 800, 828, 864, 869, 885, 886, 890, 891, 892, 893, 902, 907, 916, 946, 948, 951, 962, 999, 1015, 1016, 1044, 1047, 1049, 1055, 1056, 1074, 1076, 1082, 1124, 1125, 1127, 1155, 1175, 1179, 1180, 1183, 1204, 1207, 1217, 1230, 1243, 1263, 1282, 1319 |
30.5 | 85 | 10, 32, 58, 62, 83, 84, 88, 92, 139, 179, 200, 209, 235, 243, 251, 287, 291, 294, 297, 299, 320, 322, 346, 356, 367, 386, 396, 415, 430, 441, 442, 458, 459, 519, 525, 537, 557, 567, 624, 645, 656, 665, 678, 701, 717, 724, 773, 783, 789, 855, 859, 895, 906, 912, 915, 977, 992, 995, 1012, 1024, 1029, 1059, 1078, 1087, 1090, 1094, 1103, 1106, 1115, 1129, 1140, 1145, 1163, 1214, 1225, 1262, 1265, 1274, 1275, 1291, 1293, 1303, 1313, 1320, 1323 |
31 | 92 | 16, 17, 18, 30, 37, 46, 50, 70, 72, 74, 93, 106, 135, 138, 144, 146, 160, 161, 190, 198, 204, 211, 222, 307, 319, 351, 358, 382, 383, 390, 406, 422, 460, 471, 473, 496, 523, 528, 538, 555, 561, 566, 587, 600, 612, 615, 648, 670, 702, 716, 721, 737, 753, 760, 768, 795, 820, 843, 857, 862, 866, 874, 903, 909, 985, 987, 989, 991, 1018, 1020, 1030, 1037, 1054, 1060, 1077, 1123, 1130, 1136, 1154, 1158, 1162, 1169, 1185, 1188, 1189, 1198, 1206, 1218, 1260, 1278, 1288, 1314 |
31.5 | 70 | 3, 4, 11, 36, 41, 65, 69, 81, 110, 189, 242, 258, 263, 275, 278, 324, 354, 355, 359, 361, 379, 413, 417, 476, 481, 510, 536, 541, 573, 579, 586, 614, 617, 649, 658, 680, 694, 718, 722, 755, 766, 794, 804, 845, 858, 860, 867, 913, 914, 923, 926, 928, 936, 952, 956, 957, 976, 990, 998, 1022, 1026, 1027, 1033, 1035, 1075, 1104, 1167, 1182, 1248, 1255 |
32 | 59 | 12, 44, 52, 128, 143, 156, 164, 165, 185, 188, 228, 253, 298, 311, 312, 345, 357, 389, 395, 433, 445, 450, 513, 530, 560, 564, 606, 642, 673, 686, 711, 730, 732, 735, 758, 762, 777, 792, 825, 833, 840, 881, 919, 968, 1036, 1057, 1058, 1081, 1112, 1160, 1174, 1197, 1212, 1215, 1272, 1294, 1311, 1316, 1325 |
32.5 | 51 | 2, 20, 24, 31, 35, 47, 82, 86, 118, 147, 148, 159, 162, 176, 187, 271, 281, 282, 328, 446, 502, 514, 526, 533, 550, 582, 583, 662, 683, 699, 719, 720, 827, 861, 865, 908, 921, 927, 969, 981, 1097, 1150, 1181, 1186, 1187, 1191, 1194, 1195, 1241, 1286, 1312 |
33 | 37 | 8, 155, 170, 183, 206, 212, 225, 248, 249, 318, 325, 368, 402, 462, 492, 548, 627, 646, 675, 685, 756, 780, 808, 834, 911, 939, 1046, 1070, 1083, 1101, 1148, 1190, 1192, 1269, 1270, 1285, 1317 |
33.5 | 30 | 27, 194, 219, 221, 305, 317, 343, 456, 461, 632, 643, 667, 689, 806, 896, 900, 901, 930, 932, 959, 966, 972, 993, 1001, 1005, 1009, 1133, 1205, 1220, 1267 |
34 | 23 | 38, 51, 56, 126, 134, 166, 252, 266, 330, 453, 487, 660, 681, 682, 695, 897, 910, 938, 950, 960, 967, 1007, 1032 |
34.5 | 12 | 5, 42, 130, 149, 232, 387, 424, 733, 931, 983, 1006, 1079 |
35 | 16 | 91,94,141,199,246,247,423,452,635,691,875,924, 973,1002,1017,1064 |
35.5 | 9 | 25, 163, 285, 301, 515, 584, 868, 894, 929 |
36 | 4 | 7, 409, 713, 745 |
36.5 | 6 | 127, 240, 326, 551, 1202, 1246 |
37 | 2 | 15, 940 |
37.5 | 2 | 43, 397 |
38 | 2 | 6, 256 |
39.5 | 1 | 849 |