summaryrefslogtreecommitdiff
path: root/DIARY
blob: 2b8cfd2d3b2682b2465f133de749041ec70bf7c8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
--(2007/05/12)(yusuke)
単語自体のような出現頻度の低い素性を扱う方法を検討中

--(2007/05/09)(yusuke)
例文から変換結果を得てパラメータを更新すると、別の変換結果が得られる
これを繰り返すことで様々な誤変換を得ることができる。
->make update_params2を使う


--(2007/04/25)(yusuke)
「運転席|側」のように接尾辞は別文節にする

--(2007/02/28)(yusuke)
「忙し」(せわし)のように形容詞の語幹だけ使うことがまれにある
anthy-8700 released
recordの単語をtextdicに移すコードを削除

--(2007/02/23)(yusuke)
頻度関係の誤変換が目立つようになってきた

--(2007/01/28)(yusuke)
hmmじゃなくなったので、変数名等の変更中。->done
次はiisを変更する->done

--(2007/01/27)(yusuke)
utf8化は完了
MEMMは止めて経験的確率をハードコードすることにした
当面の間はコーパスの量を増やすことで性能向上を図る
例文を増やすと自然なコードで性能が稼げる
素性を増やすときは正誤の識別に貢献しているかで順位を付け,高い物のみを用いる
文節の素性,連接の素性を分離して複数の分布から確率を計算するという手も考えられる

--(2006/11/17)(yusuke)
10と10では接尾辞の付き方が違う←修正済み

--(2006/11/5)(yusuke)
anthy-8700は下記のコードを併存させる
 *PRIVATEDICセクション(次のリリースで消すかも)
 *texttrie EUC-JPセクション
 *texttrie UTF8セクション
その後で、EUCセクションからUTF8セクションへ単語を
移動するコードを追加する
現時点ではEUC-JPモードで登録された単語はEUC-JPのセクションに
登録される


--(2006/11/4)(yusuke)
個人辞書のストレージをEUC-JPとUTF8の両方を使うようにした

--(2006/10/22)(yusuke)
コーパスを増やしながらチューニングすると、コーパスの量に応じた
いろいろな現象が発生してる。

--(2006/10/21)(yusuke)
last-recordのUTF8化
既存のEUCのファイルがあれば、そのまま使う
なければ、.utf8というsuffixを付けて新規作成

--(2006/09/29)(yusuke)
文節X, Yと連続する確率は
 P = 1/z * exp (f_c・λ)
ここでcはXのクラス
λはXの付属語とYのクラスを含むベクトル

--(2006/09/16)(yusuke)
文節X, Yと連続する確率は
 P = 1/z * exp (f_c・λ_x)
ここでcはYのクラス

--(2006/04/14)(yusuke)
久々の更新
テスト機構をつけた

--(2004/07/22)(yusuke)
recordを全部読むと遅いので、必要な時だけ読むsectionも作ろうと思う

--(2004/06/16)(yusuke)
*名詞化動詞の後続に来るのは名詞のあと+名詞35のあと

--(2004/05/30)(yusuke)
「(」「)」などの一文字で単独の文節になって欲しいものに
新しい品詞を割り振る


--(2004/04/26)(yusuke)
履歴による候補の順序変更が動いた、要チューニング
anthy-azik.elを追加したが、ロードが遅い

--(2004/04/18)(yusuke)
履歴による候補の順序変更

--(2004/04/13)(yusuke)
anthy.elでauto-fill-modeが効かないらしい->修正できた

--(2004/03/17)(yusuke)
文節の学習は、語幹+文節クラスをベースにしよう

--(2004/03/09)(yusuke)
「ありませんし」みたいなのは、文末フラグが欲しい

--(2004/02/11)(yusuke)
単語の関係はhashを引いてから検索を実際に行う。これをdiclibのレイヤで行う。

--(2004/02/07)(yusuke)
用例辞書を復活させた

--(12/26)(yusuke)
修飾語は被修飾語の前の方を修飾する場合と後ろを修飾する場合がありそうな気がする

--(12/16)(yusuke)
「みぶんるい」の一つめの文節を「み」まで縮めると何故か「未|文|類」になる

--(11/9)(yusuke)
ユニコード化した時のエンコーディング
辞書ソース EUC-JP
辞書ファイル UTF-8
xchar UCS4
cstr EUC-JP

--(10/16)(yusuke)
サ変名詞の接尾辞を新設

--(9/21)(yusuke)
上一段活用の動詞の語幹 + "" = 連用形
というように0文字のパートが存在する 

--(9/17)(yusuke)
#RTは処理できてるかな

--(9/2)(yusuke)
metawordの結合のためには、文節の最後の要素の品詞を知らないといけない。
ユニコード化
 内部 UTF-32
 外部 とりあえずEUCのまま
 辞書エンコーディング UTF16

--(8/7)(yusuke)
付属語グラフの終端に属性を付ける。
未然、連用、終止、連体、仮定、命令、主格、所有格、、

--(8/1)(yusuke)
活用はconjugateじゃなくてinflectionらしい

--(7/31)(yusuke)
anthy_get_nth_dic_ent_strでコピーした
文字列を返す必要があるのか要検討

--(7/26)(yusuke)
word_list->part[].{from,len}が
それぞれまともか要チェック

--(6/30)(yusuke)
struct_ratioを文節の評価に入れたい

--(6/28)(yusuke)
区切りの検索を幅優先に変更した

--(6/21)(yusuke)
付属語の辞書を自作しようかしら
活用表の先頭のマッチングを書き換えないと
「サ変未然形」が「サ変」にもマッチする

--(6/15)(yusuke)
「する」の扱いがまずい


--(6/10)(yusuke)
何故か残っていたmkanthydic/struct.txtを消した
候補を一個ずつ進めるモードの実装は少しずつ進めている


--(6/7)(yusuke)
dic_ent中に品詞の名前を追加したが、wtypeの
中にいれるのも良いかもしれない

--(6/2)(yusuke)
idからdic_entを得るためのhashを作った。

--(6/1)(yusuke)
用例辞書のデザインのメモ
 単語のid,読みのidを作成する(読みについては未実装)
id間の関係には複数の種類がある。たとえば、
 近所に出現した、主語述語の関係で使用されるなど。
anthy-isearch.elの作成を開始
todo: seq_nodeをseq_entにマージしたので、関数名などを
見直す

--(5/10)(yusuke)
anthy.elでカナモード用のAPIを追加

--(5/2)(yusuke)
動詞の名詞化を正しく処理できていない、語幹のみで足している
直した

--(5/1)(yusuke)
セーブされた用例データは(読み、単語、品詞)の形式をとる
idからそれらを求める関数を書かないといけない

--(4/28)(yusuke)
ochaire学習の文節数を2から3に上げた

--(4/27)(yusuke)
用例の学習の数の上限を付ける、セーブする

--(4/21)(yusuke)
単語の内部表現から外部表現への変換はできそう。
逆を考えないと、、ochaire学習は付属語のパターンの
学習に縮退させようと思うです。
「背中に書く」「背中を掻く」とかむずかしいなあ

--(4/20)(yusuke)
用例辞書が候補交換に負けるのをなんとかしないと、、

--(4/17)(yusuke)
用例辞書が引けるようになった

--(4/12)(yusuke)
sdicからfile_dicへの名前変更中
お茶入れ学習の端の文節の処理をなんとかしたい

--(4/7)(yusuke)
カタカナ候補を先頭か最後にもってくるようにした
qで最後の候補を選べるようにしようと思う

--(4/5)(yusuke)
用例辞書を作るためにコードの整理
UCS4対応するためには、
辞書、内部、外部のエンコーディングを正しく扱わないと
いけない。とりあえず、内部だけUCS4ができるか検討する。

--(4/1)(yusuke)
X5rのrを忘れてた。活用形とかの情報をそのままにした名詞を追加。

--(3/19)(yusuke)
「満てるとき」>「見てるとき」というのは接続の強さの設定がまずい。
お茶入れ学習ききすぎ

--(3/4)(yusuke)
カ変、サ変は直した
ドキュメントも直さないと、、

--(3/2)(yusuke)
カ変、サ変は壊れてます。
seginfo中の情報が活用語尾を含んでいません

--(3/1)(yusuke)
K2T15 done
Cannaを読んで、活用語尾の処理を付属語グラフに回しても
よさそうな気がしたが、活用形の情報を付属語グラフに埋めるのが
面倒だとも思った。
未然(MZ)、連用(RY)、終止(SS)、連体(RT)、仮定(KT)、命令(MR)、語幹(GK)
形容詞はなんとかなったけど、compose.cに
    anthy_wtype_set_ct(&ce->si->word_info[n].wt, CT_NONE);がいる
理由をあきらかにすること。
活用語尾を付属語送りにしたせいで、struct_ratioがめいっぱい下がった
「動きやすい」とかにするとcoreの品詞が動詞で、活用形が終止形になってしまう。

--(2/27)(yusuke)
Cannaの付属語グラフは
 main.code 品詞の名前の定義のみ
 gram.code 付属語のクラスわけ
 gram.goto 遷移の定義
マクロの定義が興味深い
「@〜詞語幹」というノードをそのうち作ろう

JSmonoとK2T16、K2T35をコピーしてきた とりあえず [-]演算子は無視
この取り込み作業は当分続けるつもり

数詞を数詞と認識できてない

--(2/25)(yusuke)
接続助詞の整理

