@kensio/pinyinjs 1.2.2 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +116 -3
- package/NOTICE +9 -0
- package/README.md +58 -9
- package/data/core.entries +1 -13
- package/data/core.freq +0 -0
- package/data/core.keys +1 -13
- package/data/full.entries +141 -131
- package/data/full.freq +0 -0
- package/data/full.keys +167 -157
- package/data/manifest.json +24 -9
- package/data/script.map +26543 -0
- package/data/standard.entries +1 -22
- package/data/standard.freq +0 -0
- package/data/standard.keys +2 -23
- package/dist/cli/arguments.d.ts +72 -0
- package/dist/cli/arguments.d.ts.map +1 -1
- package/dist/cli/arguments.js +110 -0
- package/dist/cli/arguments.js.map +1 -1
- package/dist/cli/commands.d.ts +11 -0
- package/dist/cli/commands.d.ts.map +1 -1
- package/dist/cli/commands.js +77 -1
- package/dist/cli/commands.js.map +1 -1
- package/dist/cli/environment.d.ts.map +1 -1
- package/dist/cli/environment.js +2 -1
- package/dist/cli/environment.js.map +1 -1
- package/dist/cli/help.d.ts.map +1 -1
- package/dist/cli/help.js +21 -0
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/run.d.ts +8 -0
- package/dist/cli/run.d.ts.map +1 -1
- package/dist/cli/run.js +11 -1
- package/dist/cli/run.js.map +1 -1
- package/dist/decode/convert.d.ts +10 -0
- package/dist/decode/convert.d.ts.map +1 -1
- package/dist/decode/convert.js +12 -0
- package/dist/decode/convert.js.map +1 -1
- package/dist/decode/script.d.ts +108 -0
- package/dist/decode/script.d.ts.map +1 -0
- package/dist/decode/script.js +195 -0
- package/dist/decode/script.js.map +1 -0
- package/dist/dictionary/dictionary.d.ts +13 -1
- package/dist/dictionary/dictionary.d.ts.map +1 -1
- package/dist/dictionary/dictionary.js +18 -4
- package/dist/dictionary/dictionary.js.map +1 -1
- package/dist/dictionary/merge.d.ts.map +1 -1
- package/dist/dictionary/merge.js +23 -3
- package/dist/dictionary/merge.js.map +1 -1
- package/dist/dictionary/script-tables.d.ts +17 -0
- package/dist/dictionary/script-tables.d.ts.map +1 -0
- package/dist/dictionary/script-tables.js +275 -0
- package/dist/dictionary/script-tables.js.map +1 -0
- package/dist/dictionary/source.d.ts +18 -0
- package/dist/dictionary/source.d.ts.map +1 -1
- package/dist/dictionary/source.js +20 -0
- package/dist/dictionary/source.js.map +1 -1
- package/dist/format/slug.d.ts +156 -0
- package/dist/format/slug.d.ts.map +1 -0
- package/dist/format/slug.js +0 -0
- package/dist/format/slug.js.map +1 -0
- package/dist/index.d.ts +10 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/dist/script/conversion.d.ts +102 -0
- package/dist/script/conversion.d.ts.map +1 -0
- package/dist/script/conversion.js +194 -0
- package/dist/script/conversion.js.map +1 -0
- package/dist/script/glyphs.d.ts +95 -0
- package/dist/script/glyphs.d.ts.map +1 -0
- package/dist/script/glyphs.js +236 -0
- package/dist/script/glyphs.js.map +1 -0
- package/dist/sources/opencc.d.ts +32 -0
- package/dist/sources/opencc.d.ts.map +1 -0
- package/dist/sources/opencc.js +50 -0
- package/dist/sources/opencc.js.map +1 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -9,8 +9,121 @@ which a dictionary rebuild can change, and the artifact format under `data/`.
|
|
|
9
9
|
|
|
10
10
|
## Unreleased
|
|
11
11
|
|
|
12
|
+
### Fixed
|
|
13
|
+
|
|
14
|
+
- **240 dictionary entries could not be looked up at all.** Recognising Hong
|
|
15
|
+
Kong glyph forms on the lookup path means a key written in a form the path
|
|
16
|
+
normalises _away from_ can never be found, and the merge derived 繁體 forms
|
|
17
|
+
per word from Unihan's variant lists with no single standard behind them — so
|
|
18
|
+
it wrote 裏 where the corpus overwhelmingly writes 裡, and 上樑, 中峯 and 义藴
|
|
19
|
+
became keys nothing could reach. The merge now derives canonical glyph forms,
|
|
20
|
+
and keys a headword's canonical spelling alongside it where the phrase corpus
|
|
21
|
+
wrote one with a 繁體 variant. **No key is now unreachable**, and Hong Kong
|
|
22
|
+
spellings resolve slightly better than before: 5,499 of the 9,978 keys with a
|
|
23
|
+
distinct Hong Kong form, against 5,439.
|
|
24
|
+
|
|
25
|
+
Two things had to be got right alongside it. The evidence for "简体 writes
|
|
26
|
+
this character" comes from CC-CEDICT entries whose two columns differ, not
|
|
27
|
+
from the phrase corpus, which is nominally 简体 but carries 峯, 藴 and 枱 of
|
|
28
|
+
its own — counting it cut the table from 50 mappings to 32 and stopped Hong
|
|
29
|
+
Kong text converting at all. And a 繁體 form differing from its 简体 one only
|
|
30
|
+
by glyph normalisation is not evidence about script, or the alias key would
|
|
31
|
+
put that entry's 简体 characters into the 繁體-only set, which is how 发
|
|
32
|
+
briefly stopped being 简体-only.
|
|
33
|
+
|
|
34
|
+
`toScript` drops the pass that was papering over this. Key counts move:
|
|
35
|
+
723,149 for `full`, 97,997 for `standard`, 16,975 for `core`.
|
|
36
|
+
|
|
12
37
|
### Added
|
|
13
38
|
|
|
39
|
+
- **`pinyinjs script`,** script conversion at the command line, with `--to` for
|
|
40
|
+
the target and `--from-script` where the text is too short for detection to
|
|
41
|
+
tell. The lines carry the converted text and nothing else so it pipes;
|
|
42
|
+
`--json` carries the per-character evidence and what was uncertain. Also a
|
|
43
|
+
[script conversion](docs/script-conversion/) page, which the README and the
|
|
44
|
+
docs index now point at — `toScript` shipped with one row in the API table
|
|
45
|
+
and nothing a reader would find.
|
|
46
|
+
|
|
47
|
+
- **`toScript`,** 简体 ↔ 繁體 conversion. 我们后来发现了头发问题 is
|
|
48
|
+
我們後來發現了頭髮問題. The reading is the evidence, in both directions, and it
|
|
49
|
+
is what nothing else in this space has: 发 is 發 or 髮 and only `fà` tells them
|
|
50
|
+
apart; 干 is 幹, 乾 or 干; 乾 stays 乾 in 乾隆 and simplifies to 干 in 乾燥.
|
|
51
|
+
Every other converter resolves these from a phrase table alone. This one
|
|
52
|
+
segments with the lattice and reads the result, so it generalises to words no
|
|
53
|
+
phrase table lists.
|
|
54
|
+
|
|
55
|
+
Evidence is taken strongest first — a word some source wrote in both scripts,
|
|
56
|
+
then the character at the reading it was decoded with, then the character's
|
|
57
|
+
commonest form — and `toScriptPieces` reports which of those settled every
|
|
58
|
+
character. `isUncertainChoice` marks the last one, the only case that is a
|
|
59
|
+
guess: 下面 is a surface or a bowl of noodles and nothing here can tell, so it
|
|
60
|
+
says so rather than picking silently. Over the gold corpus 97.7% of characters
|
|
61
|
+
are locked and 1.5% are guesses.
|
|
62
|
+
|
|
63
|
+
Targets are BCP-47: `zh-Hans`, `zh-Hant`, `zh-Hant-TW`, `zh-Hant-HK`, with a
|
|
64
|
+
bare `zh-Hant` taking Taiwan. The input script is detected unless `from` names
|
|
65
|
+
it, which matters more than it sounds — plenty of characters are current in
|
|
66
|
+
both scripts, so running 繁體 through the 简→繁 tables would turn 准將 into
|
|
67
|
+
準將.
|
|
68
|
+
|
|
69
|
+
**This is orthography, not translation.** 軟體 and 软件 are different words
|
|
70
|
+
rather than two spellings of one. OpenCC folds that into script conversion
|
|
71
|
+
with `s2twp`; pinyinjs does not.
|
|
72
|
+
|
|
73
|
+
- **`data/script.map`,** the conversion tables, as their own fetchable file:
|
|
74
|
+
282 KB, 96 KB brotli, loaded by `loadScriptTables` only when something asks
|
|
75
|
+
to convert. A caller converting hanzi to pinyin pays nothing for it. The
|
|
76
|
+
character tables alone are right for 99.13% of the 267,639 entries whose two
|
|
77
|
+
scripts differ, and the word exception lists cover the rest.
|
|
78
|
+
|
|
79
|
+
- **`hansOnly` and `hantOnly`,** the character sets `detectScript` has always
|
|
80
|
+
taken and nothing shipped. They ride in the same file.
|
|
81
|
+
|
|
82
|
+
- **Round-trip scoring in `pnpm accuracy`.** 繁→简 is near-deterministic, so
|
|
83
|
+
简→繁→简 has to be the identity for essentially every key — half a million
|
|
84
|
+
cases with no hand-labelling, and every failure a real defect. It reports
|
|
85
|
+
99.6% over the words in use and 99.3% over every key. The reverse trip is
|
|
86
|
+
lossy by design and is reported rather than targeted.
|
|
87
|
+
|
|
88
|
+
- **Hong Kong 繁體 glyph forms are recognised on the lookup path.** Taiwan and
|
|
89
|
+
Hong Kong write the same characters with the same readings and disagree about
|
|
90
|
+
the standard form of 58 of them — 裡 against 裏, 群 against 羣, 麵 against 麪.
|
|
91
|
+
Hong Kong spellings were missing dictionary keys and falling back to
|
|
92
|
+
converting character by character, so 羣眾 and 麪包 read worse than 群眾 and
|
|
93
|
+
麵包 did. The lookup path now normalises 繁體 glyph forms to the Taiwan
|
|
94
|
+
standard the keys are already built from: measured over the 9,833 keys with a
|
|
95
|
+
distinct Hong Kong spelling, 2,358 were already keys and normalisation reaches
|
|
96
|
+
a further 5,439. Only the reading is taken from the normalised form — the
|
|
97
|
+
characters a caller gets back are the ones they wrote. `toCanonicalGlyphs`,
|
|
98
|
+
`toRegionalGlyphs` and the `Region` type are exported for it, and
|
|
99
|
+
SCRIPTS-AND-LOCALES.md carries the reasoning.
|
|
100
|
+
|
|
101
|
+
Nineteen of OpenCC's mappings are deliberately not applied, because the
|
|
102
|
+
variant is a live spelling rather than a regional one. Six are current 繁體 —
|
|
103
|
+
台 appears 164 times in CC-CEDICT against 臺's 208 — and thirteen are current
|
|
104
|
+
**简体**, because the PRC simplification adopted the same 新字形 conventions
|
|
105
|
+
Hong Kong did: 着, 温, 脱, 户, 税, 卧, 悦, 兑, 葱, 幺, 棱, 檐, 痹. Normalising
|
|
106
|
+
those would have rewritten 简体 text, and 走着 `zǒuzhe` is the case that
|
|
107
|
+
caught it.
|
|
108
|
+
|
|
109
|
+
- **OpenCC as a data source.** Its 简体 ↔ 繁體 character tables and the Taiwan
|
|
110
|
+
and Hong Kong variant tables, Apache-2.0, attributed in `NOTICE`. The glyph
|
|
111
|
+
tables are held in `src/script/glyphs.ts` as code rather than shipped as an
|
|
112
|
+
artifact, since 120 mappings do not justify a download and they have to work
|
|
113
|
+
before any dictionary has loaded; `pnpm build:data` re-derives them from
|
|
114
|
+
OpenCC and fails the build if the two have drifted.
|
|
115
|
+
|
|
116
|
+
- **`slug`,** hanzi to a URL-safe slug: 我想学中文。 is
|
|
117
|
+
`wo3-xiang3-xue2-zhong1wen2`. Built on the decode rather than on a finished
|
|
118
|
+
string, which is the whole point of it — 银行 is `yin2hang2` and not
|
|
119
|
+
`yin2xing2`, the separators fall on the word boundaries 分词连写 found, and
|
|
120
|
+
西安 keeps its 隔音符号 as a break so a toneless slug is `xi-an` rather than
|
|
121
|
+
`xian`, which is a different word. Tones are written by default because
|
|
122
|
+
dropping them collides, and `hash` puts a short hash of the _hanzi_ on the end
|
|
123
|
+
for the homophones tones cannot separate: 权利 and 权力 are both `quan2li4`.
|
|
124
|
+
The options generalise it past URLs to search keys and identifiers, which the
|
|
125
|
+
[slug page](docs/slug/) tabulates. `pinyinjs slug` at the command line.
|
|
126
|
+
|
|
14
127
|
- **`TEACHING_JIAO` and `COUNTED_MEASURE`,** two more lattice rules, and
|
|
15
128
|
`QUANTITY_CHARACTERS`, the 汉字 a quantity is written with that the second of
|
|
16
129
|
them asks about. See the fixes below for what they do and what they measure.
|
|
@@ -225,14 +338,14 @@ decoder internals and the build pipeline.
|
|
|
225
338
|
|
|
226
339
|
### Accuracy at 1.0.0
|
|
227
340
|
|
|
228
|
-
Over the
|
|
341
|
+
Over the 124-case gold corpus, which is committed to the repository rather than
|
|
229
342
|
to the published package, and scored by `pnpm accuracy`:
|
|
230
343
|
|
|
231
344
|
| | lattice | greedy baseline |
|
|
232
345
|
| ---------------- | --------: | --------------: |
|
|
233
|
-
| exact match | **97.
|
|
346
|
+
| exact match | **97.6%** | 88.7% |
|
|
234
347
|
| reading accuracy | 99.7% | 98.3% |
|
|
235
|
-
| spacing (F1) | **99.8%** | 96.
|
|
348
|
+
| spacing (F1) | **99.8%** | 96.4% |
|
|
236
349
|
|
|
237
350
|
Every figure in that table is asserted against the scorer by
|
|
238
351
|
`src/changelog.test.ts`, because a number nothing executes goes stale, which is
|
package/NOTICE
CHANGED
|
@@ -32,6 +32,15 @@ Source: https://raw.githubusercontent.com/fxsjy/jieba/master/jieba/dict.txt
|
|
|
32
32
|
Licence: MIT, though the dictionary's own provenance is not documented upstream; recorded here as an accepted unknown
|
|
33
33
|
Provides: word frequencies and the part-of-speech tags that mark proper nouns
|
|
34
34
|
|
|
35
|
+
## OpenCC
|
|
36
|
+
|
|
37
|
+
Source: https://raw.githubusercontent.com/BYVoid/OpenCC/master/data/dictionary/STCharacters.txt
|
|
38
|
+
https://raw.githubusercontent.com/BYVoid/OpenCC/master/data/dictionary/TSCharacters.txt
|
|
39
|
+
https://raw.githubusercontent.com/BYVoid/OpenCC/master/data/dictionary/TWVariants.txt
|
|
40
|
+
https://raw.githubusercontent.com/BYVoid/OpenCC/master/data/dictionary/HKVariants.txt
|
|
41
|
+
Licence: Apache-2.0
|
|
42
|
+
Provides: the 简体 ↔ 繁體 character tables, and the Taiwan and Hong Kong glyph form tables that separate 裡 from 裏 and 群 from 羣
|
|
43
|
+
|
|
35
44
|
## Comparison of Standard Chinese transcription systems (Wikipedia)
|
|
36
45
|
|
|
37
46
|
Source: https://en.wikipedia.org/wiki/Comparison_of_Standard_Chinese_transcription_systems
|
package/README.md
CHANGED
|
@@ -29,6 +29,12 @@ Wǒ yào qù Běijīng.
|
|
|
29
29
|
$ pinyinjs convert --notation numbers 银行
|
|
30
30
|
yin2hang2
|
|
31
31
|
|
|
32
|
+
$ pinyinjs slug 我想学中文。
|
|
33
|
+
wo3-xiang3-xue2-zhong1wen2
|
|
34
|
+
|
|
35
|
+
$ pinyinjs script 我们后来发现了头发问题 --to zh-Hant
|
|
36
|
+
我們後來發現了頭髮問題
|
|
37
|
+
|
|
32
38
|
$ pinyinjs explain 银行
|
|
33
39
|
银行 yínháng
|
|
34
40
|
yín locked
|
|
@@ -53,6 +59,8 @@ běijīng běijīng ㄅㄟˇ ㄐㄧㄥ pei³-ching¹ běijīng beeij
|
|
|
53
59
|
| ------------ | --------------------------------------------------- |
|
|
54
60
|
| `convert` | hanzi to pinyin |
|
|
55
61
|
| `html` | the same, as HTML |
|
|
62
|
+
| `slug` | hanzi to a URL-safe slug |
|
|
63
|
+
| `script` | 简体 ↔ 繁體 conversion |
|
|
56
64
|
| `explain` | each syllable, how settled it was, and what it beat |
|
|
57
65
|
| `lookup` | what the dictionary holds for a word |
|
|
58
66
|
| `syllable` | take written pinyin apart |
|
|
@@ -177,7 +185,6 @@ convert(dictionary, text, { notation: "numbers", capitals: "none" });
|
|
|
177
185
|
| `punctuation` | `"latin"` | `"latin"`, `"keep"` |
|
|
178
186
|
| `grouping` | `true` | `false` turns off GB/T 16159 word spacing |
|
|
179
187
|
| `numbers` | `"read"` | `"keep"` leaves every digit as it was written |
|
|
180
|
-
| `numbers` | `"read"` | `"keep"` leaves every digit as it was written |
|
|
181
188
|
| `sandhi` | `{ yiBu: true, thirdTone: false }` | `{ yiBu?: boolean; thirdTone?: boolean }` |
|
|
182
189
|
|
|
183
190
|
```ts
|
|
@@ -527,16 +534,57 @@ Third-tone sandhi is off by default: standard orthography writes 你好 as
|
|
|
527
534
|
|
|
528
535
|
## Scripts and locales
|
|
529
536
|
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
537
|
+
Three axes, not one. Taiwan writes 繁體 with `zh-TW` readings, but mainland
|
|
538
|
+
editions of classical texts use 繁體 with `zh-CN` readings, and Singapore uses
|
|
539
|
+
简体.
|
|
540
|
+
|
|
541
|
+
| Axis | Values | What differs |
|
|
542
|
+
| ----------- | ----------------- | ------------------------------- |
|
|
543
|
+
| Script | `Hans` / `Hant` | which characters are written |
|
|
544
|
+
| Glyph forms | `TW` / `HK` | which 繁體 standard writes them |
|
|
545
|
+
| Locale | `zh-CN` / `zh-TW` | how they are read |
|
|
546
|
+
|
|
547
|
+
Both scripts are dictionary keys, so only the locale is an option to pass. Hong
|
|
548
|
+
Kong's 繁體 forms are recognised on the way in, so 羣眾 and 麪包 read exactly as
|
|
549
|
+
群眾 and 麵包 do.
|
|
550
|
+
|
|
551
|
+
## Simplified and traditional
|
|
552
|
+
|
|
553
|
+
`toScript` converts between the scripts, and the reading is what makes it
|
|
554
|
+
accurate. Simplification merged distinct characters; the reading un-merges them.
|
|
555
|
+
|
|
556
|
+
```ts
|
|
557
|
+
import { loadScriptTables, toScript } from "@kensio/pinyinjs";
|
|
558
|
+
|
|
559
|
+
const tables = await loadScriptTables(source);
|
|
560
|
+
|
|
561
|
+
toScript(dictionary, tables, "我们后来发现了头发问题", { to: "zh-Hant" });
|
|
562
|
+
// "我們後來發現了頭髮問題"
|
|
563
|
+
|
|
564
|
+
toScript(dictionary, tables, "头发", { to: "zh-Hant" }); // "頭髮", tóufà
|
|
565
|
+
toScript(dictionary, tables, "出发", { to: "zh-Hant" }); // "出發", chūfā
|
|
566
|
+
```
|
|
567
|
+
|
|
568
|
+
发 is 發 or 髮 and nothing about the character says which. Every other converter
|
|
569
|
+
works from phrase tables alone, so it is right about the words on the list and
|
|
570
|
+
guessing past it.
|
|
571
|
+
|
|
572
|
+
It runs both ways — 乾燥 is `gānzào` and simplifies to 干燥, while 乾隆 is
|
|
573
|
+
`Qiánlóng` and stays 乾隆 — and it targets a region, because there is no
|
|
574
|
+
region-free 繁體:
|
|
575
|
+
|
|
576
|
+
```ts
|
|
577
|
+
toScript(dictionary, tables, "面包", { to: "zh-Hant-TW" }); // "麵包"
|
|
578
|
+
toScript(dictionary, tables, "面包", { to: "zh-Hant-HK" }); // "麪包"
|
|
579
|
+
```
|
|
533
580
|
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
581
|
+
`toScriptPieces` reports what settled each character, and which were guesses:
|
|
582
|
+
下面 is a surface or a bowl of noodles, both `xiàmiàn`, and it says so rather
|
|
583
|
+
than picking silently. The tables load separately from the dictionary, so
|
|
584
|
+
converting hanzi to pinyin costs nothing for them.
|
|
538
585
|
|
|
539
|
-
|
|
586
|
+
This is orthography and not translation — 软件 becomes 軟件, never 軟體. See
|
|
587
|
+
[script conversion](docs/script-conversion/).
|
|
540
588
|
|
|
541
589
|
## API
|
|
542
590
|
|
|
@@ -546,6 +594,7 @@ Both scripts are dictionary keys, so only the locale is an option to pass.
|
|
|
546
594
|
| `convert(dictionary, text, options?)` | hanzi → pinyin |
|
|
547
595
|
| `convertPieces(dictionary, text, ...)` | the same, per syllable, with confidence |
|
|
548
596
|
| `convertToHtml(dictionary, text, ...)` | the same, as HTML |
|
|
597
|
+
| `slug(dictionary, text, options?)` | hanzi → a URL-safe slug |
|
|
549
598
|
| `joinPieces(pieces)` / `toHtml(pieces)` | render pieces |
|
|
550
599
|
| `isUncertain(confidence)` | was this syllable a guess? |
|
|
551
600
|
| `dictionary.lookup / hasPrefix / readingsOf` | query the dictionary |
|
package/data/core.entries
CHANGED
|
@@ -714,7 +714,6 @@ liao2 n
|
|
|
714
714
|
qi1 zg
|
|
715
715
|
cheng1 zg
|
|
716
716
|
chan2 zg
|
|
717
|
-
wei3 wei4 j
|
|
718
717
|
ji1
|
|
719
718
|
bo1
|
|
720
719
|
hui4 zg
|
|
@@ -1771,7 +1770,6 @@ nie4 zg
|
|
|
1771
1770
|
xuan1 v
|
|
1772
1771
|
liang4 zg
|
|
1773
1772
|
sang4 sang1
|
|
1774
|
-
chi1 v
|
|
1775
1773
|
qiao2
|
|
1776
1774
|
yan4
|
|
1777
1775
|
dan1 chan2,shan4
|
|
@@ -5081,7 +5079,6 @@ mi3 g
|
|
|
5081
5079
|
chu4 zg
|
|
5082
5080
|
ge2 zg
|
|
5083
5081
|
di2 ng
|
|
5084
|
-
xu4 ns p
|
|
5085
5082
|
jiao4 zg
|
|
5086
5083
|
min3 ag
|
|
5087
5084
|
jiu4 v
|
|
@@ -7133,6 +7130,7 @@ cui3 zg
|
|
|
7133
7130
|
ti2 zg
|
|
7134
7131
|
yang4 zg
|
|
7135
7132
|
jiang1
|
|
7133
|
+
cong2
|
|
7136
7134
|
ying3
|
|
7137
7135
|
xiu3 zg
|
|
7138
7136
|
shu4 zg
|
|
@@ -10024,7 +10022,6 @@ quan3
|
|
|
10024
10022
|
qi2 nr
|
|
10025
10023
|
zhun3
|
|
10026
10024
|
qian4
|
|
10027
|
-
xian4 n
|
|
10028
10025
|
shou4
|
|
10029
10026
|
wei2 zg
|
|
10030
10027
|
qing4 zg qi3,qing3
|
|
@@ -10179,7 +10176,6 @@ hui4
|
|
|
10179
10176
|
xi4
|
|
10180
10177
|
se4 zg
|
|
10181
10178
|
jian3
|
|
10182
|
-
jiang1 n
|
|
10183
10179
|
huan2 zg
|
|
10184
10180
|
zao3
|
|
10185
10181
|
xie4 zg
|
|
@@ -10756,7 +10752,6 @@ lie4
|
|
|
10756
10752
|
shan1
|
|
10757
10753
|
ting3
|
|
10758
10754
|
mei2
|
|
10759
|
-
chun2
|
|
10760
10755
|
shen4
|
|
10761
10756
|
qian3 zg
|
|
10762
10757
|
de5 te5
|
|
@@ -12201,7 +12196,6 @@ jie2
|
|
|
12201
12196
|
na4 g
|
|
12202
12197
|
yi4
|
|
12203
12198
|
zhong1 d
|
|
12204
|
-
zhi3 d zhi1
|
|
12205
12199
|
xie2
|
|
12206
12200
|
ren4 zg
|
|
12207
12201
|
qin1 zg
|
|
@@ -12589,7 +12583,6 @@ gao4
|
|
|
12589
12583
|
song4
|
|
12590
12584
|
hui4
|
|
12591
12585
|
shuo1 zg
|
|
12592
|
-
shuo1
|
|
12593
12586
|
chang4 zg
|
|
12594
12587
|
shui2 zg
|
|
12595
12588
|
ke4
|
|
@@ -14155,7 +14148,6 @@ na4
|
|
|
14155
14148
|
e2 zg
|
|
14156
14149
|
jue2
|
|
14157
14150
|
dun4
|
|
14158
|
-
gou1
|
|
14159
14151
|
qian2
|
|
14160
14152
|
ban3
|
|
14161
14153
|
sa4 zg
|
|
@@ -14206,7 +14198,6 @@ fu2
|
|
|
14206
14198
|
yue4
|
|
14207
14199
|
pi1
|
|
14208
14200
|
yang1 zg
|
|
14209
|
-
bo1 ng
|
|
14210
14201
|
gou1 zg
|
|
14211
14202
|
shu4
|
|
14212
14203
|
zheng1
|
|
@@ -14403,7 +14394,6 @@ jian4
|
|
|
14403
14394
|
jian4
|
|
14404
14395
|
si1 ng
|
|
14405
14396
|
zhe3 n
|
|
14406
|
-
zhen1 p
|
|
14407
14397
|
zhong1 zg
|
|
14408
14398
|
zi1 zg
|
|
14409
14399
|
xiu1 zg
|
|
@@ -16107,7 +16097,6 @@ ba4 zg
|
|
|
16107
16097
|
you2 zg
|
|
16108
16098
|
gun3 zg
|
|
16109
16099
|
pi1
|
|
16110
|
-
nian2
|
|
16111
16100
|
tai2
|
|
16112
16101
|
bao4
|
|
16113
16102
|
fu4
|
|
@@ -16722,7 +16711,6 @@ mai4 zg
|
|
|
16722
16711
|
mai4 nr p
|
|
16723
16712
|
chao3
|
|
16724
16713
|
fu1 zg
|
|
16725
|
-
mian4 n mian5
|
|
16726
16714
|
mian4
|
|
16727
16715
|
qu4
|
|
16728
16716
|
qu1 qu2 q qu3
|
package/data/core.freq
CHANGED
|
Binary file
|
package/data/core.keys
CHANGED