Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions data/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,11 @@ add_custom_target(lm-predict ALL DEPENDS "${LM_PREDICT_OUTPUT}")
install(FILES "${LM_OUTPUT}" RENAME zh_CN.lm DESTINATION "${LIBIME_INSTALL_LIBDATADIR}")
install(FILES "${LM_PREDICT_OUTPUT}" RENAME zh_CN.lm.predict DESTINATION "${LIBIME_INSTALL_LIBDATADIR}")

set(DICT_TAR "dict-20250327.tar.zst")
set(DICT_TAR "dict-20260430.tar.zst")
set(DICT_URL "https://download.fcitx-im.org/data/${DICT_TAR}")

fcitx5_download(dict-download ${DICT_URL} ${DICT_TAR}
7ca6be4754c0d4c27ba7702c0dce651659bd2ca1faa5cbf2848d81a0053c8c13)
3edc008d90fcd61b9967b9e590f396189d7a00fa74c45ecde0d9850a0fdd6241)
fcitx5_extract(dict-extract ${DICT_TAR} DEPENDS dict-download
OUTPUT dict_sc.txt dict_extb.txt)

Expand Down
129 changes: 95 additions & 34 deletions src/libime/pinyin/pinyindata.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -25,40 +25,49 @@ const std::vector<bool> &getEncodedInitialFinal() {
static const auto encodedInitialFinal = []() {
std::vector<bool> a;
const std::unordered_set<int16_t> encodedInitialFinalSet = {
660, 241, 384, 481, 388, 409, 415, 326, 497, 425, 327, 329, 220,
331, 55, 332, 336, 350, 352, 253, 43, 255, 799, 256, 417, 257,
272, 268, 567, 269, 353, 224, 264, 144, 36, 448, 277, 271, 217,
283, 107, 72, 73, 74, 75, 78, 79, 533, 450, 275, 254, 115,
80, 85, 90, 182, 583, 360, 87, 91, 237, 330, 95, 77, 410,
605, 221, 10, 727, 222, 542, 335, 862, 234, 236, 232, 231, 196,
785, 233, 347, 239, 245, 247, 158, 838, 840, 733, 38, 652, 76,
44, 619, 162, 328, 228, 18, 49, 54, 51, 218, 37, 52, 57,
46, 447, 198, 424, 449, 460, 455, 251, 465, 461, 614, 615, 160,
390, 616, 413, 532, 775, 416, 7, 802, 267, 349, 484, 367, 648,
620, 798, 756, 262, 589, 485, 280, 548, 419, 749, 386, 451, 411,
649, 759, 496, 564, 625, 656, 59, 219, 777, 508, 201, 490, 227,
659, 445, 487, 745, 606, 793, 209, 676, 270, 324, 312, 768, 348,
795, 184, 767, 482, 834, 314, 412, 512, 654, 454, 815, 639, 223,
603, 761, 244, 385, 88, 675, 486, 723, 289, 637, 779, 517, 292,
651, 6, 452, 527, 183, 784, 661, 325, 155, 835, 429, 769, 89,
207, 789, 483, 653, 195, 724, 489, 229, 551, 531, 576, 171, 792,
760, 260, 581, 208, 453, 623, 677, 530, 266, 418, 650, 2, 515,
516, 351, 510, 509, 265, 671, 501, 281, 504, 235, 636, 655, 534,
640, 528, 186, 511, 641, 263, 371, 582, 387, 553, 721, 588, 673,
506, 541, 203, 192, 40, 191, 617, 193, 758, 188, 794, 216, 185,
248, 258, 584, 748, 505, 361, 725, 766, 488, 48, 82, 93, 414,
149, 491, 181, 284, 180, 577, 600, 747, 159, 205, 743, 732, 731,
13, 800, 836, 601, 42, 728, 604, 579, 84, 16, 602, 599, 580,
354, 252, 711, 722, 39, 720, 389, 647, 624, 578, 507, 273, 635,
529, 446, 383, 317, 372, 368, 366, 365, 364, 566, 363, 362, 313,
315, 685, 318, 316, 3, 311, 300, 299, 296, 295, 294, 543, 293,
291, 290, 288, 15, 131, 120, 118, 124, 156, 116, 114, 111, 110,
108, 837, 833, 169, 173, 172, 167, 161, 165, 157, 152, 151, 150,
687, 148, 147, 146, 145, 709, 713, 4, 712, 707, 696, 695, 697,
565, 569, 570, 568, 563, 552, 547, 545, 544, 540, 692, 691, 689,
688, 686, 684, 23, 21, 19, 8, 1, 0, 832, 831, 830, 829,
828, 230, 20, 163, 803, 11};
a.resize(900);
560, 1067, 561, 569, 521, 581, 584, 1430, 586, 588, 435,
764, 455, 447, 452, 457, 438, 465, 1465, 466, 159, 373,
126, 626, 874, 129, 137, 142, 140, 139, 143, 507, 145,
339, 141, 134, 498, 128, 375, 147, 1182, 132, 376, 378,
379, 760, 1460, 1201, 1265, 392, 131, 391, 386, 19, 400,
390, 389, 385, 401, 403, 374, 62, 63, 66, 64, 1479,
393, 388, 70, 446, 565, 75, 404, 80, 1436, 1120, 439,
436, 621, 1015, 78, 328, 1252, 77, 960, 587, 81, 83,
85, 895, 835, 757, 1387, 759, 763, 766, 1434, 767, 1466,
772, 450, 127, 1253, 520, 773, 1057, 628, 372, 1116, 1306,
259, 1143, 777, 1059, 1061, 1062, 1066, 442, 1077, 1082, 1467,
1058, 459, 562, 189, 645, 941, 649, 1081, 1251, 894, 1366,
827, 1083, 1079, 1240, 444, 1242, 125, 1244, 21, 136, 823,
453, 643, 898, 758, 893, 1144, 765, 267, 1243, 1307, 1005,
1321, 407, 266, 311, 65, 992, 839, 264, 701, 1123, 192,
1056, 829, 1313, 1374, 996, 828, 820, 1119, 72, 337, 1325,
1330, 935, 1432, 582, 822, 559, 1335, 263, 1438, 454, 1145,
1304, 999, 1305, 387, 326, 1122, 1367, 397, 1004, 434, 897,
1129, 1139, 1128, 1020, 437, 316, 1372, 868, 273, 1241, 879,
312, 0, 1141, 997, 1431, 1365, 377, 896, 993, 1302, 704,
68, 566, 1315, 1248, 1364, 583, 1127, 252, 451, 881, 74,
1482, 130, 265, 440, 892, 891, 314, 875, 880, 1470, 463,
445, 310, 333, 871, 1331, 1323, 1118, 869, 870, 20, 124,
585, 1314, 873, 1065, 384, 994, 1268, 501, 1267, 1481, 1117,
335, 1312, 69, 18, 198, 570, 821, 1181, 931, 186, 695,
824, 1018, 325, 1178, 761, 1022, 834, 277, 1371, 1370, 620,
448, 1078, 1017, 462, 338, 1000, 1016, 825, 331, 321, 383,
254, 563, 395, 1019, 872, 323, 380, 953, 322, 1179, 819,
959, 315, 526, 318, 261, 696, 313, 1263, 564, 1269, 504,
1121, 1469, 876, 496, 449, 1473, 826, 762, 1021, 1375, 1124,
523, 622, 998, 1089, 1183, 271, 995, 1247, 1245, 558, 1477,
711, 648, 715, 710, 942, 705, 1475, 699, 503, 703, 697,
698, 702, 269, 700, 15, 624, 647, 1429, 627, 650, 646,
16, 644, 632, 631, 625, 623, 525, 248, 524, 522, 519,
508, 502, 500, 499, 497, 1207, 209, 196, 1486, 2, 202,
194, 193, 188, 1435, 6, 1433, 275, 276, 260, 262, 256,
250, 255, 253, 8, 251, 249, 1203, 1205, 1186, 1206, 1190,
1480, 1189, 1191, 955, 957, 958, 956, 10, 954, 1468, 943,
938, 937, 934, 933, 932, 930, 1185, 1180, 23, 11, 13,
7, 4, 3, 1, 1428, 1427, 1426, 1462, 1463, 1464, 1471,
1472, 1474, 1476, 1478, 1483, 1484, 1485, 1487,
};
a.resize(1500);
std::fill(a.begin(), a.end(), false);
for (auto i : encodedInitialFinalSet) {
a[i] = true;
Expand Down Expand Up @@ -998,6 +1007,58 @@ const PinyinMap &getPinyinMap() {
{"an", PinyinInitial::Zero, PinyinFinal::AN, PinyinFuzzyFlag::None},
{"ai", PinyinInitial::Zero, PinyinFinal::AI, PinyinFuzzyFlag::None},
{"a", PinyinInitial::Zero, PinyinFinal::A, PinyinFuzzyFlag::None},
{"A", PinyinInitial::Zero, PinyinFinal::Letter_A,
PinyinFuzzyFlag::None},
{"B", PinyinInitial::Zero, PinyinFinal::Letter_B,
PinyinFuzzyFlag::None},
{"C", PinyinInitial::Zero, PinyinFinal::Letter_C,
PinyinFuzzyFlag::None},
{"D", PinyinInitial::Zero, PinyinFinal::Letter_D,
PinyinFuzzyFlag::None},
{"E", PinyinInitial::Zero, PinyinFinal::Letter_E,
PinyinFuzzyFlag::None},
{"F", PinyinInitial::Zero, PinyinFinal::Letter_F,
PinyinFuzzyFlag::None},
{"G", PinyinInitial::Zero, PinyinFinal::Letter_G,
PinyinFuzzyFlag::None},
{"H", PinyinInitial::Zero, PinyinFinal::Letter_H,
PinyinFuzzyFlag::None},
{"I", PinyinInitial::Zero, PinyinFinal::Letter_I,
PinyinFuzzyFlag::None},
{"J", PinyinInitial::Zero, PinyinFinal::Letter_J,
PinyinFuzzyFlag::None},
{"K", PinyinInitial::Zero, PinyinFinal::Letter_K,
PinyinFuzzyFlag::None},
{"L", PinyinInitial::Zero, PinyinFinal::Letter_L,
PinyinFuzzyFlag::None},
{"M", PinyinInitial::Zero, PinyinFinal::Letter_M,
PinyinFuzzyFlag::None},
{"N", PinyinInitial::Zero, PinyinFinal::Letter_N,
PinyinFuzzyFlag::None},
{"O", PinyinInitial::Zero, PinyinFinal::Letter_O,
PinyinFuzzyFlag::None},
{"P", PinyinInitial::Zero, PinyinFinal::Letter_P,
PinyinFuzzyFlag::None},
{"Q", PinyinInitial::Zero, PinyinFinal::Letter_Q,
PinyinFuzzyFlag::None},
{"R", PinyinInitial::Zero, PinyinFinal::Letter_R,
PinyinFuzzyFlag::None},
{"S", PinyinInitial::Zero, PinyinFinal::Letter_S,
PinyinFuzzyFlag::None},
{"T", PinyinInitial::Zero, PinyinFinal::Letter_T,
PinyinFuzzyFlag::None},
{"U", PinyinInitial::Zero, PinyinFinal::Letter_U,
PinyinFuzzyFlag::None},
{"V", PinyinInitial::Zero, PinyinFinal::Letter_V,
PinyinFuzzyFlag::None},
{"W", PinyinInitial::Zero, PinyinFinal::Letter_W,
PinyinFuzzyFlag::None},
{"X", PinyinInitial::Zero, PinyinFinal::Letter_X,
PinyinFuzzyFlag::None},
{"Y", PinyinInitial::Zero, PinyinFinal::Letter_Y,
PinyinFuzzyFlag::None},
{"Z", PinyinInitial::Zero, PinyinFinal::Letter_Z,
PinyinFuzzyFlag::None},
};
return pinyinMap;
}
Expand Down
Loading
Loading