--(2/20)(yusuke)
static関数のプロトタイプをいちいち先頭に書くのはやめた src-util/*.c以外

--(2/15)(yusuke)
2chの78の二つめの要望を実現すべくanthy.elの候補レイアウトを簡単化

--(2/12)(yusuke)
辞書生成の時に一度全部メモリに読むようにした。

--(1/28)(yusuke)
辞書中に同じ単語は一ヶ所しか現れないことを保証するようにした。

--(1/25)(yusuke)
anthy_ddic_push_back_dic_ent()に単語のidを付加した

--(1/20)(yusuke)
微妙なパラメータの調整のみ

--(12/30)(yusuke)
anthy modeでの候補選択をclean up中
(参照: anthyスレ78番)
#OKX (動詞丁寧表現語幹)を #T30: 名詞(する,語幹,格助接続)
と同じにした。

--(12/8)(yusuke)
姓と名をマージするのが変 src-splitter/metaword.c::try_combine_name()

--(11/29)(yusuke)
Doxygenを導入した。anthy/ でdoxygenを実行するよろし

--(11/23)(yusuke)
候補の構造でスコアをいじるところで分母と分子をまちがえてたので直した

--(11/18)(yusuke)
括弧の開きを後ろの文節に付けたい

--(11/16)(yusuke)
文節の最後の文字が助詞ならば,そこまでをカタカナにした候補を
生成するようにした.次は評価をいじる
「書いて」が出ない.付属語の長さでstruct_rationを引き過ぎ(直した)

--(11/9)(yusuke)
ヤマケンさんから頂いたメモリリーク修正のパッチを当てた
2chで頂いたローマ字にバックスペースでアルファベットに分割する
パッチをあてたが,メモリリークがあるっぽい.(直した)

--(11/7)(yusuke)
anthy.el のバッファごとのコンテキスト分離をやった
minibufferが絡むと依然バグる

--(11/6)(yusuke)
2chで指摘された問題の一部に対応
あとはanthyinputのclean upが必要
input.hの構造体を見せないようにするためのAPIを足した

--(11/2)(yusuke)
主語(subj)
述語(pred)
修飾語(mod)
独立語(dep)
接続語(conn)

--(10/23)(yusuke)
> #KJ >
などのエントリを追加しているところ
「かお」で顔文字も欲しい

--(10/22)(yusuke)
文の成分は主語,述語,修飾語,独立語,接続語というモデルで
行こうかしら
SKKの辞書を取り込めるようにしたい

--(10/3)(yusuke)
自立語のみの学習を追加した.TODO(Done 10/22)
*文節ごとの学習とのコードとの統合をする
*動作チェック

--(9/28)(yusuke)
スコアがオーバーフローしてた
intで256を掛けることがあるので,よくチェックすべし.

--(9/21)(yusuke)
candswapで候補を入れ換えるのは変で
旧候補は2位に落とすだけで十分直した

--(9/19)(yusuke)
〜する,〜おく,〜べき

--(9/14)(yusuke)
seg_infoのstruct_ratioとbase_scoreをそのうち統合したい

--(9/8)(yusuke)
文節の長さをバランスするために,
(Σ(文節長^2))/文節数をスコアから引くようにした
負の評価値を割ると大きくなるという恥ずかしいバグ


--(8/22)(yusuke)
右に隣接するextentの様子でそのextentも変わるようにしようと思った
cannadicから消えてた #D2KYを復活させて 「動き易い」などの変換を復活

--(8/4)(yusuke)
右から検索に変わる方法が難しい

--(7/28)(yusuke)
「生み出す華麗な」が「生み出すか礼な」で後ろから
マッチングすればよいでしょうけど件の特許が邪魔.
でけた.検索時に文の右端か2つめ以降のextentは加点することにした.
しかし,右端に句読点などがあると困る.


--(7/25)(yusuke)
単語登録のバグを修正
品詞の名前に#をつけるのを忘れていた
recordを読んだときに個人辞書を更新しないといけない

--(7/15)(yusuke)
付属語グラフに属性を追加する準備開始

--(7/13)(yusuke)
charをsignedだと思ってた.はずかしいなぁ

--(7/11)(yusuke)
include/segclass.h を追加

--(6/28)(yusuke)
anthyinputのドキュメントupdateしないといけない

--(6/26)(yusuke)
splitterで文節(seginfo)に属性をあたえて,relationで
前後をみながらソートするって感じ

--(6/15)(yusuke)
「放送中し」「〜し」で生成してるけど、「放送中」は
「する名詞」ではないので減点を十分にしとかんといかん

--(6/12)(yusuke)
名詞に接頭辞をつけないようにした。
次は(a)接頭辞だけで文節になるようにする、
(b)接頭辞を含むmetawordを作る
「いれたて」が変換できないregression


--(6/11)(yusuke)
よくわからん文節は、全部カタカナの候補を
先頭に出すようにした。次にはこれを学習できるようにするかも

--(6/8)(yusuke)
無理矢理くさい候補は減点して、カタカナのみの名詞にしよう

--(6/4)(yusuke)
metawordの生成されていない一文字extentを生成するようにして
ダミーのmetawordをそこでは使わないようにした.

--(6/3)(yusuke)
extentが片付いたら,接頭辞,接尾辞を整理しようと思う

--(6/1)(yusuke)
付属語グラフの強化をやった

--(5/30)(yusuke)
extentへの移行はとりあえずできたかな
NF_NAME = NF_FAMNAME | NF_FSTNAMEはまずい
名前っぽいシーケンスを二つ結合してしまう

--(5/28)(yusuke)
一文字の文節のスコアを下げた
後ろの文節のスコアをあげようと思った
右から検索するというのは例の特許がかかってるので
やめようと思う.
「いまの^にnほんが」を「いまのに」で文節を構成して
しまうという問題がある

--(5/25)(yusuke)
extentへの変更を実行中

--(5/23)(yusuke)
splitterにmetawordよりも上のレイヤのextentを
導入することを決意.失敗したらまた全部除去する.

--(5/22)(yusuke)
MAP_CLEARを2回するとcoreはく
直した

--(5/21)(yusuke)
カナ入力のためにLHSが複数文字のときに
設定できるようにしつつある.

--(5/19)(yusuke)2周年!
カナ入力をしようとすると最初のローマ字の設定を
クリアしないといけないのが面倒.

--(5/18)(yusuke)
rkconvの設定を改善する
付属語グラフの改善
接頭辞、接尾辞の学習
ILIBのドキュメントの改善
rkconv.c::rk_sort_rule()を始めた

--(5/16)(yusuke)
anthy_input_edit_config() を
 anthy_input_edit_rk_symbol_config()
 anthy_input_edit_rk_edit_config()
に分割した


--(5/15)(yusuke)
src-splitter/wordborder.h のword_info_cache中の
meta_word,word_listをポインタの配列にした.

--(5/12)(yusuke)
anthy_input_free_config()でconfigをリファレンスカウント方式にする?

--(5/11)(yusuke)
static void *ここに改行をいれて回る日々*hoge()
テストプログラムが誤変換を学習するので困るが,
直すのは手間っぽい.
テスト用の匿名パーソナリティを作らんとダメっぽいです.
匿名パーソナリティを""にして,デフォルトを"default"に
することを検討中

--(5/9)(yusuke)
lock_record()でロックしてたのでまずい
はやくflockに切替えるべし.きりかえた
ochaireのnegativeがおかしい

--(4/30)(yusuke)
testのプログラムをelispに変更しつつある
無理っぽいseginfoだけで候補を生成してしまった場合にはもっと短くて
適切なseginfoも探すようにすべし.

--(4/28)(yusuke)
anthy-agentをテスト環境でも動作できるようにコマンドラインオプションを
いくつか追加した.
「ー」を変換してスペース4回目に列挙モードになるのは変

--(4/21)(yusuke)
src-splitter/evalborder.c の検索で右端に到達したら
より深い検索に切替えるようにした

--(4/20)(yusuke)
anthy_get_ext_seq_ent_wtypeがいい加減過ぎ
自立語部の長さを取り出すとき,動詞は語幹だけで数えるか
「名詞する」の「する」まで数えるかどちらかにすべき.

--(4/14)(yusuke)
agent.cにコメントを追加

--(4/7)(yusuke)
未知付属語学習の追加中

--(3/29)(yusuke)
src-splitter/metaword.c::make_dummy_metawordのスコアの計算が適当

--(3/27)(yusuke)
#OKXの候補が出ない
anthy_commit_border()にseginfoが渡って来ない

--(3/24)(yusuke)
wtypecmpの返り値が変

--(3/21)(yusuke)
wl->conn_score, si->tail_biasを分母256の固定小数に変えた
si->tail_bias を si->tail_ratioに改名した

--(3/4)(yusuke)
「私達」を学習しない
お茶入れの評価を越える点数になっている?

--(2/26)(yusuke)
fprintf -> anthy_log に切替え中なので、メッセージ中の
"Anthy: "はもう要らない。不要なinclude <stdio.h>も消す

--(2/25)(yusuke)
「へんこうもと」の候補に「変更も」がでてくる
->昔ばぐったのを学習させたからでした

--(2/17)(yusuke)
付属語グラフによるバイアス(done)と
接頭辞接尾辞のバイアスを復活させる
必要がある。

--(2/16)(yusuke)
seg_infoをmetawordのレイヤに移動した
エラーなどをエラー出力にはくのはまずいので、出力するための機能が必要
src-main/personality.cを消した

--(2/15)(yusuke)
ネームスペースの汚染を避ける必要があるので徐々に改善していく予定

--(2/10)(yusuke)
今ごろallocatorにバグがあったにょ

--(2/7)(yusuke)
src-diclib/dic_personality.h を消す

--(2/5)(yusuke)
「ー」は名詞の付属語!

--(1/30)(yusuke)
*segexpand.hを消す

--(1/26)(yusuke)
commitの際にseg_infoを構成するのをやめないといけない
contextのreset時にseg_info_atorを作りなおす
無変換の候補にseg_infoがない

--(1/25)(yusuke)
*seg_info中の単語の情報を配列にする
*presonalityの除去はできた

--(1/24)(yusuke)
今日からDIARYには名前を書く
*ソースツリーの外でビルドするとbase.tとextra.tがくみこまれない。
*seg_infoに複雑な情報を持たせる -in progress
*personalityの除去 -in progress
*付属語の情報の更新(foosen)
*バージョンを返すAPI -planning

--(1/20)
「しょうがない」の候補に「しょうがい」がでる

--(1/15)
*src-diclib/record.c でfseekに失敗したらというところが
 あるがfseekは失敗しない(fixed 1/18)
*候補の交換が作動していないっぽい。ループのところを要チェック(fixed 1/18)


--(1/14)
辞書ライブラリでsdicから同じ品詞を付けた単語を取り出す時に
先に取り出された物には頻度を高くするようにして、
辞書中に先に出現した単語に若干高いスコアを与えるようにした
(いままででもqsortの実装によってその順序になっていた)
cannadic-0.93aへの更新

--(1/12)
cannadic-0.93への対応と辞書ディレクトリの移動

--(1/2)
xemacs対応?

--(1/1)
候補の評価のチューニング

--(12/27)
βフリーズ(これはその後に書かれた)

--(12/21)
mule対応のelispを統合

--(12/18)
ドキュメントの整理

--(12/17)
単語登録はできたが、登録した際にはキャッシュ中の
既存のエントリーをパージする必要がある

--(12/11)
メモリリークはほぼ解決、でも変換一回ごとに1K弱ほど
候補生成でリークしてる

--(12/10)
形容動詞の処理が怪しい
一日中メモリリークとの格闘
辞書ライブラリっぽい

--(12/9)
メモリリークの追跡
pageはリークしてないようだ

--(12/8)
「下さい」がでない
ど -> ° をなんとかする

--(12/1)
個人辞書に活用するエントリが入ってると厄介

--(11/30)
〜子(生成子)
両〜、〜こと、だろう、まで

--(11/29)
ソース中のドキュメント追加

--(11/26)
splitterでグローバル変数を一個消した

--(11/23)
record.cからsaveするときに'"'をescapeし忘れている
数字を全角/半角に変換できるようにした

--(11/18)
XCT_PARTのバグ取り、単漢字の修正

--(11/16)
長音、母音の小さいもの、促音 metaword生成時に含むようにした
濁点、そのたの小さいもの XCT_PARTをつくった
metaword生成を整理した
「あaaaaaaaaaaaaaaaaaaaaaaaaaあ」とか変換すると遅くなる
->get_seq_entが遅いand 呼び過ぎ
ext_entのソースコードを整理した

--(11/13)
「゛」などの処理を記述中
「゛」はその前までで候補生成するのはまずいが「ぁ」はOK
「痛ぁ」など。splitterとsegcompose両方で対応すべし。

--(11/7)
リリースワーク、リリースノートを書いたり

--(11/6)
ドキュメントの追加

--(11/2)
αリリースまでのクリティカルバグは
*ダブルクォートの処理
*候補選択画面

--(10/31)
'(' ')'のanthy-agentの対応がまずいような気がする。

--(10/29)
得(う、え)る「うらない」とかでてきてしまう。
「行きたい」が変換できない(直した)

--(10/26)
カ変動詞の処理をとりあえず実装した。

--(10/24)
elispでモードラインへの表示を追加した。
*カ変の対応と同時に外来語の「ー」の対応をやろう

--(10/23)
config.h

--(10/22)
全角の数字も数字になるようにした

--(10/21)
xchar APIを整理した

--(10/20)
anthy-confを etc に格納するようにした

--(10/18)
printf() -> fprintf(stderr,)

--(10/17)
開きかっこはMS-IMEにならって一つの文節にしようと思う
に"ゃあとのSync待ち

--(10/16)
*takによるMakefile.amの修正
*に"ゃあによるお茶いれパッチ
*kaoru君さんによるelispの修正
*agent.cの修正
など

--(10/14)
開きかっこがmetawordの左にあったら、それを含むmetawordを作るようにした
elispでanthy-minor-modeをbuffer localにした

--(10/13)
〜してる
帰る

--(10/12)
始めてのanthyの使用がanthy-agentの起動だった場合辞書ファイルを作成する
とかいった内容が標準出力にでてくるので対策をとらんといかん。
カーソルの色で状態がわかるようにしたい
「死ぬ」が変換できん?
文末のnをなんとかしたい
/ でバックスペースをおせない

--(10/11)
alignment of sections in dictionaly file.

--(10/10)
anthy.elにminibufferの対応を書いた

--(10/8)
emacs lispのコーディングを継続中です、変な入力にも対応できると思う。

--(10/6)
anthy-agentが使い物になってきた

--(10/5)
elispで[う゛]を変換すると点と分かれてしまうのがまずい

--(10/3)
変換前の候補をanthy_get_segmentで取り出せるようにした
ドキュメントやコミットの部分の整合性をとらんといかん。
emacs lispをすこし書いた

--(10/2)
agentのマージ第1弾、ここからemacs lispを書こう

--(10/1)
文節の伸縮の学習ができたっぽい。
もうすこし細い点を見直すべし

--(9/30)
splitterから文節の情報を取り出す際に自立語の
品詞の名前を取り出せるようにしつつある。

--(9/28)
splitter cacheを必ず作るようにした。
cacheじゃなくなったので名前を変えよう。

--(9/23)
文節を拡大するときに、文節が短かかった時の候補もでるようにしたいけど
文節の拡大が学習されて次回に長い文節が最初に出てきたときに
その候補が出せない。
学習機構は可逆にしよう。

--(9/22)
anthy_quit()を実装するためにメモリ確保をallocatorに移動中
終了時にメモリを解放するためには、allocatorモジュールが
用意するdestructorで一気に解放するのだが。
参照する先の情報が先に解放されてしまってからunref_Xとかやると
まずそう。
*メモリ以外の解放はdtorには書かない
*dtorの引数にメモリのみの解放であることを示す
*参照される側のデータのモジュールで不当な解放をハネる
*データを参照するモジュールのメモリは先に明示的に解放する(9/23)

--(9/19)
最初の分割時に出した隣接する文節が結合されてコミットされたら
それを学習すれば良いような気がした。

--(9/14)
副詞の分類を開始した mkanthydic/av.depword を追加
anthy.elのコーディングを進行中
ひらがな数字は A := (X千)?(X百)?(X十)?X? までにするか
B:= (A億)?(A万)?A? までかだけど、とりあえずAだけやってみよう。

--(9/12)
「書い易い」とか出てきてしまう。
ctab.h に CST_V_RENYOU_{TA,DA} を付けてなかった場所を直した
動詞連用形 -> 動詞連用形{5,D} に制約を強くした
「嗅い易い」ってなんだ?

--(9/11)
〜まくる、〜しまう は Cannadicでは対応されていない。
mkanthydic/extra.t の助詞、助動詞は消した
src-splitter/evalborder.c に境界の検索は移した
「動き易い」などが候補として出てくるようにした

--(9/9)
辞書のインデックスにEUCの2バイト文字とASCII文字を混在する
ようにしよう。辞書ライブラリ側での対応は終了

--(9/8)
「いれる」に「要れる」が出てくるのは変
辞書ファイルのindex中にでてくる文字の巻き戻しの数を
ASCII文字ではなく キャラクタコードの1-31を使うことにした。
か変、さ変が正しく処理できていない。
「する」は直した
候補の評価はどうしよう?

--(9/6)
候補生成を2系統にするのはできた

--(9/5)
ドキュメントを追加した

--(9/4)
metawordの生成数が多すぎるような気がする。
splitterからの情報の取得をword_listからではなく、
metawordからやるようにした。

--(9/3)
metawordでカバーされていない領域を埋める方法を検討中(とりあえず実装)
検索の際には同じところをカバーするmetawordでscoreの低い方は無視
することができるような気がする。(done 9/4)

--(9/2)
#OKX の 「御存知」に「御存知ない」と付くのはどういうパターンで
処理しよう。他の#OKXにはない。

--(9/1)
segcomposeから接続のスコアもsplitterから取ってくるようにした。
そのうちsplitter/metaword.c::make_unkseq_metaword()をもうすこし
賢くしたい。
動詞連用形 + 名詞化接尾語を処理できるようにした
「入れたてのお茶」は入力できる。
#OKXの対応がまだ
*候補交換のループ対策にバグがあるっぽい
*「する」の処理ができてない。

--(8/31)
dic_sessionの数を増やすのはちょっと面倒そうなので
遅延生成で逃げることにした。anthy_set_strでセッションを作り
anthy_{reset or release}_contextでセッションを解放するので
32個までの並列入力には耐えれる。
形容詞化接尾辞 形容動詞化接尾語 名詞化接尾語の対処ができるような気がする
record.cのsectionを解放する部分のコードをミスってたので直した
これで辞書管理ツールが動く

--(8/29)
辞書管理ツールを書きすすめた、SEGVが発生するので
もうすこし、デバッグが必要。

--(8/28)
ディスク破損により2日分の作業が飛んだ。
辞書をBigEndianにそろえた
record.cに にゃあの修正をとりこんだ

--(8/23)
可能動詞の命令形を適当にやってしまっている。
自立語の品詞を見てから付属語を付けるべきで、
その前に付属語を付けてしまってる。

--(8/22)
辞書のエントリをシェアードライブラリから外に出した
mkanthydicで辞書ファイルの各部を作って別のコマンドか
何かでリンクしようと検討中。
辞書ファイルのシェアードライブラリをやめた

--(8/20)
可能動詞は普通の動詞と助動詞の接続が違うっぽい
「書け(「書く」の可能動詞形の未然形)させる」とは言わない
src-diclib/ctab.h wtab.h を作った

--(8/19)
rpmのspecファイルを書いた
自立語部の長い文節はスコアが高いようにしよう
「する」がきちんと出てこない
splitterからの構成の取り出しはとりあえずできた
struct.txtから簡単なものをとりのぞこう

--(8/18)
wordsplitterに接続によるスコアをつけた。
splitterからの情報による候補の生成を実装したが
若干バグがあるっぽいので、直したらstruct.txtの
中から簡単な物は消す。

--(8/17)
agentコマンドを書き進めた

--(8/16)
リークは候補の割り当て以前のところで発生しているようだ。
A*サーチのところでA*のノードを解放し忘れていた。
依然としてリークが発生しているみたいだ。

--(8/15)
メモリアロケータを効率化した
確保されたメモリが300KB弱まで下がった。

メモリリークしているみたいだ、要調査

--(8/14)
に"ゃあのtrieのデバッグを取り込んだ
splitterの作った情報を使って文節の構成を取り出せるように
しつつある。コミット時にもその情報を使えるようにしたいと
思う。

--(8/13)
名詞の細分化が終了した
テスト入力を全部入れた時には400KBほどアロケートしていた

--(8/12)
名詞の分類をcannadicに存在するものではなく、
辞書管理ツールの中に分類が存在するものの方にそろえた。

--(8/10)
郵便番号辞書を使いたいと思った

--(8/9)
辞書制御コマンドを作成中

--(8/8)
emacsからAnthyを使うためにはIIIMPじゃなくて
サブプロセスを起動してそこに対してパイプでコマンドを
送受信する方式を使うことにしようと思う。
(start-process)を見れ

--(8/6)
current task
*trieの修正(done 8/14)
*閉括弧の自立語化
*辞書ファイルの非シェアードライブラリ化(done 8/22)
*連体形のあとに来る文節のmetaword化
*単語登録の品詞の扱い(done 8/31)
*allocatorをshrinkするタイミングの決定
ruleparser中の\include を \\include に変更した
ruleparserの整理(続)
segdef中の構造体にallocatorを使うようにした。

--(8/2)
ruleparser.c を整理した
書きこみを行わない匿名のpersonalityを作ろうと考えてる。
副詞0 から 副詞14を追加した。
それぞれに対して語幹だけという名前を作らんといかん

--(8/1)
名詞のあとに「せる」「させる」のどっちが来るんだろう?

--(7/30)
昨日のエンバグをフィックスした
括弧の閉じは名詞で独立語とすると良いという意見をに"ゃあから
もらった。is_close()を追加。

--(7/29)
*名詞の使ってないタイプ(SCOS_T*の一部)の削除
*wordseqに接続のスコアの導入

--(7/28)
名詞の辞書の強化など

--(7/21)
名詞1 から 名詞39までを作成

--(7/19)
cannadicの名詞の分類に対応を開始。てはじめにT35に対応する
名詞35 SCOS_T35を作成した。

--(7/18)
splitterでグローバル変数に現在処理中のデータを必ずセットするのを
忘れていて落ちるバグを直した。
辞書のインデックス中に'\' '"'を許すようにした。
小文字アルファベットはだめっす。
metawordとword_listをallocatorを使うようにした。

--(7/11)
personalityの名前が '/' を含むとまずいので、その場合は ""を
使うようにした。record(個人データ)のファイル名を
~/.anthy/last-record:{name of personality} から
~/.anthy/last-record_{name of personality} にした。
: はパスの区切とかストリームの識別とかに使われるから。
candswap(候補の交換)のエントリのagingを追加した。

--(7/10)
allocatorのキャッシュをsizeごとに共有するようにした。
ディレクトリsrc-utilを作成した。

--(7/9)
文節末の構造を若干追加
一部の接尾辞は接続グラフに埋めておける。

--(6/27)
ソースのセミコロン、カンマなどの後に空白を開けるようにし変更中
に"ゃあによるtrieを利用したrecordをとりこんだ。

--(6/15)
ddicのノードもアロケータを使うようにした。
連用形の名詞化で連用形以外も名詞になってしまってる?
->5段の連用形には2パターンあって、名詞化しないほうも名詞化してた。
「とる」が変換できない

--(6/10)
RExだけallocatorを使うようにした。
splitterでパラメータを使うようにしはじめた。

--(6/9)
副詞は活用しないので、副詞語幹にCT_HEADを付けるのは間違いだった。

--(6/7)
「だらけ」を名詞の後につくようにした。
allocatorを書いた、destructor付きの構造体アロケータにした。
Linuxのslab allocatorみたいな感じだす。

--(6/6)
可能動詞のルールがよくわからん、5段以外のでも可能動詞になりそうな
気がする。
「もっとも」が変換できん。(できる 6/16)
「こぴー」を変換するとルール番号が変。
(「ー」を平仮名に入れて解決 6/27 ルール番号はどうしましょう?)
副詞が辞書から取り出せない。
dictiona[l]y というスペルミスをしていた、はずかしいなぁ、もお。

--(6/4)
LISPを使って意味解析の部分を記述するというideaはどうだろうか?
もし、意味解析のために沢山のモジュールが必要ならその方が楽だろう。
CT_MEISIはやっぱり除去する。名詞化の有無は品詞のところに書いてある。
連用形が名詞になる動詞を実装した。
次は可能動詞だす。
recordにpersistentでないデータを格納する方法と検索を高速化する方法を
追加した。

--(6/3)
splitterの初期化のコードをsplitterに移動した。
struct.txt中のマクロが後方参照できないのがいたい。
可能動詞が面倒。
CT_MEISIは追加したが、その後をまだやってない。

--(6/2)
ソースコードの整理をした。
src-main/
src-splitter/
src-diclib/
にわけた。

--(5/30)
*必要なallocatorの種類を列挙し、実装する。
*動詞の名詞形を活用表に追加する。
 -動詞には足した。
*wordsplitterのソースを分離して、遺伝的アルゴリズムの枠組を作る。
*ruleparserに '\' の改行エスケープを追加する。(done)

--(5/29)
動詞の連用形は動詞の名詞的な使いかたをされることがあるが、
そのままルール化するのはどうだろうか?CT_NOUNを作ることにする。

--(5/27)
そのうち文節分割のチューニングのためにlibanthysplitter.soとか作って
そこに関係するファイルをかためようと思う。
しばらくは変換効率には取り組まずに関連のユーティリティにいそしもう。
個人辞書のデータ構造はmapだと思ってたが、実はマルチマップだった。やべぇ。

メモリallocatorの設計をどうしよう?次のようなのが考えられる。
*固定サイズで回収可能なやつ seq_entなど。
*可変サイズで最後に回収するやつ RExやNewStateなど。
*可変サイズで回収可能なやつ、 malloc/freeよりも効率が悪い。

--(5/26)
シェアードライブラリとして作られる辞書はアーキテクチャ依存なので、
mkanthydic/Makefile.amをいじって、anthy.dic.so を share/anthy/では
なくて lib/anthy/にインストールするようにした。

--(5/25)
dic_utilの関数を書きはじめた。

--(5/24)
にゃあ"の書いてくれたsegdefのオートマトンの変形ルーチンをマージした。
これから理解していこう。
recordの部分には大量の蟲さんたちがいた。
個人辞書はおおかたできたが、設定ファイルには #XYZ の方の品詞しか書けん。

--(5/23)
「さっさと #F12」
「とっとと」は無い
辞書のマルチユーザ化はできたっぽい。あとは設定ファイルのみだす。
単語切りの点数のデノミが必要な気がする。

--(5/22)
「いいます」->「行います」とか出てきた。(5/23)活用表を直した
「せっせ #F14」が変

--(5/21)
libanthydic/dic_util.cを進行中

--(5/20)
辞書のパーソナリティの実装がそろそろなので、切り替える前に
一度リリースしたい。

--(5/19)
今日はAnthy一周年!
辞書のパーソナリティの実現はかなり面倒。
文法定義ファイル中のリテラルのseq_entと
各ユーザのseq_entを同一にすることはできないことに気がついた。
比較関数を作ろう。
userAのseq_ent -> globalなseq_ent <- useBのseq_ent
という参照関係があるとuserAのseq_entとglobalなseq_entは等しい。
ポインタのからseq_ent_cmp()への書換えをする。
個人辞書メンテナンスプログラム用のヘッダファイルdicutil.hを追加。

--(5/12)
dic_sessionへのパーソナリティの実装中

--(5/5)
wordsplitで自立語一つをword_listとして登録するところで
変数の初期化忘れをしていた。
dic_sessionが複数のpersonalityに対応しとらん。
personalityの実装とかutenaの完成度の向上とかもやりたいけど
やっぱ変換効率の向上を図りたい。
libanthydic/のヘッダを若干整理。

--(5/4)
「ら抜きことば」を追加。
「このほんを」が一文節になってしまう。

--(5/2)
辞書へのpersonalityの追加は面倒だ、文法定義ファイル中
の文字列に対するseq_entは誰の辞書に入れるとよい?

--(5/1)
wordsplitに若干のコメント追加など。
数字でもないのに数接尾辞がつく。

--(4/30)
personalityの実装中
recordはpersonality対応完了。

--(4/29)
変換結果の候補の構造体cand_entに何番のルールで構成されたかを
記録するフィールドを追加した。
動詞の「する」がでてこない。dic_cache.c::fill_sv_conjugated_entを
追加中。
wtypecmpよりも厳密な比較をするやつが必要っぽい 数詞 = 名詞 では困る。
wtypecmp -> wtypematch に変更して(done)
wtypecmp が包含関係をチェックするようにする。(done)
wtypecmp はいらんのでは?けした(done)
personalityの実装進行中。
recordにpersonalityを実装中、初期化が変。

--(4/28)
src/personality.cを追加
libanthydic/alloc.cを追加

--(4/27)
途中でパーソナリティを切り替えれるようにしたい、
一度にfreeできるアロケータを書いて、コンテキストごとに
用意することにする。
include/alloc.hを作った APIは考慮中。
personalityを追加するのに、recordとdic_cacheが要作業
contextはなんとかなる。
personalityはいつでも変更できるようにする。
コンテキストはカレントpersonalityに対して作られる。

--(4/20)
uid一つに対して1ユーザというのは柔軟性に欠くので
anthy_set_personality()を追加した。

--(4/17)
文節ルールに番号をつけた。デバッグしやすくなるかも。
struct word_entとstruct cand_elmが似ている。ここにもう一つ
追加するとわけわからん。候補のなかのどれが同じルールで作られたか
のリンクを作ろうと考えている。

--(4/15)
北斗の拳辞書を追加した。
アラビア数字の品詞の問題は直した
「35号」「三十五号」の両方の候補がでるようになった。
次は優先順位をなんとかしよう。

--(4/14)
セキュリティに関するドキュメントを追加した。

--(4/13)
base.dic.txtに助動詞を一通り追加した。
次はstructだ。
libcとかがあるので単純に議論できないけれど、
プログラムサイズはmobile Wnn V2より若干小さいらしい。

--(4/12)
base.dic.txtに未然、連用、終止、連体接続の助動詞を追加

--(4/11)
助動詞をbase.dic.txtに若干追加、要作業。

--(4/10)
ST_なんとかを整理してコメントを書いた。

--(4/9)
アラビア数字などが絡むときの品詞の扱いとかが変。

--(4/6)
名詞の付属語はオプショナルなものと考えられるが、
いくつかの活用の動詞に付属語は必須なものであるということを
活かした評価関数を付けよう。
Wnn,Cannaを使ってみたところ、未知の文節末のシーケンスに
強いような気がした。

--(4/4)
文末の問題は直したにょ。
数字の問題も直したにょ。

--(4/3)
metawordのスコアを文字数じゃなくて文節数で割るのに戻した。
賢さが復活した。かなりロバストな感じ。
文末の処理の弱さを完全に解決するという当初の目的は果たしてないが
* A*を用いたことによる計算量の減少、上限の保証
* metawordによる構造の処理
 + 文節学習の利用
が実現できるのでまぁよろしい。
*アラビア数字の処理がバギー
*文末の文節分割がバギー
なのを直すと次のstableになるかにょ。

--(4/2)
metaseg -> metawordへ変更。

--(4/1)
チューニング中
metasegはmetawordの方が良いかも。

--(3/31)
ドキュメントの整理中。
パラメータの調整についてはもうすこし考える。
なぜか「せっかくだから、、」だけは正しく変換できてる…

--(3/30)
A*のヒープはきちんと処理できているようだ。
切り替えを行う!
かなりヘキョくなったがそんなに悪くもない。

--(3/29)
アラビア数字からの変換は1億未満の正整数に限ることにする。
record中のPRIVDICの形式
 読み 単語 品詞 頻度
 ddicのカスケード接続を実装すべし。
metasegのsplitterは動き出したが、動作が怪しい。
ただのパラメータのチューニング不足かも。
あと、属性文法によるmeta文節のマージと、数詞の連続などの処理を設計する。

--(3/28)
A*のheapの構成のバグとりをした。
数字からの変換を書き進めた。
 もうちょっと各桁の扱いに配列を使うなどする必要がある。(やった)
 億までいけるようにするか?悪ノリしてもっといくか?「壱弐参…」はやるか?

--(3/27)
megasegのA*の検索コアを書いた。

--(3/26)
A*のヒープの再構成の遅延は面倒なのでやめる。(普通のコードにした)

--(3/25)
A*のheapのrebalanceのコードを書いた。
nr_単数形 -> nr_複数形 にした。
 include/anthy.hはまだ、そのうちに。

--(3/22)
xchar.hに漢数字のエントリを足した
(atollというライブラリ関数があるらしい。)

--(3/21)
文節あたりの平均点ではなくて、文字あたりの平均点を用いる。
libanthydic/num_ent.c -> ext_ent.cに変更
「Linux業界に全角英数を持ち込むべからず」とか言って手抜きしよう。

--(3/20)
以前、書き忘れていたけど、COS(Class Of Speech)を細分したSCOSを導入
品詞 「人名」「人名接尾辞」を追加
meta segment splitterを実装開始、2種類のwordsplitterがしばらくは並存することになる。
未知文字列のmetasegの中に文節境界を設定された時の対処を考えるべし。
  「、、|、」とか
単純なmetasegは作れた、次はA*サーチ。

--(3/19)
コードのクリーンアップsegcompose.hを除去
depwordルールのチェックの追加

--(3/16)
recordの特定のセクションのデータを全て取り出すための関数
select_frist_columnとselect_next_columnを追加した。
wordlistを複数持つ構造体(meta segmentと呼ぼうかな)
を導入してwordsplitの性能を稼ごうと思う。
これとA*サーチを同時に実装するブランチを近日中に。

--(3/14)
「〜してみると」ってやっかいですな。
文節の後部が長いと加点というのは以前失敗した
接尾辞が複数の種類で構成されると加点というのをやってみようと思う。
「〜する と(動詞 助詞)」
「〜ない とき は(形容詞 名詞 助詞)」
ひらがなのコード表 libanthydic/xchar.hに間違いがあった
(2/8)の「書こう」が変換できない件は解決

--(3/13)
文節構造のルールのレベルを実装し終えた。

--(3/11)
文節構造のルールにレベルを追加した。
単純なルールで文節の構造が決定できる時は複雑なルールを使わない。

--(3/7)
近日中にwordsplitをA*サーチをするようにする。
文節の学習の実装を開始した、
segment(struct seg_ent)にresizedという要素を追加した。
libanthydic/num_ent.cを追加した。数字関係を扱う。

--(3/5)
他の変換エンジンの「AI塔載」に対抗して「IT塔載」にしよう^^;
その実体はオプショナルな辞書をダウンロードしてくる機能。

文節関係の処理の実装を検討中
形容詞 名詞
 「あついふろ」「ふろがあつい」のように順序の逆転がある
副詞 動詞
 副詞によって動詞が変化するパターンはあんまり思い付かない
動詞 名詞
 「嘘をつく」「鐘を撞く」「槍で突く」順序の逆転は少い
 「(本日)開店のカフェ」動詞の形をしていない

--(2/28)
今日は単語の追加しかしていない。

--(2/26)
segdefの中のバグを修正
近場のTODO 
*RExの回収
*record検索の高速化
*ruleparserへの '\'記号の追加
*頻度バイアスの実装

--(2/25)
wordseqの若干のクリーンアップ

--(2/24)
libanthydic/dic_main.c::get_seq_ent_from_xstr()
 辞書にない文字列で意味を持つもの「123」「ABC」のような
ものを引く関数を整理した。
文節間の関係の処理の一手法として文節の隣合う文節の
master/slave関係を設定しようと思った。
「〜する」「〜するもの」「〜ため」とかを処理できそうな気がする。
隣接しないやつは難しそう
A Bが意味をなす場合に A X B も意味をなす場合が多い。
例「きれいな 花」 「きれいな あかい 花」

--(2/22)
人名の場合POS = POS_NOUN , COS = COS_JN になるのでcannadic中の
姓か名の情報が利用できない。
なんかwordsplitterのexhaustive modeにバグが残ってるっぽい。
形容詞、形容動詞の部分が甘い。
wordsplitterで参照する頻度が256を越えると256で抑えることにした

--(2/20)
名詞のflagのコーディング中。

--(2/18)
名詞だけはもうちょっときちんと分類して、
各範疇ごとの付属語のパターンを利用すべし。
文節の分割のパラメータをチューニングした。
「回答開始の合図が、、」が最後の読点の有無によって
変換結果が変化する、要調査。

--(2/17)
普通の名詞は辞書に入っている時点で接頭辞や接尾辞が
ついているが、数詞だけは接頭辞と接尾辞の両方が付く
ことができるようにする。

--(2/13)
cannadic-0.92へ更新
get_seq_ent_wtype を get_seq_ent_wtype_freqとして、
その品詞としての頻度を得るようにした。
その他のget_seq_ent_系関数もそうすべきかもしれない。
get_nr_dic_ent()とget_nth_dic_ent_str()に
変換前の文字列も引数として渡すようにした。

--(2/12)
文節の評価が負の値になってはマズいので
(割り算した時に大きくなる)
適当な数を足しておいた。

--(2/10)
じゃっかんのバグ修正

--(2/9)
時計のAPIを追加しはじめた。
LANG=ja_JPのもとではsortコマンドが予想外の動作をするので
LANGを無設定で動くようにした。
文節境界の評価を若干いじった。
main.hにいくつかのヘッダファイルを追加した。

--(2/8)
「今日中」が無い。 追加した。
文法を少し追加。
「かわれねこ」の場合、文節境界の検出のときに
未然形 + 名詞というルールを使うことができるかも。
「書こう」が変換できない。
「まさるさん」が変換できない。
(2/6)の文節の切り落しコードを有効にした。

--(2/6)
文節の後部の句読点などを切りおとすコードを書いたが、
is_??の類が正しく動作していないのでoffにしてある。
時間を計る内部のAPIを考慮中。

--(2/4)
英数字の列を名詞として扱うようにした。

--(2/3)
昨日のバグ修正として、文節定義の構文解析をシンプルにした。
?演算子(POSCLOS Positive Closure)を作った。

--(2/2)
?演算子(NEGCLOS Negative Closure)を作っているが、うまくうごかない。
文節構造の解析の部分をに"ゃあに説明したので、簡約の部分をやってくれる
かもしれない。

--(1/30)
接頭辞 + 名詞 + 接尾辞のパターンを消した。
たいがいの名詞は、辞書に入っている時点で
接頭辞、接尾辞が付いている。
segstruct.c の 
 文節の構造の定義の解析
 オートマトンの作成
 オートマトンによるマッチング
のうちマッチングをsegstruct.c 残りをsegdef.cに
分離した。
segstruct.hはオートマトン関係のもののみにした。

--(1/29)
L5活用は(いらっしゃる ござる) は 「い」で命令形になる他に
連用形にもなる。
そろそろ形容詞も扱う?
形容動詞語幹 、形容詞語幹+"み"

--(1/28)
segstructのtraverse_statがマッチングの途中で
リターンしていた。
これで、正規表現関係のバグはほとんど無くなった?
次は ? 演算子をやろう。

--(1/27)
ここ数日追いかけていたバグの一部は構文木の表示関数の
バグだった。(#*><)
構文解析はできたけども、状態グラフが正しく動作していない
ような気がする。

--(1/26)
か変の活用を書いた。若干間違えているような気がする。
正規表現パーザがおかしい。

--(1/25)
ST_NUMを除去した。数は品詞として扱うことにする。
バグの原因発見
A | B -> or(A,B) の書きかえの際にこのリストを指す
ポインタは以前として Aのノードを指している。
カ変動詞の仮定形と未然形を書いた。

--(1/21)
12/31に書いた、wordsplitterの検索の部分を書いたが
うまく動かない。バグなのかパラメータの間違いなのか
わからんのでしばらく放置。
IIIMPサーバUTENAのコードを取りこんだ。
segstructのマクロの展開にバグがあるっぽい

--(1/20)
頻度が0のものの頻度は1にして、
そうでないものは8倍するようにした。

--(1/17)
segstructのところに、 '|' 演算子を実装し終わった。
次は'*'かな。
ε遷移は一回までにした、これで無限ループにはならない。

--(1/15)
open_fileなどの仕様が変なので適当な機会にクリーンアップするつもり。
open_in_.. とか

--(1/13)
変な候補を出しすぎ。

--(1/10)
ε遷移の解決、ε遷移が2回以上連続する場合には一回で到達する
ε遷移を追加する。マッチング時にはε遷移は2回以上連続でやらない
ようにする。
同音異義語の問題 「高井」「高い」のような品詞の違うやつと
「貴社」「記者」のようなやつがある前者のほうは
割と簡単に解決できるのでは?
ST_なんとかをもっとシンプル化すべきかな?
詳しい場合分けは候補の生成時にやるとして、
「2001年」は変換できても「199X年」は変換できない。
「このほん」が一つの文節になる。

--(1/8)
か変の「来る」がやっかい。
ルール定義ファイルに \eof と書くとそこで読み込みを打ち切るようにした
デバッグ用なり。
「りくぐん」 「陸軍」 < 「陸群」はおかしい。
やっぱり、「名詞」で候補を生成したら 「名詞 + 接尾辞」で
候補を出さないようにすべきである。
文節構造の定義のシンタクスエラーのハンドリングを書いた。

--(1/7)
昨日のε遷移の問題は解決。

--(1/6)
正規表現のマッチングをするときに、入力が尽きても
ε遷移なら遷移ができる。
「つかって」が変換できなかった。

--(1/3)
文節構造を定義するところにオプションをつけて
大きなお世話様を変換できるようにした。
セッションの保存の作業を進めた。

--(1/2)
変換候補の交換は一回しかやらないので
A->B B->C という関係があっても A->Cにならないのを修正
12/17の議論で「freeなんとか」はメモリ領域の解放を意味し
「releaseなんとか」はその構造の解放を意味するということで
どうでしょうか?
「ーだけ」 「ーしか」 が cannadicに無いように見えるのですが
変換はうまくいけるようです。
ダブルクウォートを文字として扱うときは '"' でいいんですよね。

--(1/1)
「おおきな」は連体詞
文節構造定義ファイルには
 ".." リテラル、品詞、 #op オプションの3要素を書けるようにしているところ。
リテラルと品詞の両方があれば、リテラルの方がマッチする条件に使われる。
オプションは#で始まり、単語のバイアスなどを決める。

--(12/31)
文節構造の定義に '(' ')' を使いだすと落ちるようなので(直した)
バグとり中 ε遷移のループ問題を無視していたのを思いだした
wordsplitterの検索の最後の一段は検索をあらかじめ行っておくことが
できるっぽい。たとえば
 「わ わた わたし わたしの」 の中でベストなスコアを 「わ」のところに
記録しておく、文節境界の制約があるので最初の変換時でなくて
wordsplit開始時に情報をセットする。
*プログレッシヴな変換をサポートする準備をしたい。
 update_contextというようなAPIを追加するかな

--(12/30)
*おれの名前が変換できん。
候補の交換による学習ができた、あとは保存する機能だす。
文節構造の定義の文法を拡張する。
リテラルや品詞を書いたあとにオプションを追加することができるようにしたい
たとえば 
 動詞未然形 "ない".形容詞
みたいな感じ
*未益田 :69 > みました:1

--(12/29)
文節境界の検出に接頭辞の処理をつけたけど、
すると候補の評価のところがおかしくて
おビール < 尾ビール とかいう謎なことになった。
*「あさんかびーる(亜酸化ビール)」を変換すると落ちた。
 ->直した、配列の範囲外への書き込みをやっていた。
接尾辞も追加した。

--(12/28)
辞書セッションのanonymousセッションを追加した。
anonymousセッションの元で確保された辞書エントリは解放されない。
文節構造定義ファイル中のリテラルなどのseq_entを取るときに使う。
文節境界検出で読み切りモードで時間がかかりすぎるので
適切な枝刈りをすべき。
*文節候補の中に同じものがある場合はスコアが低い方を除去したら
 通常5秒のところが4秒になった。
*展開するノード数に制限をつけたところ、上手くいっているようだった。
 理想的にはA*の類いを使うべきかも。
接頭辞は一個までになってるけど、さしあたって放置。

--(12/25)
ST_NONE 0 は単語にならない文字列に相当 seq_ent = null
ST_WORD 1 は全てのseq_entにある
ST_UNKSEQ 2 は名詞などになりそうな文字列
ST_SEP 4 句読点など
ST_NUM 8 数字の列
get_seq_ent_wtype中から呼ばれるget_extra_seq_ent_wtypeを
書かんといかんにゃあ
数字を名詞として扱うことができた

--(12/24)
test_anthyを若干改良、テスト入力を外部のファイルにした。
文節構造の定義(struct.txt)中のリテラルを読むとき、
辞書のセッションが無いので忘れられるというバグがある。

--(12/22)
testディレクトリを作成してテストプログラムを移動した。
付属語グラフに若干追加

--(12/21)
Ancy->Anthy の書換え完了!
文節解析でルールに文字列リテラルを書くことができるように
なっているが、このリテラルにマッチすると品詞がwt_noneになってしまう。
「"ない".形容詞」というようなリテラルを書けるようにしようかな?
付属語グラフに若干追加

--(12/20)
付属語ファイルの名前を変えた
*.depword.txt -> depword.*
anthyへの改名開始ファイル名などはほぼ完了、
これからソースやドキュメント中の名前を変更する。

--(12/19)
キャッシュのshrinkはできた。
文節候補のscore = 10 * (文節coreの長さ)^3 * log_2 (freq(core))
となっている。
これでは「すうじ」が「すう じ」になってしまう。
*coreの頻度を見ているが、coreが複数の品詞になる時には
 文節構成のルールで使われたcoreの品詞の頻度を使うべきだ。

--(12/17)
現在xcharにはEUCが入っているが、そのうち
「ぴゃ」「あっ」「う゛」のような不可分な文字列を文字として
扱うことも考えてみた。
文節の関係を扱うようなメカニズムが必要かな?
Wnnみたいな大文節、小文節みたいなover killなやつはいらん。
キャッシュのshrinkの作業を進めた。
「freeなんとか」と「releaseなんとか」が混在していることに気がついた。

--(12/16)
doc/DEPWORDに仕様書を若干追加、、仕様書を書くのは面倒
candswapを若干書いた、ループの検出について考えないといけない。
文節末尾の処理を書いた。

--(12/12)
Anthyが正しいらしい。
malloc.h をstdlib.hに書きかえた

--(12/10)
segmentのリスト化のバグを修正

--(12/7)
doc/DEPWORDを追加
doc/POSの副品詞の説明を詳細にした

--(12/3)
11/30に書いた問題は解決した、次は何を解決しようかな?
*辞書キャッシュのシュリンク(作業を若干進めた ddic_shrink()を定義)
*学習機構(Jmode待ち)
*助動詞助詞の追加と整理
*ゼロ頻度問題
 (頻度0のものは頻度1に格上げしているので、
  頻度1のものは10ぐらいに上げるとよい?)
*ソースのEUC化(done 12/17)

--(12/2)
get_nthなんとか という関数では 0番目からカウントが始まっている
統一しとけば問題ないかな、、0は自然数だし。
get_nth_segment()という関数を作ってsegmentの配列への直接
アクセスから移行中。

--(11/30)
context中に存在するsegmentを配列にしているがこれを
double linked listにする。(done 12/3)
segcompose.c::push_back_noconv_candidate()を
xstr_hira_to_kata()を使うようにする。(done 12/2)
xstrtoi()の中身を書く(done)
ancylibを解放する関数を書く(?)

--(11/27)
数字の変換のメカニズムを考えないといけない。
ライブラリを解放する関数を作らんといけないか考えること。
「つま」 を 変換して 「積ま」 がでてくる原因を究明すること。
  ->文節が一個の時の処理を間違えていた。

--(11/26)
Wnn7に対抗して、ancy-kurumiを29日にリリース予定
HekeIMはjmodeに改名する予定
*カ変動詞(来る)の扱いが面倒
 - カ変は活用によって漢字の部分の読みかたも変わるのでやっかい
*「ある(有る、在る)」が #aruという品詞になっている
 -ラ行5段としてbase.dic.txtに追加して#aruは無視
「来りゃ」とかcannadicに入っているがなんでだろう?

--(11/18)
文節境界検出のアルゴリズムの変更のせいでwordsplitが
よくわからんことになっている。要修正
文節の後を無視して境界を付けるようにしたが、今度は
前の方だけに品詞を当てる部分がおかしい。

split_entが2つあるのは気色悪い。(fixed 12/10)

--(11/15)
動詞から助動詞原形は完成
助動詞「た」の音便の「だ」「読んだ」
断定の助動詞「だ」
を区別すべし。
geromagnonは11/14リリース

--(11/14)
recordを若干書いた

--(11/11)
dic_cannaというのを見付けた。cannadicよりもデカいみたい
動詞未然形と助動詞の接続を書いた
動詞連体と助動詞の接続を書いた「ようだ」のみ

--(11/9)
プロトタイプ宣言に変数名も書くことにする

--(11/8)
record管理APIを決めんといかん。
*histroyファイルにはいくつかのセクションがある
*セクションはカラムからなる
*カラムは文字列をキーにして選択される
*カラムは複数のデータを持つ
*(時間的に)長いトランザクションはない
 トランザクションは一瞬

--(11/6)
動詞未然形の分類
*5段デフォルト 5
*5段 う U
*サ変 SI SE SA
*上下一カ変 D

libancydic/record.cが意味も無くopendirを使っている
fstatに書き直すべし。(直した 11/8)

--(11/5)
Cannaは文節の構成を複数作ることができないようである。
だから「早く」と「端役」が同時に候補として出現することはない。

\include ファイル名 と書けばルール定義ファイルの中でインクルード
ができるようになった。

*助動詞をきちんと処理する
*名詞をきちんと処理する
*mallocの返り値をチェックする
*cacheのシュリンクをする
*学習機構

セッション、ヒストリ、レコード管理(名前をどれにしようか?)の
アルゴリズム試案
起動時に ~/.ancy/last-record から前回のレコードを読む
現在のレコードは ~/.ancy/??(適当にユニークな名前)に保存して
アトミックに ~/.ancy/last-recordにmvする。

レコードは2つのセクション
*候補の交換
*候補のバイアス

--(11/4)
segexpandから品詞の割り付けを呼出すときに、割り付けに失敗したら
最後の一単語を無視してリトライするようにした。
動詞連用形は
5段「(書き)ます」デフォルト CST_V_RENYOU_5
5段「(書い)た」 CST_RENYOU_TA
5段「(死ん)だ」 CST_RENYOU_DA
デフォルト(上下一段カ、サ変) CST_DEFAULT

ruleparser.cを若干クリーンアップした。
次はinclude文の実装だす。

--(11/3)
文節の展開をして、品詞の割当てに失敗したら文節の後の方を
無視して再び展開し直すということにするが、この度合がよくわからん。

--(11/1)
書い て O  た O ます X
書き て X た X ます O
見 て O た O ます O
動詞連用形の分類をもうちょっと見直すべし

「にょ」「にゅ」は終助詞

wordsplitterとsegsplitterの統合をした、
このせいでかなり、ちぐはぐな部分がある。

--(10/28)
付属語列の定義ファイルの形式を変更した。
付属語の定義能力は基本的にはこれで十分なハズ。
次にすべきことは、
*wordsplitの情報segsplitが利用するようにする
*学習機構&セッション管理
*複雑な構造の文節をどうやって処理するか考える

wordsplitterとsegsplitterを統合したので、wordsplit情報は
context中には不要になったと思う。

--(10/27)
とりあえず、segsplitをwordsplitから呼び出されるようにする。
名前やコメントに若干のずれがあるので、徐々に直す。
wordseq.txt をindepword.txtにした

--(10/26)
活用表の同じセル中に複数あるときどちらをデフォルトととしたのかを
どっかに書いとかんといけない。dic_cache.cを見ればわかるけど。

--(10/25)
「食べまくる」「走りまわる」みたいな動詞の接尾辞みたいなやつは
どうしたら良いんでしょうか?cannadicにはそんな単語は無い。
そもそも動詞の接尾辞の概念は無いみたい。
「まずいまくる」とかは当然、無視ね。

--(10/24)
segexpandやsegstructにおいても、
文節の後の方を無視することができるようにする必要がある。

自立語の活用の影響を受けるのは直後の付属語のみなので、
*活用する自立語 + 付属語1つ
*それに続きうる付属語の列
という二つの表を構成するといいかも。

wordborderは消した

--(10/23)
wordborderの内容をwordsplitterに移す必要がある。
そののち、wordsplitterとsegsplitterを統合する。

wordborder中で「私の」と「渡志野」の両方に対応する
wordlistに対して検索しているが、スコアの高い方だけで
良いはずである。

stinkerの次はgeromagnon

--(10/22)
名詞などの活用しない単語の活用形 は CT_NONE か CT_SYUSIかを
きちんと決めてない。
「使え る(KS)」は「使 う(W5r)」の可能動詞化したもの、
正しく処理しできていない。->問題無し、「使え る(KS)」の
辞書での頻度が0だっただけ。
セッション管理のところに辞書ファイルの操作をする部分を若干書き始めた。

次のような分類をする。
動詞未然形   動詞未然形ならば全て
動詞未然形*  同上
動詞未然形D  デフォルトの活用形
動詞未然形U  「う」に接続する活用形

--(10/21)
品詞を表すwtype_tを 4バイトから8バイトにして、
フラグ(自立語 or 付属語)と活用形のサブタイプを追加した。

--(10/17)
たとえば動詞には未然形で
「書か」と「書こ」 がある。
どちらも未然形で区別する方法を考えてなかった。
活用形 (CT_XX)はビットマスクをやめて、ただの値にした。

--(10/15)
stinker branchをリリース(1012)
動詞の処理をする。
今、単語境界検出のスコアに長さの3乗を使っているけど、
ちょっとまずい。

--(10/14)
昨日の続き
wordsplitterで各文字から出ているリストの内容を
スコアの順にソートすれば良いのでは?

/bin/bash -> /bin/sh

stinkerリリース後のプラン
*wordsplitterの定義/文法の強化によって文節の末尾への対応の強化
*接頭辞の処理
*学習機構(辞書セッションの拡張)
*segstructの文法定義の強化
*segsplitとwordsplitの統合?

単純学習は
読み 変更元 変更先(例 きしゃの 気車の 貴社の)
という組で表わされる。
ほかにも単語のバイアスや単語のコロケーションによる
学習を考えている。

--(10/13)
SEGVは直した
遅いのは検索の深さを2に下げて対処したけど、
適切な枝刈りをすればもっといけるはず。

--(10/12)
N-gira アルゴリズムはなんとかなった。
*2回目以降の変換でSEGVる
*。が最後に来る文節を処理できない
*「私の名前は中野です」が遅い

--(10/11)
wordsplitterのバグ修正など

--(10/9)
wordsplitterの側にも正規表現エンジンが必要かな?
もうちょっと強化すれば平仮名で書かれた数字とか処理することが
できそうなんだけど、、
IIIMなんとかの説明とFreeWnnのソースを読もうとしたけど、
わけわからん。Ancyはきちんとドキュメントを付けるべし。
新しいwordsplitterにバグが残っているけど、古い方は除去した。

--(10/8)
新しいwordsplitterを書いている。

--(10/7)
wordborderの内容をwordsplitに移す、その間やっかいですぞ!

--(10/6)
ループを構成する状態は全てマージすれば良い!
wordborderを若干クリーンアップ

--(10/4)
下手をすると、もっと色々なところでε遷移のループができることが
わかった。要検討

--(10/3)
segstructではε遷移のループが無いことを保証しようとするが、
(a?)* はε遷移のループがありますね、やべぇ。
wordborderパターンマッチの部分を若干書いた。

--(10/2)
今はwordseq中のルールの数だけそれに対応する構造体を作っているが、
将来的にはツリーを作ってルールを統合したりする。
たとえば、
*動詞連用形 くださ る
*動詞連用形 くださ ら ない
の前半は共有できる。

--(10/1)
wordborderで、そのコンテキストの文字列中に含まれる
自立語の検索をやるようにしている。
このデータは最初のwordsplitが呼ばれた時のみに行なうようにする。
wordseq部のパーザを若干書いた。

--(9/28)
wordborderを執筆中、そのうちwordsplitの検索はいらなくなる。

--(9/27)
セッション管理を若干書いた。

--(9/25)
sdicに単語長ごとの単語の存在の有無を表わすビットマップを
付けた、内部ではヒストグラムと書いている。

--(9/24)
ハッシュのコードを今度こそマージした。
動作が遅いという指摘を受けた、対策は色々思いつくが
適当にやるのは危険である。
cannadicの単語の文字数と出現頻度のヒストグラム
1 111
2 2322
3 13834
4 26920
5 14470
6 10063
7 5714
8 3041
9 1409
10 554
11 310
12 143
13 74
14 32
15 14
16 7
17 3
18 4
19 0
20 1

--(9/23)
(9/21)にディスクを忘れたせいで、hashのマージをもう一度やるべし。
どの活用形でも同じ頻度なのはおかしい。(直したつもり)
wordborderで左右のスコアを同時につけずに、片方を先にやって
もう片方をそれによって決めるというのを検討する。
単語の接続は
接頭語 自立語 接尾語 付属語(助動詞、助詞)
として、wordboderでは自立語を中心に左右を見ていく
付属語のパートは定義ファイルに書いておかないといけないが、
その他はハードコードでよいかも?

--(9/22)
辞書の作成をMakefile.am中に書いた
INSTALLを更新した。
~/.ancyをいらなくした。

単語境界の検出のアルゴリズム(通称 N-gira モデル(改))の説明
文字列 A_1 A_2 A_3 .. に対して
R_1 R_2 R_3 ....
L_1 L_2 L_3 ....
の2つの列を考える。
A_nに対して、R_nはA_nの左が単語の右の境界である度合を評価し
L_nはA_nの左が単語の左の境界である度合を評価する。
文字数をスコアとした場合には
「わたしのなまえは」に対して
「わたし」、「なまえ」を評価した場合
    「わたしのなまえは」
R     0 0 0 3 0 0 0 3
L     3 0 0 0 3 0 0 0
「わたしの(地名)」を評価すると
R     0 0 0 0 4 0 0 0
L     4 0 0 0 0 0 0 0
「わた」「たし」「しの」「なま」「まえ」
R     0 0 2 2 2 0 2 2
L     2 2 2 0 2 2 0 0
一文字の単語
R     0 1 1 1 1 1 1 1
L     1 1 1 1 1 1 1 1
RLそれぞれのトータル
R     0 1 3 6 7 1 3 6
L    10 3 3 1 6 3 1 1
積をとると
R*L   0 3 9 6 42 3 3 6
ここからどう切るかは考えていないが、最長一致すると。
「わたしの,なまえ,は」になる。

wordseqを除去した、wordsplit中に冗長な部分がたくさん有りそうな
気がする(splitのエントリや左の単語を見る部分)、
それから文節境界の制約条件を使っていない。

--(9/21)
部室にディスクを忘れたにゃあ
部室での開発分をマージした。
r氏のhashをマージした。

--(9/20)
単漢字の候補としての評価が間違ってるような気がするけど、
別にいいかな?
wordborder.cを作った、ある程度機能が追加できたらwordseq.c
を除去する。
自立語 助詞と助動詞以外、「単独で意味がある」
この定義によると動詞の未然形とかは自立語である。
自立語は文節の先頭につく、接頭辞がつくとそれは一つの単語。
Ancyでは当然上記の定義は使ってない。

--(9/19)
wordborder.cを作るかな?

--(9/18)
変更点などをChangeLogに書かない理由は、僕はChangeLogは
ソースの変更を記述するもんだと思ってて、
方針(気持ち)の変更は書きづらいからです。

文節が一単語で構成されている場合は、
あらゆる品詞が候補となりうるようにする。
「あ」という文節に対しては(あ)と読むすべての単語が入っているが、
「あ、」に対しては入ってないのでまずい。
でも単漢字以外の全ての品詞を文節の構成要素として登録しとけば問題ない。

辞書モジュールへ存在しない単語を引きにいったときに無駄な処理をしていないか
要チェック。

「ゃ」とかが「。」とかと同じ扱いになっているので、それらを
単語として扱うようにした。

--(9/17)
単語境界の検出の新しいアルゴリズムを考えた。
文字列 A_1 A_2 A_3 .. A_n があるとして、
それぞれの間が単語境界になるかどうかという評価を行なう、
A_i と A_i+1 の間の境界になりやすさを B_iとする。
各B_iは0で初期化される。
A_i A_i+1 .. A_i+j が単語になれば、 B_i-1 と B_i+jは
加算される、このスコアは単語の長さや頻度で決定される。
B_i .. B_i+j-1に対して減点してもよい。
「わたしのなまえは」を例とする。
「0わ0た0し0の0な0ま0え0は0」
「4+3わ0た0し3の4+3な0ま0え3は0」わたしの、わたし、なまえ を加点
「7+2わ0+2た0+2+2し3+2の7+2+2な0+2ま0+2え3+2は0」わた、しの、なま、まえ
「9わ2た4し5の11な2ま2え5は0」

「なかのです」
「0な0か0の0で0す」
「3+2な0+2か0+2の3+2+2で0す+2」なかの、なか、かの、です
「5な2か2の7で0す2」
句読点や数に対しては両サイドに十分高いスコアを付けると良い。

そんで、これをどういうふうに実装しましょうか?

に,ょ(促音の前で切っている) とか 猫ー(ーの前で切っている)とかも
そのうちなおす。

--(9/15)
バグは直した、ルールパーザではなくて、ただの初期化忘れ。
この手の不規則なバグはつらいにゃあ。
次はトークンのリストから正規表現のツリーを作る。
でけたにゃあ。でも連接しか処理できない。マクロ展開によって生じる
括弧ぐらいは処理できるようにする予定。(したはず、要チェック)
トークンリストから構文木を作る際に | (縦棒)は一つのトークンとして
扱い、構文木の構成のパスのあとでこっそりリストを繋ぎかえて
形を合わす、これをpostprocessと呼ぶことにする。
それからsegstruct中では初期化時にいろんなものがリークする
良いものと悪いものの基準を作らんといけない、
あとから使わないものは解放すべしという方針でも別に構わんかな?

5000行到達
RAY'S RULE OF PRECISION
Measure with a micrometer.
Mark with chalk.
Cut with an axe.

文法ファイルなどもインストールするようにした。
.ancyの記述が楽になる。

なんか単語境界の検出部の機能が貧弱すぎるような気がする。
問題点を列挙してw氏に検討してもらおう。

--(9/14)
ルールパーザにバグがあるっぽい。
一行を長くすると落ちる。

--(9/13)
文節の関係のうちもっともシンプルなものを処理しようと考えている。
〜ものである。
〜してみる。
〜するとき。
などの漢字にならない従属する文節を前の文節とくっつけてみよう。
そもそも、文節間の関係のサーチは可能性が膨大でヤバそうだけど、
この手のやつは前後の一文節しか見ないで良いから得だ。

cannadicには「だい10かん」などの数字入りのエントリがある、これは
mkdicの時点で除去する。
cannadic 0.91の「えおじん」のエントリがダブっている上に片方が変で
ある、そもそも「エオジン」ってなんだ?

先送りしとるけど、正規表現のツリーの構成を決めないと進めない。
トークンの列 -- マクロの展開 -> 内部表現の列 -> 構文ツリー -> オートマトン
てな感じかな?
構文要素は
アトム 、 ( ) 、* 、 ( | ) 
ちょっとマクロの部分を書いたけども、マクロの再定義や
マクロ定義中に別のマクロを使うことなどを考えないといけない。

TODO r氏の辞書エントリのハッシュのコードを取りこむ、
 その後に辞書キャッシュから辞書セッションの情報を使うようにする。

--(9/12)
candswap.cとcandswap.hを追加した。
しばらくemacs clientを作ろうと思う。

--(9/10)
dic_session.cとdic_session.hを作った。

--(9/9)
そろそろ、文法定義ファイルのドキュメントを書かないといけない。
それから、正規表現のパーザの停止性は入力を確実に消費することによって
保証する方針とする。このためにはε遷移のみのループを排除することが
できれば良い。
当面の課題はsegstruct中の正規表現のパーザを構文解析とツリー構築の
2パスに分離することと、候補の優先順位を付ける良いメカニズムを
設計することである。
候補の評価は
 だから > 田から
 私の > 渡志野
 中野 > 中の ?
となるべきである。

--(9/6)
候補の列挙を書いている最中なので、候補がほとんど出ない。
AncyはAncy Never Comfort You.らしい(shin先輩ありがとう)
候補生成がバグってる、直前で決定した品詞が使われてない|
品詞が決定されてない。
POS_NONEはワイルドカードで、POS_なんとかの未定義な品詞
がマッチしていたのでPOS_INVALを作って逃げた。

--(9/5)
昨日の「。」は直した。
正規表現の文法について考察中。
*,.,+などは後に付くんですね。

--(9/4)
データの流れを整理しておく、
a segsplitで文節の境界が検出されsegcomposeに送られる
b ->segcomposeはsegexpandを呼出す
c ->segexpandは分割のパターンを列挙してからsegstructを呼ぶ。
d ->segstructは文節の構造が適していれば品詞情報を付加して
    segcomposeのcommit_split_entを呼びだす。
「動詞 助詞 。」というパターンは「。」があるために文節の形式であると
認識できていない。dのところで左右の記号を除去しないといけない。

--(9/3)
文節の構造の正規表現の部分が動き出した.

--(9/1)
パーザは分離した。
これから文節の構造のevaluatorを作るが、
文節の構造は正則言語であると仮定する。
正規表現は正則じゃないんですねぇ、これが。

--(8/31)
文法定義ファイルのパーザを分離する。

--(8/27)
副品詞はCOS(Class Of Speech)と命名した。

--(8/26)
bigramのクラス定義ができるようにした。
segexpandの構造を変えようと思った。
今はA*で分割の候補を出して、それをすぐにコミットしていたが、
出した候補をもういちど並び換えるようにする。
A* -> depth firstへ書換える。枠組はA*の方がでかいので、
構造を変える必要は無いのだが、だからといって変えずにいては某ソフトの
ようにわけのわからんことになる。
候補の入れ替えはcandswapというソース名にすることにした。
segexpandは一定の個数で切るか、一定のスコアで切るか、はたまた両方か?
今は正のスコアを持つもののみをコミットする。

--(8/25)
連体詞は名詞にした。

--(8/24)
「回す」はさ行5段、(「まわる」はら行5段こっちはcannadicにはのってないので
base.dicに追加)
カーソルキーを使わないでいけるようにすべしとのおことば、
しかし文節の伸縮じたいそうしょっちゅうあってはならんです。
「う゛」->「ヴ」は書いたが、「鵜゛ぁいおりん」は無いでしょう、、

--(8/23)
昨日書いたあとの品詞を固定することを「バインドする」と呼ぶことにする。
wordseq.cの関数名を整頓した。
形容動詞「あほだ」に対して「あほ」も形容動詞詞終止形になってしまっている。
これは原形CT_NONEと終止形CT_SYUSIが内部で同一だからだ。
(直したけど、「あほ」は形容動詞原形という扱いになって、名詞ではない。)
直した、sdic.c中に形容動詞原形は名詞原形にすると書いた。
ほかの場所に書いても良いかもしれない、辞書の種類が増えたら要検討。

片仮名の候補が出るようにしたが、「う゛」には未対応。

学習のフレームワークとして。
1,短期的な候補のいれかえ
2,長期的な頻度の更新
3,長期的な結合情報の取得
(4,ユーザ単語辞書)
を考えている。

--(8/22)
Ancyの組込みができた。
wordseqで純粋なbigramのみをやっているが、
「なかのです」という入力に対して
名詞+"の"で「なか」+「の」がマッチして、「の」が助詞になっているにも
かかわらず、
名詞+"です"で「の」+「です」がマッチしてしまうのはおかしいので、
マッチした際に後の品詞を固定するような演算子を付けるといいかも。
この手では
「しろいはな」
は「白井」の方が先に名詞+"は"でマッチすれば「は」は助詞になってしまい、
「白い」がマッチすればそうならない、これは単語の優先順位によって
「白い」の方をとるようにすればよいと思う。
形容動詞の語幹という活用形を作る?

--(8/21)
wordseq.cのコメント/ドキュメントを書かないといかん。

--(8/20)
しょうもないバグをとった。
品詞クラスの定義ファイルの形式を決定しないといけない。
たとえば定義を代入にするか束縛にするか?
@C = @A & @B
@C = @A | @B
などの定義文が考えられる。

--(8/19)
ソース内のグローバル変数にstaticを付けるのを忘れていた。
そのうちソースをEUCにする。

--(8/18)
昨日書いたbi-gramというのは、ある単語と次の単語という組の
出現する確率を評価するものである。
例えば 「名詞 + 'の'」 とか 「終助詞 + バリア 」とかである。
カテゴリーとしては
.単語 "の" など
.品詞 名詞 数詞 形容動詞*連用形 など
.クラス 上の2つのカテゴリーおよびクラスに対して 和積差などをやったもの。

wordsplitのget_left_seq_begin()を書くこと、
全検索モードのところにも取りこむ。(Done)
アルゴリズムのドキュメントを書く。

dic_sessionの意味とAPIを再検討する必要がある。
「この」-「あか」 で +1000にすると
この、あ、か になってしまう、これは「この」を決定する時にはこのルールは
使用されるが、「あ、、」を決定する際には使用されないからである。

--(8/17)
bi-gramによって単語の接続を評価する。src/wordseq.[ch]の追加。
その前に品詞の分類を決定しないといけない。
テーブルには 
品詞 * 品詞
単語 * 品詞
品詞 * 単語
このテーブルはとりあえず、ソースの中に埋め込むことにする。
単語を扱うためには単語のグループ化が必要。

--(8/15)
活用表をlibancydic/dic_cache.cからどっかに移すべきかな?
書きおわるまで保留。
か変活用は保留
cannadicの「うてな」のエントリは不十分だ。
句読点および文末をあらわすバリアを作らんといかん。
活用表は書ききった(か変活用以外)。
~/.ancyを読むようにした。
cannaは接続詞と感動詞を同一にしている。

--(8/14)
文節間の評価の調整は単語の結合だけではなくて、文節の格(みたいなもの)
の相関によっても行える。
「私の」 の次に 「名前は」があると、「渡志野」の場合よりもスコアが高い。

wtype_tをポインタ渡しするかどうかにバラつきがあるが、
この決定はしばらく保留する。

動詞の活用クラスを書いた。いくつか変な特例になっている部分があるので
要調査。
CC_AJも音便型などを要調査
CC_AV(形容動詞)は名詞でもあるのでやっかい
Cannaは助詞、助動詞を辞書に持ってない。
か行5段の活用表を作った。
が行5段の活用表を作った。
Canna辞書には#N01が無い?「千」が変換できない?

--(8/12)
同音異義語の多い単語は頻度よりも結合情報に従い、
そうでない単語は頻度に従う。
「あ、、、」というような単語でない文字列が右に付随するようなものを
segsplitで処理するようにした。
基本辞書の形式が古かった、ついでにJISだった。
get_nth_dic_ent_freq()の中身を書くこと。(書いた)

評価を行わないといけないところは、
.単語境界の設定。
.文節境界の設定。
.候補の評価(文節内と文節間)。

「あかい」を検索する際には「あかい」のエントリを確保する。
「あか」 という形容詞活用の語幹があればそのエントリに追加する。

TODO cache_get_seq_entでsdic_fill_seq_ent_by_xstrで一つもエントリが
追加されなければddic中のエントリも削除して、NULLを返さないといけない。(done)

--(8/11)
品詞
.動詞
.名詞
.接続詞
.形容詞
.副詞
助詞、形容動詞

活用形の列挙をする。
活用のことを英語でconjugationというらしい。
環境変数を使うといろいろとわけのわからんことになるので、
環境変数を使うことはあんまり考えず、
~/.ancyを設定ファイルとする。
conf.cとconf.hを作った。

--(8/10)
wtype_tの構造の草案。
.その文字列の活用形
.原形の活用
.品詞
.品詞サブタイプ
ddicのtrieは無駄に複雑なので、線型探索にした。
ハッシュぐらいは追加する。
xchar.hはEUCにした。

--(8/9)
xchar.hを作成、TODO EUCにする。(した8/10)

--(8/7)
サン=テグジュペリの「夜間飛行」を読みながら文節の構成を考えた。
括弧開きの類は後の文節の一部として扱い、括弧閉じや句読点の類は
前の文節の一部として扱う。
「なんとか会社」は音便が入って「なんとかがいしゃ」になる。
「じま」島 じゅっ 「10」 など。
cannadicは「かいしゃ」と「がいしゃ」のエントリを持つ
「がいしゃにのる」とか変換して「会社に乗る」と間抜けだが、
しかたないです。MS-IMEも「がいしゃ」->「会社」を候補に出してきた。

--(8/6)
split_ent(文節の単語への切り分けの入った構造体)中の
単語のボーダーのmarkは文字の右側についているが、
contextの場合は左にmarkをつけている、これは一貫性が無い。(直した8/10)

--(8/5)
xstrcatを追加、

--(8/1)
候補の列挙部を若干書き足した。

--(7/31)
WnnとCannaを読んでみたが、意味不明な部分が多すぎだが
それ以上に略語が多い、Ancyはそんなことが無いように
プログラムのドキュメントを十分に追加するつもり。

--(7/30)
文節とその中の単語境界を与えられた時の候補の列挙の戦略。
主要な単語を決定するその単語の全候補に対して前後の単語を
決定する。

--(7/24)
メモ 「わたしのなまえはなかのです」を変換した際に
 辞書キャッシュへのhitは300回missは100回ほど。

--(7/22)
辞書エントリの番号と単語の番号のずれは直した。
なんか辞書のエントリの部分が冗長かつparseが面倒そうだが
まあ良いか、、
libancydicのTODOを書いておく
,活用形の処理(a)
,複数セッションの同時処理の効率化(a)
,学習機能(b)
,設定ファイルの処理(a)
,相関辞書(b)
,辞書ファイルのコンパクト化(b)
a,bの2段階で強化する予定。

--(7/21)
segment(文節)関係のモジュールの構成を整理した。
今のsegexpandは
a,短い文節はきちんと処理できる
b,長くて意味不明な文節は適切に処理を切り上げる
ということになっているが、
長い数字などの文節をきちんとやる保証をする必要がある。
composeの際には単語ボーダーを設定されたsegmentが渡されるが、
この単語の一つをkeywordとして、全候補を出力する。
それ以外の単語については適当。
辞書エントリの番号と単語の番号がずれとる。

--(7/17)
segcompose.c、segcompose.h、segment.hを追加した
context.cからcompose_segmentが呼び出され、
compose_segmentからexpand_segmentを呼ぶことにより
分割候補が出力され、その候補それぞれに対して変換
候補を割当てる。

--(7/14)
segcompose.cをsegexpand.cに名前を変えた。
A*みたいな凝った方法を使う必要は無いのかもしれない、
あるのかもしれない、わからんので使っている。
とりあえず、文節の分割っぽいことはできるようになった。
次には候補の割り当てをするので、辞書ライブラリに
辞書エントリを書く必要がある。

--(7/13)
ST_WORDPARTを除去、あるひらがな文字列を与えた際にそれが
なんらかの単語の部分であるかどうかを得る手段はなくなった。
新形式の辞書の検索を書き終った、次はこれを組込む。組み込んだ。
次はsputxchar,sputxstrを書く。

--(7/12)
新形式の辞書の読み込みをコーディング中、、

--(7/11)
segmentのリサイズを書いた。
word_splitterの未知の文字に対する処理にバグ発見。

--(7/10)
旧形式のsdicを作る部分を消した。
次はsdicの読み込みを新しい形式に対応させる。
sdicの読み込みを作業中。

--(7/9)
新しいmkancydicを少し書いた、indexは約400kと以前の1/6まで小さくなった。
あとは辞書エントリとかを書く。
segcomposeを少し書いた。

--(7/8)
候補情報中にその候補の字面だけではなくどの辞書エントリを使用したの
かというような情報を持つ必要がある。このためには今の辞書のロックの方法は
まずい。 、、ので直した。
それからcannadic-0.91で辞書の形式が変更されたので、この機会に辞書の
書き直しのwork aroundを開始する。

--(7/7)
変換エンジンのパイプラインが見えてきたので、全貌をメモしておく。
1,単語の境界を設定する wordsplit
2,設定された単語の境界から文節の境界を設定する segsplit
3,設定された文節から候補を作り出す segcompose
  この際には1で設定した単語の境界は無視して再び単語境界の
  候補を列挙する。
(4),前後を見て、候補の評価値を変動させる。
5,候補をソートする。

--(7/6)
lock_dict,unlock_dictを辞書ライブラリに追加した。
segmentのリサイズを若干書いた

--(6/29)
「なまえはなかのです」は
「なまえ、はなか、の、、」もしくは
「なま、えはな、かの」の2通りがある
1単語目の長さにバイアスをかけると前者を選択できる。

--(6/28)
まったく適当な文節切りを書いた、
それから文節の伸縮のインターフェースを書き始めている。

--(6/25)
少し基本辞書を書いた

--(6/24)
adverb副詞
aj形容詞
cj接続詞
etcその他?
kk団体名
name人名
noun名詞
pre接頭語
suc接尾語
tankan漢字
verb動詞

--(6/23)
とりあえず
助詞+助詞というシーケンスは減点
ははは (母は)
はは (歯は)
がきちんと区別できるかな?
fill_dic_entを少し書き足した。

--(6/21)
sdic.cを若干クリーンアップした、次は辞書のエントリを実際に読みこむ部分
fill_dic_entを書く。

--(6/20)
sdicの構造は以下の3つに分類できる。
 trie tree 辞書にある文字列をすべてtrie treeのノードとしている
 index table  trie treeのノードから辞書エントリを引くためのテーブル
 dic entry 辞書エントリ、現時点では変換後の文字列、頻度、品詞が入っている

--(6/19)
辞書のキャッシュを書きはじめた。

--(6/18)
それから、昨日書いていた。テーブルを書いた。
あるシーケンスはテーブルのインデックスといくつの辞書エントリを
持つかという情報を保持し、そのインデックスをもとにテーブルを引くと
辞書エントリ中のインデックスが獲得できるというしかけになっている。
これで活用とかも扱える。
cannaの辞書には助詞が無い。

--(6/17)
品詞情報の出力以外は書き終ったが、辞書には語幹しか書いてないので
ちょっと困った。
ツリーのノードと辞書のエントリの間に一段テーブルを入れようと思う。
その前にフロントエンドをなんとか書こうと思う。
INSTALLを少し書いた。
記念すべき初の単語切り
せっかく、だから、おれ、はこ、のあ、かの、とびら、を、えらぶ、ぜ

--(6/14)
sdicのファイル構造を悩んだりしていたけど、シェアードライブラリ(DLL)に
するという手でごまかした、先日書いたmmapとかは抹殺してdlopenとか
を使うことにする。
あいかわらずsdicとddicの関係は決めれないが、最初は学習無しの変換
エンジンでいいでしょう。

--(6/11)
mmapの最初の方を書いた。
sdicとddicの関係について悩んでいるが、プロセスの単一の
インスタンスで複数のユーザの要求に応えるのは面倒かつ
あんまり必要そうでは無いのでやめる。
いざとなればlibancydic全面書きかえをする。
TODO sdic_node::nr_dicentを書く

--(6/8)
昨日付けわすれていた頻度情報の読み込みを書きました。
ddicのセーブの部分を大体書きました。あとは読みエントリに
辞書エントリのオフセットを書くだけです。現時点でファイルサイズは
4MBぐらいになってそのうち1.5ぐらいがインデックスです。

--(6/7)
今日は辞書のテキストファイルから一行をパーズしてddicに追加する関数を
書きました。
さて、include以下にあるヘッダファイルの説明をします。
include以外に置かれたヘッダと違ってこれらのヘッダは
ライブラリのユーザ,libancy,libancydicの3つのうちいずれか
2つによって使用されます。
ancy.h ライブラリのユーザ IMEなどが使うインターフェースを定義しています。
 ancy_context_tによって変換途中の内容をあらわしていて、文字列のセット、
 変換結果の取得などが可能です。
dic.h
 ひらがな(あるいは変換もとの文字、数字などを含む)の列から内部の構造体を
 取りだすために使用します。
wtype.h
 単語の品詞を意味するwtype_tを定義しています。
xstr.h
 Cの普通の文字列の扱いでは、文字ごとにバイト数が変ったりしてやっかいなので
 すべての文字をxcharという型として扱い、文字列はxcharの列へのポインタと
 文字列の長さを持った構造体を用意しています。
 xstr.hではこれらに関わるデータを定義しています。

--(6/3)
nr_はNumbeRofのつもりです、Linuxのカーネルの慣習のようです。
ものの数を表現する変数の名前などにつかっています。
今日はddicをsdicとしてsaveするためのプログラムを若干書きはじめました。
今のところは辞書形式がddicとsdicの二通りなのですが、もし
3種以上に増えることがあるならば、オブジェクト指向的なディスパッチを
書かないといけないかもしれません、とりあえず、現在のところはsdicなんとか
という関数はsdicの関数というように関数の名前で分けています。

--(6/2)
*わかりにくいかもしれませんが、グローバル変数にはg_という
プレフィクスを付けるようにしています。
*ヘッダファイルの話
ヘッダファイルは同じモジュール間で情報を共有するためのものと、
モジュールの外に公開する情報を示すためのものがあります
現在のancyの実装では1モジュールはたいがい1ソースに収まっているので
後者のヘッダファイルしかありません。
どうやって切り替え、共存していくのでしょうか?
*スレッドの話
ancyはリエントラントには作ってないので、ライブラリのエントリでは
ロックをかけるようなコードを書いた方が良いけど、それはまだ先
それからヘッダはC++からでもリンクできるようなお馴染の文を
追加しないといけない。
*wordsplitとsegsplitのメモリ解放の話。
はいったときにすべきか出る時にすべきか?
*(5/31)にwordsplitterの後半と前半のやりかたを統合すべし
と書いたが、それはすでにやった。
別の問題としてsegsplitterではモジュールの分離性を高めるために
処理をする前にcontextのデータを全部ローカルにコピーするように
したがwordsplitterにも同様のことが必要

--(6/1)
「にわににわにわとりがいる」を単語で切った時には
「庭」「二羽」というように異なる単語の切り方の候補がでる。
単語の切り方を一通りに仮定するとこのような問題が発生するので
現実的な解決策としては、変換処理を次のような流れでやるとよい
1,単語の区切を探す
2,それを利用して文節の区切を探す
3,単語の区切を削除して、各文節内で単語の境界を切り直す

--(5/31)
wordsplitterを最後まで書いた、
wordsplitterは前半は3単語先まで
後半は全部の可能な切り方を列挙するという方法で
最大の評価のものを選ぶようにした。
次にすべきことは前半の評価法を後半のやりかたに統合すること
である。

libancydic/に ancymakedic というコマンドを作るようになっている
今はテキスト形式の辞書ファイルを食わせて、
そのtrie treeを表示するコマンドであるが、近日中に読んだファイルを
sdicとして出力するコマンドにする予定である。

--(5/30)
辞書のスケーラビリティ向上のために、複数の辞書ファイルを持つようにした。
いままでのdicなんとかをddicという名前に変えた。
 ddic dynamic dictionary メモリを多く使う、検索が速い、書換えることができる
 sdic static dictionary ファイルイメージをmmapして使う(未実装)
libancydic/にancymakedicというコマンドを作ることにした。
これはテキスト形式の辞書をddicとして読み込み、sdicとして出力する
プログラムである。

--(5/28)
ワードスプリッタ(単語に切るやつ)を半分ぐらい書いた、
今のところ、単語の長さの和を最大にするような切り方を
するようにしている(単語の数を最小)。

--(5/28)
シェアードライブラリにした、
実行する際には
$ cd src
$ ./test_ancy
とやってください。

--(5/26)
src/以下のファイル
src/main.c      このライブラリを使う人が呼び出した関数を内部の形式に
                変換して実行する。例えばancy.hで定義されたancy_context_t
                は実は内部ではstruct ancy_contextであるといったような
                ものである。
src/context.c   contextはある文字列に対して単語、文節の区切り、候補などの情報を
                もつ。
src/wordsplit.c ひらがなの文字列を単語に切る
src/test_main.c ライブラリの試しなど(このソースはライブラリには含まれない)

--(5/26)
ancyのバージョンは例えば今日ならば526というように
日付を利用している。

--(5/19)
ancyには以下のディレクトリがある。
src/
 辞書管理以外のプログラムおよびtest_main.c
include/
 ancy.hはancyを使用するユーザのプログラムによってインクルードされる
その他は辞書ライブラリとのインターフェース
libancydic/
 辞書の管理を行う。