@kensio/pinyinjs 1.7.4 → 1.7.6
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/README.md +128 -123
- package/data/full.entries +2595 -2595
- package/data/manifest.json +5 -5
- package/data/script.map +66 -3
- package/dist/accuracy/score-case.d.ts +23 -0
- package/dist/accuracy/score-case.d.ts.map +1 -0
- package/dist/accuracy/score-case.js +63 -0
- package/dist/accuracy/score-case.js.map +1 -0
- package/dist/accuracy/score.d.ts +1 -8
- package/dist/accuracy/score.d.ts.map +1 -1
- package/dist/accuracy/score.js +1 -55
- package/dist/accuracy/score.js.map +1 -1
- package/dist/cli/arguments.d.ts +4 -290
- package/dist/cli/arguments.d.ts.map +1 -1
- package/dist/cli/arguments.js +5 -357
- package/dist/cli/arguments.js.map +1 -1
- package/dist/cli/check-command.d.ts +9 -0
- package/dist/cli/check-command.d.ts.map +1 -0
- package/dist/cli/check-command.js +95 -0
- package/dist/cli/check-command.js.map +1 -0
- package/dist/cli/cli-input.d.ts +49 -0
- package/dist/cli/cli-input.d.ts.map +1 -0
- package/dist/cli/cli-input.js +31 -0
- package/dist/cli/cli-input.js.map +1 -0
- package/dist/cli/command.d.ts +97 -0
- package/dist/cli/command.d.ts.map +1 -0
- package/dist/cli/command.js +40 -0
- package/dist/cli/command.js.map +1 -0
- package/dist/cli/commands.d.ts +7 -110
- package/dist/cli/commands.d.ts.map +1 -1
- package/dist/cli/commands.js +14 -991
- package/dist/cli/commands.js.map +1 -1
- package/dist/cli/convert-command.d.ts +6 -0
- package/dist/cli/convert-command.d.ts.map +1 -0
- package/dist/cli/convert-command.js +52 -0
- package/dist/cli/convert-command.js.map +1 -0
- package/dist/cli/environment.d.ts +1 -1
- package/dist/cli/environment.d.ts.map +1 -1
- package/dist/cli/explain-command.d.ts +6 -0
- package/dist/cli/explain-command.d.ts.map +1 -0
- package/dist/cli/explain-command.js +40 -0
- package/dist/cli/explain-command.js.map +1 -0
- package/dist/cli/explain-syllable.d.ts +10 -0
- package/dist/cli/explain-syllable.d.ts.map +1 -0
- package/dist/cli/explain-syllable.js +70 -0
- package/dist/cli/explain-syllable.js.map +1 -0
- package/dist/cli/flag-help.d.ts +18 -0
- package/dist/cli/flag-help.d.ts.map +1 -0
- package/dist/cli/flag-help.js +78 -0
- package/dist/cli/flag-help.js.map +1 -0
- package/dist/cli/flag-lists.d.ts +49 -0
- package/dist/cli/flag-lists.d.ts.map +1 -0
- package/dist/cli/flag-lists.js +58 -0
- package/dist/cli/flag-lists.js.map +1 -0
- package/dist/cli/flag-values.d.ts +44 -0
- package/dist/cli/flag-values.d.ts.map +1 -0
- package/dist/cli/flag-values.js +56 -0
- package/dist/cli/flag-values.js.map +1 -0
- package/dist/cli/flags.d.ts +193 -0
- package/dist/cli/flags.d.ts.map +1 -0
- package/dist/cli/flags.js +133 -0
- package/dist/cli/flags.js.map +1 -0
- package/dist/cli/format-options.d.ts +29 -0
- package/dist/cli/format-options.d.ts.map +1 -0
- package/dist/cli/format-options.js +72 -0
- package/dist/cli/format-options.js.map +1 -0
- package/dist/cli/global-help.d.ts +23 -0
- package/dist/cli/global-help.d.ts.map +1 -0
- package/dist/cli/global-help.js +40 -0
- package/dist/cli/global-help.js.map +1 -0
- package/dist/cli/help.d.ts +1 -1
- package/dist/cli/help.d.ts.map +1 -1
- package/dist/cli/help.js +5 -99
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/html-commands.d.ts +13 -0
- package/dist/cli/html-commands.d.ts.map +1 -0
- package/dist/cli/html-commands.js +49 -0
- package/dist/cli/html-commands.js.map +1 -0
- package/dist/cli/info-command.d.ts +7 -0
- package/dist/cli/info-command.d.ts.map +1 -0
- package/dist/cli/info-command.js +39 -0
- package/dist/cli/info-command.js.map +1 -0
- package/dist/cli/lookup-commands.d.ts +10 -0
- package/dist/cli/lookup-commands.d.ts.map +1 -0
- package/dist/cli/lookup-commands.js +101 -0
- package/dist/cli/lookup-commands.js.map +1 -0
- package/dist/cli/match-command.d.ts +11 -0
- package/dist/cli/match-command.d.ts.map +1 -0
- package/dist/cli/match-command.js +76 -0
- package/dist/cli/match-command.js.map +1 -0
- package/dist/cli/number-command.d.ts +12 -0
- package/dist/cli/number-command.d.ts.map +1 -0
- package/dist/cli/number-command.js +89 -0
- package/dist/cli/number-command.js.map +1 -0
- package/dist/cli/options.d.ts +30 -0
- package/dist/cli/options.d.ts.map +1 -0
- package/dist/cli/options.js +54 -0
- package/dist/cli/options.js.map +1 -0
- package/dist/cli/run-command.d.ts +24 -0
- package/dist/cli/run-command.d.ts.map +1 -0
- package/dist/cli/run-command.js +40 -0
- package/dist/cli/run-command.js.map +1 -0
- package/dist/cli/run.d.ts +4 -42
- package/dist/cli/run.d.ts.map +1 -1
- package/dist/cli/run.js +6 -61
- package/dist/cli/run.js.map +1 -1
- package/dist/cli/script-command.d.ts +10 -0
- package/dist/cli/script-command.d.ts.map +1 -0
- package/dist/cli/script-command.js +58 -0
- package/dist/cli/script-command.js.map +1 -0
- package/dist/cli/segment-command.d.ts +11 -0
- package/dist/cli/segment-command.d.ts.map +1 -0
- package/dist/cli/segment-command.js +53 -0
- package/dist/cli/segment-command.js.map +1 -0
- package/dist/cli/slug-command.d.ts +10 -0
- package/dist/cli/slug-command.d.ts.map +1 -0
- package/dist/cli/slug-command.js +28 -0
- package/dist/cli/slug-command.js.map +1 -0
- package/dist/cli/syllable-command.d.ts +14 -0
- package/dist/cli/syllable-command.d.ts.map +1 -0
- package/dist/cli/syllable-command.js +82 -0
- package/dist/cli/syllable-command.js.map +1 -0
- package/dist/cli/system-table.d.ts +12 -0
- package/dist/cli/system-table.d.ts.map +1 -0
- package/dist/cli/system-table.js +48 -0
- package/dist/cli/system-table.js.map +1 -0
- package/dist/cli/systems.d.ts +57 -0
- package/dist/cli/systems.d.ts.map +1 -0
- package/dist/cli/systems.js +27 -0
- package/dist/cli/systems.js.map +1 -0
- package/dist/cli/transcribe-command.d.ts +18 -0
- package/dist/cli/transcribe-command.d.ts.map +1 -0
- package/dist/cli/transcribe-command.js +86 -0
- package/dist/cli/transcribe-command.js.map +1 -0
- package/dist/cli/transcribe-reading.d.ts +15 -0
- package/dist/cli/transcribe-reading.d.ts.map +1 -0
- package/dist/cli/transcribe-reading.js +90 -0
- package/dist/cli/transcribe-reading.js.map +1 -0
- package/dist/cli/transcribe-rows.d.ts +26 -0
- package/dist/cli/transcribe-rows.d.ts.map +1 -0
- package/dist/cli/transcribe-rows.js +30 -0
- package/dist/cli/transcribe-rows.js.map +1 -0
- package/dist/cli/usage-error.d.ts +9 -0
- package/dist/cli/usage-error.d.ts.map +1 -0
- package/dist/cli/usage-error.js +9 -0
- package/dist/cli/usage-error.js.map +1 -0
- package/dist/decode/alternatives.d.ts +16 -0
- package/dist/decode/alternatives.d.ts.map +1 -0
- package/dist/decode/alternatives.js +31 -0
- package/dist/decode/alternatives.js.map +1 -0
- package/dist/decode/chang-context.d.ts +27 -0
- package/dist/decode/chang-context.d.ts.map +1 -0
- package/dist/decode/chang-context.js +66 -0
- package/dist/decode/chang-context.js.map +1 -0
- package/dist/decode/chang-rule.d.ts +37 -0
- package/dist/decode/chang-rule.d.ts.map +1 -0
- package/dist/decode/chang-rule.js +169 -0
- package/dist/decode/chang-rule.js.map +1 -0
- package/dist/decode/confidence.d.ts +11 -3
- package/dist/decode/confidence.d.ts.map +1 -1
- package/dist/decode/confidence.js +14 -121
- package/dist/decode/confidence.js.map +1 -1
- package/dist/decode/convert-options.d.ts +116 -0
- package/dist/decode/convert-options.d.ts.map +1 -0
- package/dist/decode/convert-options.js +2 -0
- package/dist/decode/convert-options.js.map +1 -0
- package/dist/decode/convert-pipeline.d.ts +18 -0
- package/dist/decode/convert-pipeline.d.ts.map +1 -0
- package/dist/decode/convert-pipeline.js +67 -0
- package/dist/decode/convert-pipeline.js.map +1 -0
- package/dist/decode/convert.d.ts +9 -118
- package/dist/decode/convert.d.ts.map +1 -1
- package/dist/decode/convert.js +5 -453
- package/dist/decode/convert.js.map +1 -1
- package/dist/decode/de-rule.d.ts +54 -0
- package/dist/decode/de-rule.d.ts.map +1 -0
- package/dist/decode/de-rule.js +113 -0
- package/dist/decode/de-rule.js.map +1 -0
- package/dist/decode/decode.d.ts +2 -15
- package/dist/decode/decode.d.ts.map +1 -1
- package/dist/decode/decode.js +2 -121
- package/dist/decode/decode.js.map +1 -1
- package/dist/decode/decoders.d.ts +32 -0
- package/dist/decode/decoders.d.ts.map +1 -0
- package/dist/decode/decoders.js +29 -0
- package/dist/decode/decoders.js.map +1 -0
- package/dist/decode/edge-context.d.ts +38 -0
- package/dist/decode/edge-context.d.ts.map +1 -0
- package/dist/decode/edge-context.js +57 -0
- package/dist/decode/edge-context.js.map +1 -0
- package/dist/decode/hint-lattice.d.ts +45 -0
- package/dist/decode/hint-lattice.d.ts.map +1 -0
- package/dist/decode/hint-lattice.js +154 -0
- package/dist/decode/hint-lattice.js.map +1 -0
- package/dist/decode/hints.d.ts +2 -45
- package/dist/decode/hints.d.ts.map +1 -1
- package/dist/decode/hints.js +1 -139
- package/dist/decode/hints.js.map +1 -1
- package/dist/decode/jiao-rule.d.ts +64 -0
- package/dist/decode/jiao-rule.d.ts.map +1 -0
- package/dist/decode/jiao-rule.js +115 -0
- package/dist/decode/jiao-rule.js.map +1 -0
- package/dist/decode/lattice-costs.d.ts +55 -0
- package/dist/decode/lattice-costs.d.ts.map +1 -0
- package/dist/decode/lattice-costs.js +90 -0
- package/dist/decode/lattice-costs.js.map +1 -0
- package/dist/decode/lattice-edges.d.ts +29 -0
- package/dist/decode/lattice-edges.d.ts.map +1 -0
- package/dist/decode/lattice-edges.js +78 -0
- package/dist/decode/lattice-edges.js.map +1 -0
- package/dist/decode/lattice-slice.d.ts +37 -0
- package/dist/decode/lattice-slice.d.ts.map +1 -0
- package/dist/decode/lattice-slice.js +43 -0
- package/dist/decode/lattice-slice.js.map +1 -0
- package/dist/decode/lattice-types.d.ts +101 -0
- package/dist/decode/lattice-types.d.ts.map +1 -0
- package/dist/decode/lattice-types.js +63 -0
- package/dist/decode/lattice-types.js.map +1 -0
- package/dist/decode/lattice.d.ts +2 -59
- package/dist/decode/lattice.d.ts.map +1 -1
- package/dist/decode/lattice.js +2 -118
- package/dist/decode/lattice.js.map +1 -1
- package/dist/decode/number-pieces.d.ts +62 -0
- package/dist/decode/number-pieces.d.ts.map +1 -0
- package/dist/decode/number-pieces.js +106 -0
- package/dist/decode/number-pieces.js.map +1 -0
- package/dist/decode/numbers.d.ts +53 -0
- package/dist/decode/numbers.d.ts.map +1 -0
- package/dist/decode/numbers.js +69 -0
- package/dist/decode/numbers.js.map +1 -0
- package/dist/decode/pieces.d.ts +78 -0
- package/dist/decode/pieces.d.ts.map +1 -0
- package/dist/decode/pieces.js +136 -0
- package/dist/decode/pieces.js.map +1 -0
- package/dist/decode/polyphone-rules.d.ts +11 -0
- package/dist/decode/polyphone-rules.d.ts.map +1 -0
- package/dist/decode/polyphone-rules.js +11 -0
- package/dist/decode/polyphone-rules.js.map +1 -0
- package/dist/decode/reading-rules.d.ts +3 -126
- package/dist/decode/reading-rules.d.ts.map +1 -1
- package/dist/decode/reading-rules.js +8 -434
- package/dist/decode/reading-rules.js.map +1 -1
- package/dist/decode/rules.d.ts +1 -17
- package/dist/decode/rules.d.ts.map +1 -1
- package/dist/decode/rules.js +1 -43
- package/dist/decode/rules.js.map +1 -1
- package/dist/decode/run-lattice.d.ts +52 -0
- package/dist/decode/run-lattice.d.ts.map +1 -0
- package/dist/decode/run-lattice.js +91 -0
- package/dist/decode/run-lattice.js.map +1 -0
- package/dist/decode/run-words.d.ts +17 -0
- package/dist/decode/run-words.d.ts.map +1 -0
- package/dist/decode/run-words.js +29 -0
- package/dist/decode/run-words.js.map +1 -0
- package/dist/decode/sandhi-input.d.ts +30 -0
- package/dist/decode/sandhi-input.d.ts.map +1 -0
- package/dist/decode/sandhi-input.js +35 -0
- package/dist/decode/sandhi-input.js.map +1 -0
- package/dist/decode/sandhi-tones.d.ts +97 -0
- package/dist/decode/sandhi-tones.d.ts.map +1 -0
- package/dist/decode/sandhi-tones.js +139 -0
- package/dist/decode/sandhi-tones.js.map +1 -0
- package/dist/decode/sandhi.d.ts +10 -7
- package/dist/decode/sandhi.d.ts.map +1 -1
- package/dist/decode/sandhi.js +11 -88
- package/dist/decode/sandhi.js.map +1 -1
- package/dist/decode/script-types.d.ts +76 -0
- package/dist/decode/script-types.d.ts.map +1 -0
- package/dist/decode/script-types.js +35 -0
- package/dist/decode/script-types.js.map +1 -0
- package/dist/decode/script-words.d.ts +32 -0
- package/dist/decode/script-words.d.ts.map +1 -0
- package/dist/decode/script-words.js +77 -0
- package/dist/decode/script-words.js.map +1 -0
- package/dist/decode/script.d.ts +3 -73
- package/dist/decode/script.d.ts.map +1 -1
- package/dist/decode/script.js +3 -109
- package/dist/decode/script.js.map +1 -1
- package/dist/decode/tan-rule.d.ts +68 -0
- package/dist/decode/tan-rule.d.ts.map +1 -0
- package/dist/decode/tan-rule.js +131 -0
- package/dist/decode/tan-rule.js.map +1 -0
- package/dist/decode/write-run.d.ts +21 -0
- package/dist/decode/write-run.d.ts.map +1 -0
- package/dist/decode/write-run.js +42 -0
- package/dist/decode/write-run.js.map +1 -0
- package/dist/dictionary/artifact-claims.d.ts +25 -0
- package/dist/dictionary/artifact-claims.d.ts.map +1 -0
- package/dist/dictionary/artifact-claims.js +47 -0
- package/dist/dictionary/artifact-claims.js.map +1 -0
- package/dist/dictionary/artifact-format.d.ts +86 -0
- package/dist/dictionary/artifact-format.d.ts.map +1 -0
- package/dist/dictionary/artifact-format.js +91 -0
- package/dist/dictionary/artifact-format.js.map +1 -0
- package/dist/dictionary/artifact-read.d.ts +34 -0
- package/dist/dictionary/artifact-read.d.ts.map +1 -0
- package/dist/dictionary/artifact-read.js +114 -0
- package/dist/dictionary/artifact-read.js.map +1 -0
- package/dist/dictionary/artifact.d.ts +4 -63
- package/dist/dictionary/artifact.d.ts.map +1 -1
- package/dist/dictionary/artifact.js +12 -229
- package/dist/dictionary/artifact.js.map +1 -1
- package/dist/dictionary/assertions.d.ts +5 -57
- package/dist/dictionary/assertions.d.ts.map +1 -1
- package/dist/dictionary/assertions.js +4 -317
- package/dist/dictionary/assertions.js.map +1 -1
- package/dist/dictionary/build-assertions.d.ts +12 -0
- package/dist/dictionary/build-assertions.d.ts.map +1 -0
- package/dist/dictionary/build-assertions.js +13 -0
- package/dist/dictionary/build-assertions.js.map +1 -0
- package/dist/dictionary/built-dictionary.d.ts +46 -0
- package/dist/dictionary/built-dictionary.d.ts.map +1 -0
- package/dist/dictionary/built-dictionary.js +97 -0
- package/dist/dictionary/built-dictionary.js.map +1 -0
- package/dist/dictionary/cedict-senses.d.ts +87 -0
- package/dist/dictionary/cedict-senses.d.ts.map +1 -0
- package/dist/dictionary/cedict-senses.js +126 -0
- package/dist/dictionary/cedict-senses.js.map +1 -0
- package/dist/dictionary/character-defaults.d.ts +26 -0
- package/dist/dictionary/character-defaults.d.ts.map +1 -0
- package/dist/dictionary/character-defaults.js +67 -0
- package/dist/dictionary/character-defaults.js.map +1 -0
- package/dist/dictionary/character-readings.d.ts +10 -0
- package/dist/dictionary/character-readings.d.ts.map +1 -0
- package/dist/dictionary/character-readings.js +25 -0
- package/dist/dictionary/character-readings.js.map +1 -0
- package/dist/dictionary/constituent-repair.d.ts +36 -0
- package/dist/dictionary/constituent-repair.d.ts.map +1 -0
- package/dist/dictionary/constituent-repair.js +117 -0
- package/dist/dictionary/constituent-repair.js.map +1 -0
- package/dist/dictionary/dictionary-entry.d.ts +37 -0
- package/dist/dictionary/dictionary-entry.d.ts.map +1 -0
- package/dist/dictionary/dictionary-entry.js +41 -0
- package/dist/dictionary/dictionary-entry.js.map +1 -0
- package/dist/dictionary/dictionary-readings.d.ts +56 -0
- package/dist/dictionary/dictionary-readings.d.ts.map +1 -0
- package/dist/dictionary/dictionary-readings.js +93 -0
- package/dist/dictionary/dictionary-readings.js.map +1 -0
- package/dist/dictionary/dictionary.d.ts +6 -60
- package/dist/dictionary/dictionary.d.ts.map +1 -1
- package/dist/dictionary/dictionary.js +9 -169
- package/dist/dictionary/dictionary.js.map +1 -1
- package/dist/dictionary/entry-invariants.d.ts +3 -0
- package/dist/dictionary/entry-invariants.d.ts.map +1 -0
- package/dist/dictionary/entry-invariants.js +67 -0
- package/dist/dictionary/entry-invariants.js.map +1 -0
- package/dist/dictionary/entry-lines.d.ts +35 -0
- package/dist/dictionary/entry-lines.d.ts.map +1 -0
- package/dist/dictionary/entry-lines.js +70 -0
- package/dist/dictionary/entry-lines.js.map +1 -0
- package/dist/dictionary/erhua-repair.d.ts +26 -0
- package/dist/dictionary/erhua-repair.d.ts.map +1 -0
- package/dist/dictionary/erhua-repair.js +49 -0
- package/dist/dictionary/erhua-repair.js.map +1 -0
- package/dist/dictionary/frequency-tones.d.ts +74 -0
- package/dist/dictionary/frequency-tones.d.ts.map +1 -0
- package/dist/dictionary/frequency-tones.js +128 -0
- package/dist/dictionary/frequency-tones.js.map +1 -0
- package/dist/dictionary/inventory-invariants.d.ts +3 -0
- package/dist/dictionary/inventory-invariants.d.ts.map +1 -0
- package/dist/dictionary/inventory-invariants.js +54 -0
- package/dist/dictionary/inventory-invariants.js.map +1 -0
- package/dist/dictionary/locale-candidates.d.ts +40 -0
- package/dist/dictionary/locale-candidates.d.ts.map +1 -0
- package/dist/dictionary/locale-candidates.js +77 -0
- package/dist/dictionary/locale-candidates.js.map +1 -0
- package/dist/dictionary/locale-segments.d.ts +47 -0
- package/dist/dictionary/locale-segments.d.ts.map +1 -0
- package/dist/dictionary/locale-segments.js +141 -0
- package/dist/dictionary/locale-segments.js.map +1 -0
- package/dist/dictionary/locale.d.ts +1 -21
- package/dist/dictionary/locale.d.ts.map +1 -1
- package/dist/dictionary/locale.js +9 -198
- package/dist/dictionary/locale.js.map +1 -1
- package/dist/dictionary/merge-types.d.ts +127 -0
- package/dist/dictionary/merge-types.d.ts.map +1 -0
- package/dist/dictionary/merge-types.js +35 -0
- package/dist/dictionary/merge-types.js.map +1 -0
- package/dist/dictionary/merge-walk.d.ts +27 -0
- package/dist/dictionary/merge-walk.d.ts.map +1 -0
- package/dist/dictionary/merge-walk.js +49 -0
- package/dist/dictionary/merge-walk.js.map +1 -0
- package/dist/dictionary/merge-word.d.ts +7 -0
- package/dist/dictionary/merge-word.d.ts.map +1 -0
- package/dist/dictionary/merge-word.js +91 -0
- package/dist/dictionary/merge-word.js.map +1 -0
- package/dist/dictionary/merge.d.ts +5 -62
- package/dist/dictionary/merge.d.ts.map +1 -1
- package/dist/dictionary/merge.js +32 -725
- package/dist/dictionary/merge.js.map +1 -1
- package/dist/dictionary/proper-noun.d.ts +28 -0
- package/dist/dictionary/proper-noun.d.ts.map +1 -0
- package/dist/dictionary/proper-noun.js +43 -0
- package/dist/dictionary/proper-noun.js.map +1 -0
- package/dist/dictionary/reading-agreement.d.ts +71 -0
- package/dist/dictionary/reading-agreement.d.ts.map +1 -0
- package/dist/dictionary/reading-agreement.js +156 -0
- package/dist/dictionary/reading-agreement.js.map +1 -0
- package/dist/dictionary/script-conversion.d.ts +28 -0
- package/dist/dictionary/script-conversion.d.ts.map +1 -0
- package/dist/dictionary/script-conversion.js +58 -0
- package/dist/dictionary/script-conversion.js.map +1 -0
- package/dist/dictionary/script-pairings.d.ts +74 -0
- package/dist/dictionary/script-pairings.d.ts.map +1 -0
- package/dist/dictionary/script-pairings.js +120 -0
- package/dist/dictionary/script-pairings.js.map +1 -0
- package/dist/dictionary/script-tables.d.ts.map +1 -1
- package/dist/dictionary/script-tables.js +2 -165
- package/dist/dictionary/script-tables.js.map +1 -1
- package/dist/dictionary/taiwan-reading.d.ts +8 -0
- package/dist/dictionary/taiwan-reading.d.ts.map +1 -0
- package/dist/dictionary/taiwan-reading.js +38 -0
- package/dist/dictionary/taiwan-reading.js.map +1 -0
- package/dist/dictionary/tone-invariants.d.ts +3 -0
- package/dist/dictionary/tone-invariants.d.ts.map +1 -0
- package/dist/dictionary/tone-invariants.js +64 -0
- package/dist/dictionary/tone-invariants.js.map +1 -0
- package/dist/dictionary/traditional-form.d.ts +21 -0
- package/dist/dictionary/traditional-form.d.ts.map +1 -0
- package/dist/dictionary/traditional-form.js +59 -0
- package/dist/dictionary/traditional-form.js.map +1 -0
- package/dist/dictionary/traditional-ranking.d.ts +22 -0
- package/dist/dictionary/traditional-ranking.d.ts.map +1 -0
- package/dist/dictionary/traditional-ranking.js +74 -0
- package/dist/dictionary/traditional-ranking.js.map +1 -0
- package/dist/dictionary/traditional-table.d.ts +51 -0
- package/dist/dictionary/traditional-table.d.ts.map +1 -0
- package/dist/dictionary/traditional-table.js +98 -0
- package/dist/dictionary/traditional-table.js.map +1 -0
- package/dist/dictionary/traditional.d.ts +3 -56
- package/dist/dictionary/traditional.d.ts.map +1 -1
- package/dist/dictionary/traditional.js +3 -186
- package/dist/dictionary/traditional.js.map +1 -1
- package/dist/dictionary/variant-counts.d.ts +39 -0
- package/dist/dictionary/variant-counts.d.ts.map +1 -0
- package/dist/dictionary/variant-counts.js +38 -0
- package/dist/dictionary/variant-counts.js.map +1 -0
- package/dist/dictionary/word-reading.d.ts +26 -0
- package/dist/dictionary/word-reading.d.ts.map +1 -0
- package/dist/dictionary/word-reading.js +76 -0
- package/dist/dictionary/word-reading.js.map +1 -0
- package/dist/dictionary/word-readings.d.ts +15 -0
- package/dist/dictionary/word-readings.d.ts.map +1 -0
- package/dist/dictionary/word-readings.js +41 -0
- package/dist/dictionary/word-readings.js.map +1 -0
- package/dist/format/annotate.d.ts +90 -0
- package/dist/format/annotate.d.ts.map +1 -0
- package/dist/format/annotate.js +168 -0
- package/dist/format/annotate.js.map +1 -0
- package/dist/format/html.d.ts +15 -46
- package/dist/format/html.d.ts.map +1 -1
- package/dist/format/html.js +3 -162
- package/dist/format/html.js.map +1 -1
- package/dist/format/slug-hash.d.ts +51 -0
- package/dist/format/slug-hash.d.ts.map +1 -0
- package/dist/format/slug-hash.js +74 -0
- package/dist/format/slug-hash.js.map +1 -0
- package/dist/format/slug-options.d.ts +98 -0
- package/dist/format/slug-options.d.ts.map +1 -0
- package/dist/format/slug-options.js +2 -0
- package/dist/format/slug-options.js.map +1 -0
- package/dist/format/slug-words.d.ts +27 -0
- package/dist/format/slug-words.d.ts.map +1 -0
- package/dist/format/slug-words.js +0 -0
- package/dist/format/slug-words.js.map +1 -0
- package/dist/format/slug.d.ts +3 -128
- package/dist/format/slug.d.ts.map +1 -1
- package/dist/format/slug.js +0 -0
- package/dist/format/slug.js.map +1 -1
- package/dist/grade/check-readings.d.ts +41 -0
- package/dist/grade/check-readings.d.ts.map +1 -0
- package/dist/grade/check-readings.js +36 -0
- package/dist/grade/check-readings.js.map +1 -0
- package/dist/grade/check.d.ts +4 -4
- package/dist/grade/check.d.ts.map +1 -1
- package/dist/grade/check.js +5 -270
- package/dist/grade/check.js.map +1 -1
- package/dist/grade/pair-syllables.d.ts +48 -0
- package/dist/grade/pair-syllables.d.ts.map +1 -0
- package/dist/grade/pair-syllables.js +71 -0
- package/dist/grade/pair-syllables.js.map +1 -0
- package/dist/grade/reading-syllables.d.ts +62 -0
- package/dist/grade/reading-syllables.d.ts.map +1 -0
- package/dist/grade/reading-syllables.js +58 -0
- package/dist/grade/reading-syllables.js.map +1 -0
- package/dist/grade/reading-tolerance.d.ts +72 -0
- package/dist/grade/reading-tolerance.d.ts.map +1 -0
- package/dist/grade/reading-tolerance.js +107 -0
- package/dist/grade/reading-tolerance.js.map +1 -0
- package/dist/grade/typed-reading.d.ts +28 -0
- package/dist/grade/typed-reading.d.ts.map +1 -0
- package/dist/grade/typed-reading.js +36 -0
- package/dist/grade/typed-reading.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/numerals/numeral-parse.d.ts +32 -0
- package/dist/numerals/numeral-parse.d.ts.map +1 -0
- package/dist/numerals/numeral-parse.js +44 -0
- package/dist/numerals/numeral-parse.js.map +1 -0
- package/dist/numerals/numeral-shapes.d.ts +89 -0
- package/dist/numerals/numeral-shapes.d.ts.map +1 -0
- package/dist/numerals/numeral-shapes.js +99 -0
- package/dist/numerals/numeral-shapes.js.map +1 -0
- package/dist/numerals/numerals.d.ts.map +1 -1
- package/dist/numerals/numerals.js +2 -36
- package/dist/numerals/numerals.js.map +1 -1
- package/dist/numerals/read-numeral.d.ts +76 -0
- package/dist/numerals/read-numeral.d.ts.map +1 -0
- package/dist/numerals/read-numeral.js +88 -0
- package/dist/numerals/read-numeral.js.map +1 -0
- package/dist/numerals/text.d.ts +3 -37
- package/dist/numerals/text.d.ts.map +1 -1
- package/dist/numerals/text.js +3 -254
- package/dist/numerals/text.js.map +1 -1
- package/dist/numerals/time.d.ts +34 -0
- package/dist/numerals/time.d.ts.map +1 -0
- package/dist/numerals/time.js +93 -0
- package/dist/numerals/time.js.map +1 -0
- package/dist/orthography/address-grouping.d.ts +34 -0
- package/dist/orthography/address-grouping.d.ts.map +1 -0
- package/dist/orthography/address-grouping.js +52 -0
- package/dist/orthography/address-grouping.js.map +1 -0
- package/dist/orthography/grouping.d.ts +3 -87
- package/dist/orthography/grouping.d.ts.map +1 -1
- package/dist/orthography/grouping.js +4 -270
- package/dist/orthography/grouping.js.map +1 -1
- package/dist/orthography/place-grouping.d.ts +39 -0
- package/dist/orthography/place-grouping.d.ts.map +1 -0
- package/dist/orthography/place-grouping.js +83 -0
- package/dist/orthography/place-grouping.js.map +1 -0
- package/dist/orthography/word-grouping.d.ts +48 -0
- package/dist/orthography/word-grouping.d.ts.map +1 -0
- package/dist/orthography/word-grouping.js +147 -0
- package/dist/orthography/word-grouping.js.map +1 -0
- package/dist/script/conversion-format.d.ts +22 -0
- package/dist/script/conversion-format.d.ts.map +1 -0
- package/dist/script/conversion-format.js +22 -0
- package/dist/script/conversion-format.js.map +1 -0
- package/dist/script/conversion-read.d.ts +9 -0
- package/dist/script/conversion-read.d.ts.map +1 -0
- package/dist/script/conversion-read.js +69 -0
- package/dist/script/conversion-read.js.map +1 -0
- package/dist/script/conversion-write.d.ts +14 -0
- package/dist/script/conversion-write.d.ts.map +1 -0
- package/dist/script/conversion-write.js +34 -0
- package/dist/script/conversion-write.js.map +1 -0
- package/dist/script/conversion.d.ts +10 -16
- package/dist/script/conversion.d.ts.map +1 -1
- package/dist/script/conversion.js +2 -115
- package/dist/script/conversion.js.map +1 -1
- package/dist/search/candidate-narrowing.d.ts +56 -0
- package/dist/search/candidate-narrowing.d.ts.map +1 -0
- package/dist/search/candidate-narrowing.js +55 -0
- package/dist/search/candidate-narrowing.js.map +1 -0
- package/dist/search/candidate-query.d.ts +25 -0
- package/dist/search/candidate-query.d.ts.map +1 -0
- package/dist/search/candidate-query.js +28 -0
- package/dist/search/candidate-query.js.map +1 -0
- package/dist/search/candidate-writings.d.ts +24 -0
- package/dist/search/candidate-writings.d.ts.map +1 -0
- package/dist/search/candidate-writings.js +114 -0
- package/dist/search/candidate-writings.js.map +1 -0
- package/dist/search/candidates.d.ts +7 -41
- package/dist/search/candidates.d.ts.map +1 -1
- package/dist/search/candidates.js +10 -164
- package/dist/search/candidates.js.map +1 -1
- package/dist/search/match-chunks.d.ts +19 -0
- package/dist/search/match-chunks.d.ts.map +1 -0
- package/dist/search/match-chunks.js +30 -0
- package/dist/search/match-chunks.js.map +1 -0
- package/dist/search/match-ranking.d.ts +39 -0
- package/dist/search/match-ranking.d.ts.map +1 -0
- package/dist/search/match-ranking.js +51 -0
- package/dist/search/match-ranking.js.map +1 -0
- package/dist/search/match-readings.d.ts +43 -0
- package/dist/search/match-readings.d.ts.map +1 -0
- package/dist/search/match-readings.js +83 -0
- package/dist/search/match-readings.js.map +1 -0
- package/dist/search/match-scoring.d.ts +146 -0
- package/dist/search/match-scoring.d.ts.map +1 -0
- package/dist/search/match-scoring.js +114 -0
- package/dist/search/match-scoring.js.map +1 -0
- package/dist/search/match-search.d.ts +28 -0
- package/dist/search/match-search.d.ts.map +1 -0
- package/dist/search/match-search.js +128 -0
- package/dist/search/match-search.js.map +1 -0
- package/dist/search/match.d.ts +5 -36
- package/dist/search/match.d.ts.map +1 -1
- package/dist/search/match.js +2 -379
- package/dist/search/match.js.map +1 -1
- package/dist/search/reverse-index-build.d.ts +30 -0
- package/dist/search/reverse-index-build.d.ts.map +1 -0
- package/dist/search/reverse-index-build.js +72 -0
- package/dist/search/reverse-index-build.js.map +1 -0
- package/dist/search/reverse-index-format.d.ts +60 -0
- package/dist/search/reverse-index-format.d.ts.map +1 -0
- package/dist/search/reverse-index-format.js +54 -0
- package/dist/search/reverse-index-format.js.map +1 -0
- package/dist/search/reverse-index-groups.d.ts +37 -0
- package/dist/search/reverse-index-groups.d.ts.map +1 -0
- package/dist/search/reverse-index-groups.js +71 -0
- package/dist/search/reverse-index-groups.js.map +1 -0
- package/dist/search/reverse-index-passes.d.ts +78 -0
- package/dist/search/reverse-index-passes.d.ts.map +1 -0
- package/dist/search/reverse-index-passes.js +59 -0
- package/dist/search/reverse-index-passes.js.map +1 -0
- package/dist/search/reverse-index-state.d.ts +36 -0
- package/dist/search/reverse-index-state.d.ts.map +1 -0
- package/dist/search/reverse-index-state.js +95 -0
- package/dist/search/reverse-index-state.js.map +1 -0
- package/dist/search/reverse-index.d.ts +8 -67
- package/dist/search/reverse-index.d.ts.map +1 -1
- package/dist/search/reverse-index.js +4 -255
- package/dist/search/reverse-index.js.map +1 -1
- package/dist/sources/unihan-readings.d.ts +58 -0
- package/dist/sources/unihan-readings.d.ts.map +1 -0
- package/dist/sources/unihan-readings.js +95 -0
- package/dist/sources/unihan-readings.js.map +1 -0
- package/dist/sources/unihan.d.ts +6 -9
- package/dist/sources/unihan.d.ts.map +1 -1
- package/dist/sources/unihan.js +2 -85
- package/dist/sources/unihan.js.map +1 -1
- package/dist/syllable/final-tables.d.ts +23 -0
- package/dist/syllable/final-tables.d.ts.map +1 -0
- package/dist/syllable/final-tables.js +50 -0
- package/dist/syllable/final-tables.js.map +1 -0
- package/dist/syllable/inventory.d.ts +8 -42
- package/dist/syllable/inventory.d.ts.map +1 -1
- package/dist/syllable/inventory.js +9 -918
- package/dist/syllable/inventory.js.map +1 -1
- package/dist/syllable/spellings.d.ts +40 -0
- package/dist/syllable/spellings.d.ts.map +1 -0
- package/dist/syllable/spellings.js +469 -0
- package/dist/syllable/spellings.js.map +1 -0
- package/dist/syllable/syllable-parts.d.ts +31 -0
- package/dist/syllable/syllable-parts.d.ts.map +1 -0
- package/dist/syllable/syllable-parts.js +105 -0
- package/dist/syllable/syllable-parts.js.map +1 -0
- package/dist/syllable/syllable.d.ts +1 -14
- package/dist/syllable/syllable.d.ts.map +1 -1
- package/dist/syllable/syllable.js +3 -144
- package/dist/syllable/syllable.js.map +1 -1
- package/dist/syllable/written-tones.d.ts +6 -0
- package/dist/syllable/written-tones.d.ts.map +1 -0
- package/dist/syllable/written-tones.js +453 -0
- package/dist/syllable/written-tones.js.map +1 -0
- package/dist/transcription/bopomofo-parse.d.ts +42 -0
- package/dist/transcription/bopomofo-parse.d.ts.map +1 -0
- package/dist/transcription/bopomofo-parse.js +92 -0
- package/dist/transcription/bopomofo-parse.js.map +1 -0
- package/dist/transcription/bopomofo-reverse.d.ts +31 -0
- package/dist/transcription/bopomofo-reverse.d.ts.map +1 -0
- package/dist/transcription/bopomofo-reverse.js +48 -0
- package/dist/transcription/bopomofo-reverse.js.map +1 -0
- package/dist/transcription/bopomofo-symbols.d.ts +36 -0
- package/dist/transcription/bopomofo-symbols.d.ts.map +1 -0
- package/dist/transcription/bopomofo-symbols.js +41 -0
- package/dist/transcription/bopomofo-symbols.js.map +1 -0
- package/dist/transcription/bopomofo-tables.d.ts +87 -0
- package/dist/transcription/bopomofo-tables.d.ts.map +1 -0
- package/dist/transcription/bopomofo-tables.js +180 -0
- package/dist/transcription/bopomofo-tables.js.map +1 -0
- package/dist/transcription/bopomofo.d.ts +14 -32
- package/dist/transcription/bopomofo.d.ts.map +1 -1
- package/dist/transcription/bopomofo.js +5 -343
- package/dist/transcription/bopomofo.js.map +1 -1
- package/dist/transcription/gwoyeu-first-second.d.ts +36 -0
- package/dist/transcription/gwoyeu-first-second.d.ts.map +1 -0
- package/dist/transcription/gwoyeu-first-second.js +75 -0
- package/dist/transcription/gwoyeu-first-second.js.map +1 -0
- package/dist/transcription/gwoyeu-spelling.d.ts +38 -0
- package/dist/transcription/gwoyeu-spelling.d.ts.map +1 -0
- package/dist/transcription/gwoyeu-spelling.js +124 -0
- package/dist/transcription/gwoyeu-spelling.js.map +1 -0
- package/dist/transcription/gwoyeu-tables.d.ts +93 -0
- package/dist/transcription/gwoyeu-tables.d.ts.map +1 -0
- package/dist/transcription/gwoyeu-tables.js +205 -0
- package/dist/transcription/gwoyeu-tables.js.map +1 -0
- package/dist/transcription/gwoyeu-tonal-forms.d.ts +49 -0
- package/dist/transcription/gwoyeu-tonal-forms.d.ts.map +1 -0
- package/dist/transcription/gwoyeu-tonal-forms.js +89 -0
- package/dist/transcription/gwoyeu-tonal-forms.js.map +1 -0
- package/dist/transcription/gwoyeu-vowels.d.ts +51 -0
- package/dist/transcription/gwoyeu-vowels.d.ts.map +1 -0
- package/dist/transcription/gwoyeu-vowels.js +58 -0
- package/dist/transcription/gwoyeu-vowels.js.map +1 -0
- package/dist/transcription/gwoyeu.d.ts +1 -26
- package/dist/transcription/gwoyeu.d.ts.map +1 -1
- package/dist/transcription/gwoyeu.js +2 -540
- package/dist/transcription/gwoyeu.js.map +1 -1
- package/dist/transcription/ipa-symbols.d.ts +67 -0
- package/dist/transcription/ipa-symbols.d.ts.map +1 -0
- package/dist/transcription/ipa-symbols.js +135 -0
- package/dist/transcription/ipa-symbols.js.map +1 -0
- package/dist/transcription/ipa.d.ts +2 -10
- package/dist/transcription/ipa.d.ts.map +1 -1
- package/dist/transcription/ipa.js +2 -134
- package/dist/transcription/ipa.js.map +1 -1
- package/dist/transcription/wade-giles-index.d.ts +35 -0
- package/dist/transcription/wade-giles-index.d.ts.map +1 -0
- package/dist/transcription/wade-giles-index.js +110 -0
- package/dist/transcription/wade-giles-index.js.map +1 -0
- package/dist/transcription/wade-giles-parse.d.ts +36 -0
- package/dist/transcription/wade-giles-parse.d.ts.map +1 -0
- package/dist/transcription/wade-giles-parse.js +84 -0
- package/dist/transcription/wade-giles-parse.js.map +1 -0
- package/dist/transcription/wade-giles-spelling.d.ts +61 -0
- package/dist/transcription/wade-giles-spelling.d.ts.map +1 -0
- package/dist/transcription/wade-giles-spelling.js +107 -0
- package/dist/transcription/wade-giles-spelling.js.map +1 -0
- package/dist/transcription/wade-giles-syllable.d.ts +29 -0
- package/dist/transcription/wade-giles-syllable.d.ts.map +1 -0
- package/dist/transcription/wade-giles-syllable.js +90 -0
- package/dist/transcription/wade-giles-syllable.js.map +1 -0
- package/dist/transcription/wade-giles-tables.d.ts +80 -0
- package/dist/transcription/wade-giles-tables.d.ts.map +1 -0
- package/dist/transcription/wade-giles-tables.js +178 -0
- package/dist/transcription/wade-giles-tables.js.map +1 -0
- package/dist/transcription/wade-giles.d.ts +9 -60
- package/dist/transcription/wade-giles.d.ts.map +1 -1
- package/dist/transcription/wade-giles.js +6 -543
- package/dist/transcription/wade-giles.js.map +1 -1
- package/dist/transcription/yale-tables.d.ts +54 -0
- package/dist/transcription/yale-tables.d.ts.map +1 -0
- package/dist/transcription/yale-tables.js +125 -0
- package/dist/transcription/yale-tables.js.map +1 -0
- package/dist/transcription/yale.d.ts.map +1 -1
- package/dist/transcription/yale.js +1 -124
- package/dist/transcription/yale.js.map +1 -1
- package/package.json +2 -2
package/dist/decode/convert.d.ts
CHANGED
|
@@ -1,122 +1,13 @@
|
|
|
1
|
-
import type { Dictionary } from "../dictionary/dictionary.js";
|
|
2
|
-
import { type ApostropheStyle } from "../orthography/apostrophe.js";
|
|
3
|
-
import { type CapitalStyle } from "../orthography/capitals.js";
|
|
4
|
-
import { type PunctuationStyle } from "../orthography/punctuation.js";
|
|
5
|
-
import type { Locale } from "../script/script.js";
|
|
6
|
-
import { type Syllable, type ToneNotation } from "../syllable/syllable.js";
|
|
7
|
-
import type { ReadingConfidence } from "./confidence.js";
|
|
8
|
-
import { type ReadingHints } from "./hints.js";
|
|
9
|
-
import { type SandhiOptions } from "./sandhi.js";
|
|
10
|
-
/**
|
|
11
|
-
* How a conversion should be carried out and written.
|
|
12
|
-
*/
|
|
13
|
-
export interface ConvertOptions {
|
|
14
|
-
/** Which reading standard to use. Defaults to `zh-CN`. */
|
|
15
|
-
readonly locale?: Locale;
|
|
16
|
-
/** How tones are written. Defaults to diacritics. */
|
|
17
|
-
readonly notation?: ToneNotation;
|
|
18
|
-
/** Which tone sandhi to apply. */
|
|
19
|
-
readonly sandhi?: SandhiOptions;
|
|
20
|
-
/** When the 隔音符号 is written. Defaults to `always`. */
|
|
21
|
-
readonly apostrophe?: ApostropheStyle;
|
|
22
|
-
/** Which capitals are written. Defaults to `auto`. */
|
|
23
|
-
readonly capitals?: CapitalStyle;
|
|
24
|
-
/** Whether Chinese punctuation is rewritten. Defaults to `latin`. */
|
|
25
|
-
readonly punctuation?: PunctuationStyle;
|
|
26
|
-
/** Whether GB/T 16159 word grouping is applied. Defaults to true. */
|
|
27
|
-
readonly grouping?: boolean;
|
|
28
|
-
/**
|
|
29
|
-
* What to do with the digits in a text. Defaults to `read`.
|
|
30
|
-
*
|
|
31
|
-
* `read` says them: 我有3个 is `wǒ yǒu sān gè` and 1998年 is
|
|
32
|
-
* `yī jiǔ jiǔ bā nián`. `keep` leaves every digit exactly as it was written,
|
|
33
|
-
* which is what this did before there was anything to read them with.
|
|
34
|
-
*/
|
|
35
|
-
readonly numbers?: NumberStyle;
|
|
36
|
-
/**
|
|
37
|
-
* Readings the caller asserts, over whatever the sources say.
|
|
38
|
-
*
|
|
39
|
-
* No rule can settle every polyphone, and some texts are genuinely ambiguous
|
|
40
|
-
* — 孩子越长越漂亮 grows where 头发越长越漂亮 lengthens — so an application
|
|
41
|
-
* that knows its own content can say what this one could only guess at.
|
|
42
|
-
*
|
|
43
|
-
* ```ts
|
|
44
|
-
* convert(dictionary, "这篇文章不太长。", { readings: { 太长: "tài cháng" } });
|
|
45
|
-
* ```
|
|
46
|
-
*
|
|
47
|
-
* A hint displaces whatever covered exactly the characters it names, and
|
|
48
|
-
* competes normally with everything else, so a bare `长` hint leaves 校长 as
|
|
49
|
-
* `xiàozhǎng` — the longer word is still the better reading of that stretch.
|
|
50
|
-
* See {@link ReadingHints}.
|
|
51
|
-
*/
|
|
52
|
-
readonly readings?: ReadingHints;
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* What a conversion does with the digits it meets.
|
|
56
|
-
*/
|
|
57
|
-
export type NumberStyle = "read" | "keep";
|
|
58
1
|
/**
|
|
59
|
-
*
|
|
2
|
+
* Converting hanzi to pinyin, in every form a caller may want it.
|
|
60
3
|
*
|
|
61
|
-
*
|
|
62
|
-
*
|
|
63
|
-
*
|
|
64
|
-
* finished string. {@link convert} is this, joined.
|
|
4
|
+
* Six entry points over one pipeline, differing only in which decoder runs and
|
|
5
|
+
* whether the answer is joined back into a string. The pipeline itself is
|
|
6
|
+
* `convert-pipeline.ts`.
|
|
65
7
|
*/
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
readonly syllable: Syllable | undefined;
|
|
70
|
-
/**
|
|
71
|
-
* The characters this piece reads, where it names any of its own.
|
|
72
|
-
*
|
|
73
|
-
* What an annotation needs and a plain conversion throws away: to write 银行
|
|
74
|
-
* with `yín` over 银 and `háng` over 行, something has to say which characters
|
|
75
|
-
* each syllable is a reading *of*, and that is not the syllable's position.
|
|
76
|
-
* A reading is not one syllable per character — 玩儿 is two characters and
|
|
77
|
-
* the single syllable `wánr` — and a read number is not made of characters at
|
|
78
|
-
* all in the same way, 95% being `bǎifēnzhījiǔshíwǔ` over eight syllables and
|
|
79
|
-
* three written characters.
|
|
80
|
-
*
|
|
81
|
-
* So a piece either names the characters it reads or continues the ones the
|
|
82
|
-
* piece before it named, and the two are told apart by the syllable rather
|
|
83
|
-
* than by a second flag:
|
|
84
|
-
*
|
|
85
|
-
* | `syllable` | `source` | The piece |
|
|
86
|
-
* | --- | --- | --- |
|
|
87
|
-
* | undefined | undefined | writes no reading: a space, or a non-Han run |
|
|
88
|
-
* | set | set | reads exactly those characters |
|
|
89
|
-
* | set | undefined | reads on into the characters named before it |
|
|
90
|
-
*
|
|
91
|
-
* {@link import("../format/html.js").toAnnotatedHtml} is what consumes it.
|
|
92
|
-
*/
|
|
93
|
-
readonly source: string | undefined;
|
|
94
|
-
/**
|
|
95
|
-
* How settled that syllable was, where the decode reported it.
|
|
96
|
-
*
|
|
97
|
-
* Only {@link convertPieces} fills this in, and only for a syllable the
|
|
98
|
-
* lattice decoded: the greedy baseline cannot say what it rejected, and a
|
|
99
|
-
* Taiwan reading that differs in length from its mainland form cannot be
|
|
100
|
-
* lined up with it.
|
|
101
|
-
*/
|
|
102
|
-
readonly confidence: ReadingConfidence | undefined;
|
|
103
|
-
}
|
|
104
|
-
/**
|
|
105
|
-
* Which characters of a word each of its syllables reads.
|
|
106
|
-
*
|
|
107
|
-
* One per syllable, in order, and undefined where a syllable reads on into the
|
|
108
|
-
* characters the one before it took. Only 儿化 does that: measured over the
|
|
109
|
-
* committed dictionary, 5,283 of 723,147 keys have fewer syllables than
|
|
110
|
-
* characters, 4,024 of them because a final 儿 folds into the syllable before
|
|
111
|
-
* it, and the remaining 1,259 because the word is written with punctuation —
|
|
112
|
-
* which cannot reach here, since punctuation ends a Han run before the decode
|
|
113
|
-
* ever sees it.
|
|
114
|
-
*
|
|
115
|
-
* The deficit is spent from the right, which is where 儿化 always is. 打哪儿指
|
|
116
|
-
* 哪儿 is the case that needs it: two syllables short over six characters, and
|
|
117
|
-
* both 儿 attach to the character in front of them rather than one taking two.
|
|
118
|
-
*/
|
|
119
|
-
export declare function sourcesOf(word: string, reading: readonly Syllable[]): readonly (string | undefined)[];
|
|
8
|
+
import type { Dictionary } from "../dictionary/dictionary.js";
|
|
9
|
+
import type { ConvertedPiece, ConvertOptions } from "./pieces.js";
|
|
10
|
+
export { type ConvertedPiece, type ConvertOptions, type NumberStyle, sourcesOf, } from "./pieces.js";
|
|
120
11
|
/**
|
|
121
12
|
* Convert hanzi to pinyin with the lattice decoder.
|
|
122
13
|
*
|
|
@@ -133,8 +24,8 @@ export declare function convert(dictionary: Dictionary, text: string, options?:
|
|
|
133
24
|
* The same conversion {@link convert} performs and the same text once joined,
|
|
134
25
|
* kept in pieces so that each syllable can be rendered on its own terms.
|
|
135
26
|
* Everything the decode rejected is reported with it — see
|
|
136
|
-
* {@link ReadingConfidence} — which is what an
|
|
137
|
-
* reader where it was guessing.
|
|
27
|
+
* {@link import("./confidence.js").ReadingConfidence} — which is what an
|
|
28
|
+
* output format needs to show a reader where it was guessing.
|
|
138
29
|
*
|
|
139
30
|
* Costs a second sweep of the lattice, which is why it is not what
|
|
140
31
|
* {@link convert} runs.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../src/decode/convert.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../src/decode/convert.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAE9D,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAGlE,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,SAAS,GACV,MAAM,aAAa,CAAC;AAErB;;;;;;;;GAQG;AACH,wBAAgB,OAAO,CACrB,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,cAAmB,GAC3B,MAAM,CAER;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAC3B,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,cAAmB,GAC3B,SAAS,cAAc,EAAE,CAE3B;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,cAAmB,GAC3B,SAAS,cAAc,EAAE,CAE3B;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,SAAS,cAAc,EAAE,GAAG,MAAM,CAEpE;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,cAAmB,GAC3B,MAAM,CAER;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,cAAmB,GAC3B,SAAS,cAAc,EAAE,CAE3B"}
|
package/dist/decode/convert.js
CHANGED
|
@@ -1,454 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
import { capitaliseSentenceParts, capitaliseWord, isSentence, } from "../orthography/capitals.js";
|
|
5
|
-
import { applyGrouping } from "../orthography/grouping.js";
|
|
6
|
-
import { toLatinPunctuationParts, } from "../orthography/punctuation.js";
|
|
7
|
-
import { readNumbersIn, saidNumeral, } from "../numerals/text.js";
|
|
8
|
-
import { toCharacters } from "../script/characters.js";
|
|
9
|
-
import { writeSyllable, } from "../syllable/syllable.js";
|
|
10
|
-
import { divisionOf } from "./constituents.js";
|
|
11
|
-
import { decodeRun, decodeRunScored } from "./decode.js";
|
|
12
|
-
import { hintsWithin, resolveHints, } from "./hints.js";
|
|
13
|
-
import { decodeGreedily } from "./greedy.js";
|
|
14
|
-
import { READING_RULES } from "./reading-rules.js";
|
|
15
|
-
import { splitRuns, surroundingCharacters } from "./runs.js";
|
|
16
|
-
import { applySandhi } from "./sandhi.js";
|
|
17
|
-
/**
|
|
18
|
-
* The reading a word takes in a locale.
|
|
19
|
-
*
|
|
20
|
-
* `zh-TW` is stored as a delta, so a word with no Taiwan reading simply reads
|
|
21
|
-
* the same in both.
|
|
22
|
-
*
|
|
23
|
-
* The delta is measured against the entry's own 普通话 reading, so it only
|
|
24
|
-
* applies where the decode settled on that reading. A polyphone the decode read
|
|
25
|
-
* some other way — 长 as `cháng` where its entry reads `zhǎng`, 差 as `chā`
|
|
26
|
-
* where its entry reads `chà` — is a different sense of the word, and the delta
|
|
27
|
-
* beside the entry says nothing about it. Replacing the reading there would
|
|
28
|
-
* discard what the lattice worked out in favour of a reading of the wrong
|
|
29
|
-
* syllable entirely.
|
|
30
|
-
*/
|
|
31
|
-
function readingFor(dictionary, word, locale) {
|
|
32
|
-
if (locale !== "zh-TW") {
|
|
33
|
-
return word.reading;
|
|
34
|
-
}
|
|
35
|
-
const entry = dictionary.lookup(word.text);
|
|
36
|
-
if (entry?.taiwanReading === undefined) {
|
|
37
|
-
return word.reading;
|
|
38
|
-
}
|
|
39
|
-
return isSameReading(entry.reading, word.reading)
|
|
40
|
-
? entry.taiwanReading
|
|
41
|
-
: word.reading;
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* Text that writes no syllable: a space, or a run that was never Han.
|
|
45
|
-
*/
|
|
46
|
-
function plainPiece(text) {
|
|
47
|
-
return {
|
|
48
|
-
text,
|
|
49
|
-
syllable: undefined,
|
|
50
|
-
confidence: undefined,
|
|
51
|
-
source: undefined,
|
|
52
|
-
};
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Source text that is written out but read as nothing.
|
|
56
|
-
*
|
|
57
|
-
* The difference from {@link plainPiece} is what the text *is*. Both write no
|
|
58
|
-
* syllable, but a run that was never Han — punctuation, a Latin word, a digit
|
|
59
|
-
* left unread — stands for something the author wrote, whereas the space
|
|
60
|
-
* between two words and the hyphen inside 干干净净 are pinyin orthography that
|
|
61
|
-
* the source has no trace of.
|
|
62
|
-
*
|
|
63
|
-
* A conversion joins them into one string and the distinction does not arise.
|
|
64
|
-
* An annotation writes the source and the reading in different places, and
|
|
65
|
-
* putting a hyphen the pinyin needs into the hanzi it annotates would be
|
|
66
|
-
* inventing text: 干干净净 is `gāngān-jìngjìng` and is not written 干干-净净.
|
|
67
|
-
*
|
|
68
|
-
* The text and the source can differ, and the punctuation pass is why: it
|
|
69
|
-
* rewrites 。 to a full stop in the `text` a conversion writes, and leaves the
|
|
70
|
-
* `source` as the mark the author actually typed.
|
|
71
|
-
*/
|
|
72
|
-
function sourcePiece(text) {
|
|
73
|
-
return {
|
|
74
|
-
text,
|
|
75
|
-
syllable: undefined,
|
|
76
|
-
confidence: undefined,
|
|
77
|
-
source: text,
|
|
78
|
-
};
|
|
79
|
-
}
|
|
80
|
-
/**
|
|
81
|
-
* Which characters of a word each of its syllables reads.
|
|
82
|
-
*
|
|
83
|
-
* One per syllable, in order, and undefined where a syllable reads on into the
|
|
84
|
-
* characters the one before it took. Only 儿化 does that: measured over the
|
|
85
|
-
* committed dictionary, 5,283 of 723,147 keys have fewer syllables than
|
|
86
|
-
* characters, 4,024 of them because a final 儿 folds into the syllable before
|
|
87
|
-
* it, and the remaining 1,259 because the word is written with punctuation —
|
|
88
|
-
* which cannot reach here, since punctuation ends a Han run before the decode
|
|
89
|
-
* ever sees it.
|
|
90
|
-
*
|
|
91
|
-
* The deficit is spent from the right, which is where 儿化 always is. 打哪儿指
|
|
92
|
-
* 哪儿 is the case that needs it: two syllables short over six characters, and
|
|
93
|
-
* both 儿 attach to the character in front of them rather than one taking two.
|
|
94
|
-
*/
|
|
95
|
-
export function sourcesOf(word, reading) {
|
|
96
|
-
const characters = toCharacters(word);
|
|
97
|
-
if (characters.length === reading.length) {
|
|
98
|
-
return characters;
|
|
99
|
-
}
|
|
100
|
-
// Anything this does not understand is one base for the whole word, which is
|
|
101
|
-
// always true and merely less useful than naming each syllable's characters.
|
|
102
|
-
if (characters.length < reading.length || !isErFinal(word)) {
|
|
103
|
-
return reading.map((_, at) => (at === 0 ? word : undefined));
|
|
104
|
-
}
|
|
105
|
-
const sources = [];
|
|
106
|
-
let deficit = characters.length - reading.length;
|
|
107
|
-
for (const character of characters) {
|
|
108
|
-
const previous = sources.at(-1);
|
|
109
|
-
if (deficit > 0 && previous !== undefined && isErCharacter(character)) {
|
|
110
|
-
sources[sources.length - 1] = previous + character;
|
|
111
|
-
deficit--;
|
|
112
|
-
continue;
|
|
113
|
-
}
|
|
114
|
-
sources.push(character);
|
|
115
|
-
}
|
|
116
|
-
/* c8 ignore next 3 -- the deficit is 儿 by construction, but a source that
|
|
117
|
-
wrote one somewhere else would otherwise misalign every later syllable */
|
|
118
|
-
return sources.length === reading.length
|
|
119
|
-
? sources
|
|
120
|
-
: reading.map((_, at) => (at === 0 ? word : undefined));
|
|
121
|
-
}
|
|
122
|
-
/**
|
|
123
|
-
* Write one decoded word as one piece per syllable.
|
|
124
|
-
*
|
|
125
|
-
* Only proper nouns are capitalised here; a sentence capital is applied to the
|
|
126
|
-
* whole conversion afterwards, since it belongs to whichever run happens to
|
|
127
|
-
* start the sentence.
|
|
128
|
-
*/
|
|
129
|
-
function writeWord(reading, confidence, word, written) {
|
|
130
|
-
if (reading.length === 0) {
|
|
131
|
-
return [sourcePiece(word.text)];
|
|
132
|
-
}
|
|
133
|
-
// A tone number already ends its syllable, raised or not, so `xi1an1` cannot
|
|
134
|
-
// be misread and the 隔音符号 would only be noise.
|
|
135
|
-
const isNumbered = written.notation === "numbers" || written.notation === "superscript";
|
|
136
|
-
const spellings = markWord(reading.map((syllable) => writeSyllable(syllable, written.notation)), isNumbered ? "never" : written.apostrophe);
|
|
137
|
-
const isCapitalised = word.isProperNoun && written.capitals !== "none";
|
|
138
|
-
const sources = sourcesOf(word.text, reading);
|
|
139
|
-
return spellings.map((spelling, at) => ({
|
|
140
|
-
text: at === 0 && isCapitalised ? capitaliseWord(spelling) : spelling,
|
|
141
|
-
syllable: reading[at],
|
|
142
|
-
confidence: confidence[at],
|
|
143
|
-
source: sources[at],
|
|
144
|
-
}));
|
|
145
|
-
}
|
|
146
|
-
/**
|
|
147
|
-
* A decoder that reports no confidence at all, which is every decoder but one.
|
|
148
|
-
*/
|
|
149
|
-
function unscored(decode) {
|
|
150
|
-
return (dictionary, run, before, hints) => decode(dictionary, run, before, hints).map((word) => ({
|
|
151
|
-
word,
|
|
152
|
-
confidence: [],
|
|
153
|
-
}));
|
|
154
|
-
}
|
|
155
|
-
/**
|
|
156
|
-
* The lattice decoder, reporting nothing about its own confidence.
|
|
157
|
-
*/
|
|
158
|
-
const LATTICE = unscored((dictionary, run, before, hints) => decodeRun(dictionary, run, READING_RULES, before, hints));
|
|
159
|
-
/**
|
|
160
|
-
* The lattice decoder, with what each reading was chosen over.
|
|
161
|
-
*/
|
|
162
|
-
const SCORED = (dictionary, run, before, hints) => decodeRunScored(dictionary, run, READING_RULES, before, hints);
|
|
163
|
-
/**
|
|
164
|
-
* The greedy baseline, which has nothing to report either way.
|
|
165
|
-
*
|
|
166
|
-
* The context in front of a run goes unused: longest-match has no way to weigh
|
|
167
|
-
* one segmentation against another, which is the whole reason it is the
|
|
168
|
-
* baseline, and a 汉字 it cannot report would only be another thing to trim.
|
|
169
|
-
*/
|
|
170
|
-
const GREEDY = unscored(decodeGreedily);
|
|
171
|
-
/**
|
|
172
|
-
* Write one Han run's worth of decoded words.
|
|
173
|
-
*/
|
|
174
|
-
function writeRun(dictionary, words, locale, written, sandhi) {
|
|
175
|
-
// Sandhi runs across the whole run rather than within a word, since 不 in one
|
|
176
|
-
// word assimilates to the tone starting the next. Third-tone sandhi needs to
|
|
177
|
-
// know where the words are all the same, so the grouping goes with it — and
|
|
178
|
-
// only when it is asked for, since dividing a word costs lookups.
|
|
179
|
-
const readings = words.map((scored) => readingFor(dictionary, scored.word, locale));
|
|
180
|
-
const grouping = sandhi?.thirdTone === true
|
|
181
|
-
? words.map((scored, index) => {
|
|
182
|
-
const reading = readings[index] ?? [];
|
|
183
|
-
return (divisionOf(dictionary, scored.word.text, reading) ?? reading.length);
|
|
184
|
-
})
|
|
185
|
-
: undefined;
|
|
186
|
-
const flattened = applySandhi(readings.flat(), sandhi, grouping);
|
|
187
|
-
let at = 0;
|
|
188
|
-
const pieces = [];
|
|
189
|
-
for (const [index, scored] of words.entries()) {
|
|
190
|
-
/* c8 ignore next -- readings is built by mapping over these same words */
|
|
191
|
-
const length = readings[index]?.length ?? 0;
|
|
192
|
-
if (index > 0) {
|
|
193
|
-
// A space, unless 分词连写 wrote a hyphen: 干干净净 is one orthographic
|
|
194
|
-
// word, `gāngān-jìngjìng`, cut into two decoded ones.
|
|
195
|
-
pieces.push(plainPiece(scored.word.separator ?? " "));
|
|
196
|
-
}
|
|
197
|
-
pieces.push(...writeWord(flattened.slice(at, at + length),
|
|
198
|
-
// A locale reading of a different length cannot be lined up with the
|
|
199
|
-
// confidence reported for the reading it replaced.
|
|
200
|
-
scored.confidence.length === length ? scored.confidence : [], scored.word, written));
|
|
201
|
-
at += length;
|
|
202
|
-
}
|
|
203
|
-
return pieces;
|
|
204
|
-
}
|
|
205
|
-
/**
|
|
206
|
-
* Rewrite every piece's text with a pass that reads across all of them.
|
|
207
|
-
*/
|
|
208
|
-
function rewrite(pieces, pass) {
|
|
209
|
-
const rewritten = pass(pieces.map((piece) => piece.text));
|
|
210
|
-
return pieces.map((piece, at) => {
|
|
211
|
-
/* c8 ignore next -- one part comes back for each part handed over */
|
|
212
|
-
const text = rewritten[at] ?? piece.text;
|
|
213
|
-
return text === piece.text ? piece : { ...piece, text };
|
|
214
|
-
});
|
|
215
|
-
}
|
|
216
|
-
/**
|
|
217
|
-
* The words a Han run decodes to, with 分词连写 applied.
|
|
218
|
-
*
|
|
219
|
-
* Grouping rewrites word boundaries and never the readings behind them, so the
|
|
220
|
-
* syllables — and the confidence beside them — survive it in order.
|
|
221
|
-
*/
|
|
222
|
-
function wordsOf(decoded, dictionary, isGrouped) {
|
|
223
|
-
return isGrouped
|
|
224
|
-
? regroup(decoded, applyGrouping(decoded.map((scored) => scored.word), dictionary))
|
|
225
|
-
: decoded;
|
|
226
|
-
}
|
|
227
|
-
/**
|
|
228
|
-
* What surrounds a run once it has been decoded: the character after it, and
|
|
229
|
-
* the syllable that character is read as.
|
|
230
|
-
*
|
|
231
|
-
* The syllable is the one part of a number's context that a decode has to
|
|
232
|
-
* supply, and it is what a 一 ending the number assimilates to.
|
|
233
|
-
*/
|
|
234
|
-
function surrounding(runs, decoded, at) {
|
|
235
|
-
return {
|
|
236
|
-
after: {
|
|
237
|
-
character: surroundingCharacters(runs, at).following,
|
|
238
|
-
syllable: decoded[at + 1]?.[0]?.word.reading[0],
|
|
239
|
-
},
|
|
240
|
-
isAfterHan: runs[at - 1]?.isHan === true,
|
|
241
|
-
};
|
|
242
|
-
}
|
|
243
|
-
/**
|
|
244
|
-
* The 汉字 a number in front of a Han run stands for, for that run's decode.
|
|
245
|
-
*
|
|
246
|
-
* Only the last segment of the run before, because only that one touches the
|
|
247
|
-
* Han: the D of 3D银行 comes between them, and a decode of 银行 that saw 三
|
|
248
|
-
* beside it would be reading a text nobody wrote.
|
|
249
|
-
*/
|
|
250
|
-
function numeralBefore(segments) {
|
|
251
|
-
return segments.at(-1)?.hanzi ?? "";
|
|
252
|
-
}
|
|
253
|
-
/**
|
|
254
|
-
* Whether a character wants a space between it and a number read out.
|
|
255
|
-
*
|
|
256
|
-
* A letter or a digit does; punctuation does not, so 20%。 keeps its full stop
|
|
257
|
-
* against the number.
|
|
258
|
-
*/
|
|
259
|
-
const WORDLIKE = /[\p{L}\p{N}]/u;
|
|
260
|
-
/**
|
|
261
|
-
* Whether two stretches take a space between them once one has been read.
|
|
262
|
-
*/
|
|
263
|
-
function isSpaced(before, after) {
|
|
264
|
-
return WORDLIKE.test(before.at(-1) ?? "") && WORDLIKE.test(after[0] ?? "");
|
|
265
|
-
}
|
|
266
|
-
/**
|
|
267
|
-
* Write a run whose words are already known, a word at a time.
|
|
268
|
-
*
|
|
269
|
-
* Each group is one orthographic word and takes the 隔音符号 within itself, so
|
|
270
|
-
* a time's minutes are `sānshí` rather than `sān shí` — the same grouping the
|
|
271
|
-
* number would get if the text had written 6点30分 out in 汉字.
|
|
272
|
-
*/
|
|
273
|
-
function groupedPieces(spelled, said, words, apostrophe) {
|
|
274
|
-
const pieces = [];
|
|
275
|
-
let at = 0;
|
|
276
|
-
for (const length of words) {
|
|
277
|
-
if (at > 0) {
|
|
278
|
-
pieces.push(plainPiece(" "));
|
|
279
|
-
}
|
|
280
|
-
const group = spelled.slice(at, at + length);
|
|
281
|
-
for (const [index, text] of markWord(group, apostrophe).entries()) {
|
|
282
|
-
pieces.push({
|
|
283
|
-
text,
|
|
284
|
-
syllable: said[at + index],
|
|
285
|
-
confidence: undefined,
|
|
286
|
-
source: undefined,
|
|
287
|
-
});
|
|
288
|
-
}
|
|
289
|
-
at += length;
|
|
290
|
-
}
|
|
291
|
-
return pieces;
|
|
292
|
-
}
|
|
293
|
-
/**
|
|
294
|
-
* Write a number's syllables as the pieces they are written with.
|
|
295
|
-
*
|
|
296
|
-
* A counted number is *one word*, which is what 正词法 6.1.5 asks for: 123 is
|
|
297
|
-
* `yībǎi'èrshísān` and not three words, so the syllables run together and take
|
|
298
|
-
* the 隔音符号 where one is needed. A number read out digit by digit is not a
|
|
299
|
-
* word at all — it is digits — so those are written apart: 1998年 is
|
|
300
|
-
* `yī jiǔ jiǔ bā nián`.
|
|
301
|
-
*/
|
|
302
|
-
function numberPieces(said, segment, written) {
|
|
303
|
-
const spelled = said.map((syllable) => writeSyllable(syllable, written.notation));
|
|
304
|
-
if (segment.style === "digits") {
|
|
305
|
-
return read(spelled.flatMap((text, at) => [
|
|
306
|
-
...(at === 0 ? [] : [plainPiece(" ")]),
|
|
307
|
-
{ text, syllable: said[at], confidence: undefined, source: undefined },
|
|
308
|
-
]), segment.text);
|
|
309
|
-
}
|
|
310
|
-
const isNumbered = written.notation === "numbers" || written.notation === "superscript";
|
|
311
|
-
const apostrophe = isNumbered ? "never" : written.apostrophe;
|
|
312
|
-
// A run that says where its words break gets them: a time is `liù diǎn
|
|
313
|
-
// sānshí fēn` and a decimal is `qīshíwǔ diǎn wǔ`, each counted part a word
|
|
314
|
-
// of its own and everything after the 点 a digit at a time.
|
|
315
|
-
if (segment.words !== undefined) {
|
|
316
|
-
return read(groupedPieces(spelled, said, segment.words, apostrophe), segment.text);
|
|
317
|
-
}
|
|
318
|
-
return read(markWord(spelled, apostrophe).map((text, at) => ({
|
|
319
|
-
text,
|
|
320
|
-
syllable: said[at],
|
|
321
|
-
confidence: undefined,
|
|
322
|
-
source: undefined,
|
|
323
|
-
})), segment.text);
|
|
324
|
-
}
|
|
325
|
-
/**
|
|
326
|
-
* Name what a read number is a reading of, once for the whole of it.
|
|
327
|
-
*
|
|
328
|
-
* A number is not read character by character the way a word is: 95% is
|
|
329
|
-
* `bǎifēnzhījiǔshíwǔ` over eight syllables and three written characters, and
|
|
330
|
-
* the order reverses on the way, so no syllable belongs to any one of them.
|
|
331
|
-
* The written form is therefore named once, by the first piece that says
|
|
332
|
-
* anything, and the rest read on into it.
|
|
333
|
-
*/
|
|
334
|
-
function read(pieces, source) {
|
|
335
|
-
const first = pieces.findIndex((piece) => piece.syllable !== undefined);
|
|
336
|
-
/* c8 ignore next 3 -- a read number has at least one syllable in it */
|
|
337
|
-
if (first === -1) {
|
|
338
|
-
return pieces;
|
|
339
|
-
}
|
|
340
|
-
return pieces.map((piece, at) => at === first ? { ...piece, source } : piece);
|
|
341
|
-
}
|
|
342
|
-
/**
|
|
343
|
-
* A stand-in for the pinyin either side of a run, which ends in a letter.
|
|
344
|
-
*/
|
|
345
|
-
function runEdge(isHan) {
|
|
346
|
-
return isHan ? "a" : "";
|
|
347
|
-
}
|
|
348
|
-
/**
|
|
349
|
-
* Write a stretch that was never Han, reading the numbers in it.
|
|
350
|
-
*
|
|
351
|
-
* Everything that is not a number goes through exactly as written, which is
|
|
352
|
-
* what this always did: digits are the only part of a non-Han run this package
|
|
353
|
-
* has anything to say about. Once a number *has* been read, though, the whole
|
|
354
|
-
* stretch is being said rather than shown, so its parts take the spacing of
|
|
355
|
-
* words — 3D打印 is `sān D dǎyìn` — and punctuation still takes none.
|
|
356
|
-
*/
|
|
357
|
-
function writeNumbers(text, segments, context, written, options) {
|
|
358
|
-
if (segments.every((segment) => segment.reading === undefined)) {
|
|
359
|
-
return [sourcePiece(text)];
|
|
360
|
-
}
|
|
361
|
-
const pieces = [];
|
|
362
|
-
let before = runEdge(context.isAfterHan);
|
|
363
|
-
for (const segment of segments) {
|
|
364
|
-
if (isSpaced(before, segment.text)) {
|
|
365
|
-
pieces.push(plainPiece(" "));
|
|
366
|
-
}
|
|
367
|
-
pieces.push(...(segment.reading === undefined
|
|
368
|
-
? [sourcePiece(segment.text)]
|
|
369
|
-
: numberPieces(saidNumeral(segment, context.after.syllable, options.sandhi), segment, written)));
|
|
370
|
-
// What decides the next space is what was *written*, not what was read:
|
|
371
|
-
// 95% ends in a sign and `bǎifēnzhījiǔshíwǔ` ends in a letter.
|
|
372
|
-
before = pieces.at(-1)?.text ?? before;
|
|
373
|
-
}
|
|
374
|
-
if (isSpaced(before, runEdge(context.after.character !== ""))) {
|
|
375
|
-
pieces.push(plainPiece(" "));
|
|
376
|
-
}
|
|
377
|
-
return pieces;
|
|
378
|
-
}
|
|
379
|
-
/**
|
|
380
|
-
* Run the pipeline over a text with a given decoder.
|
|
381
|
-
*/
|
|
382
|
-
function convertWith(decode, dictionary, text, options) {
|
|
383
|
-
const { locale = "zh-CN", notation = "marks", apostrophe = "always", capitals = "auto", punctuation = "latin", grouping = true, numbers = "read", sandhi, readings, } = options;
|
|
384
|
-
const written = { notation, apostrophe, capitals };
|
|
385
|
-
const converted = [];
|
|
386
|
-
const runs = [...splitRuns(text)];
|
|
387
|
-
// Parsed once for the whole text rather than per run, so that a malformed
|
|
388
|
-
// hint is reported whether or not a run happens to reach it.
|
|
389
|
-
const hints = readings === undefined ? undefined : resolveHints(readings);
|
|
390
|
-
// Where each run starts, in code points, so a caller counting positions from
|
|
391
|
-
// the start of the text can be met where the run puts them.
|
|
392
|
-
const starts = [];
|
|
393
|
-
let start = 0;
|
|
394
|
-
for (const run of runs) {
|
|
395
|
-
starts.push(start);
|
|
396
|
-
start += toCharacters(run.text).length;
|
|
397
|
-
}
|
|
398
|
-
// Read before anything is decoded, because a number needs to know what
|
|
399
|
-
// follows it — 1998年 is a year and 3个 is a count — and the character that
|
|
400
|
-
// decides it is there for the reading without a decode of its own.
|
|
401
|
-
const read = runs.map((run, at) => run.isHan || numbers === "keep"
|
|
402
|
-
? []
|
|
403
|
-
: readNumbersIn(run.text, surroundingCharacters(runs, at)));
|
|
404
|
-
// Decoded before anything is written, because a number's sandhi needs the
|
|
405
|
-
// syllable after it, and because a Han run needs the number in front of it:
|
|
406
|
-
// 2个人 is `liǎng gè rén` and 个人 on its own is the word `gèrén`.
|
|
407
|
-
const decoded = runs.map((run, at) => {
|
|
408
|
-
if (!run.isHan) {
|
|
409
|
-
return [];
|
|
410
|
-
}
|
|
411
|
-
const within = hints === undefined
|
|
412
|
-
? undefined
|
|
413
|
-
: hintsWithin(hints, starts[at] ?? 0, toCharacters(run.text).length);
|
|
414
|
-
const said = numeralBefore(read[at - 1] ?? []);
|
|
415
|
-
return wordsOf(decode(dictionary, run.text, said, within), dictionary, grouping);
|
|
416
|
-
});
|
|
417
|
-
for (const [at, run] of runs.entries()) {
|
|
418
|
-
const words = decoded[at] ?? [];
|
|
419
|
-
if (run.isHan) {
|
|
420
|
-
converted.push(...writeRun(dictionary, words, locale, written, sandhi));
|
|
421
|
-
continue;
|
|
422
|
-
}
|
|
423
|
-
converted.push(...writeNumbers(run.text, read[at] ?? [], surrounding(runs, decoded, at), written, { sandhi }));
|
|
424
|
-
}
|
|
425
|
-
let pieces = converted;
|
|
426
|
-
// Both of these read the whole conversion rather than one run: a sentence
|
|
427
|
-
// capital belongs to whichever run happens to start the sentence, and a mark
|
|
428
|
-
// needs to know whether anything follows it before it takes a space.
|
|
429
|
-
if (capitals === "auto" && isSentence(text)) {
|
|
430
|
-
pieces = rewrite(pieces, capitaliseSentenceParts);
|
|
431
|
-
}
|
|
432
|
-
return punctuation === "latin"
|
|
433
|
-
? rewrite(pieces, toLatinPunctuationParts)
|
|
434
|
-
: pieces;
|
|
435
|
-
}
|
|
436
|
-
/**
|
|
437
|
-
* Redistribute the decode's per-syllable confidence over regrouped words.
|
|
438
|
-
*
|
|
439
|
-
* 分词连写 moves word boundaries — 看 and 了 become 看了 — without touching a
|
|
440
|
-
* reading, so the run's syllables are the same syllables in the same order and
|
|
441
|
-
* are simply cut in different places.
|
|
442
|
-
*/
|
|
443
|
-
function regroup(decoded, grouped) {
|
|
444
|
-
const confidence = decoded.flatMap((scored) => [...scored.confidence]);
|
|
445
|
-
let at = 0;
|
|
446
|
-
return grouped.map((word) => {
|
|
447
|
-
const held = confidence.slice(at, at + word.reading.length);
|
|
448
|
-
at += word.reading.length;
|
|
449
|
-
return { word, confidence: held };
|
|
450
|
-
});
|
|
451
|
-
}
|
|
1
|
+
import { convertWith } from "./convert-pipeline.js";
|
|
2
|
+
import { GREEDY, LATTICE, SCORED } from "./decoders.js";
|
|
3
|
+
export { sourcesOf, } from "./pieces.js";
|
|
452
4
|
/**
|
|
453
5
|
* Convert hanzi to pinyin with the lattice decoder.
|
|
454
6
|
*
|
|
@@ -467,8 +19,8 @@ export function convert(dictionary, text, options = {}) {
|
|
|
467
19
|
* The same conversion {@link convert} performs and the same text once joined,
|
|
468
20
|
* kept in pieces so that each syllable can be rendered on its own terms.
|
|
469
21
|
* Everything the decode rejected is reported with it — see
|
|
470
|
-
* {@link ReadingConfidence} — which is what an
|
|
471
|
-
* reader where it was guessing.
|
|
22
|
+
* {@link import("./confidence.js").ReadingConfidence} — which is what an
|
|
23
|
+
* output format needs to show a reader where it was guessing.
|
|
472
24
|
*
|
|
473
25
|
* Costs a second sweep of the lattice, which is why it is not what
|
|
474
26
|
* {@link convert} runs.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convert.js","sourceRoot":"","sources":["../../src/decode/convert.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"convert.js","sourceRoot":"","sources":["../../src/decode/convert.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAExD,OAAO,EAIL,SAAS,GACV,MAAM,aAAa,CAAC;AAErB;;;;;;;;GAQG;AACH,MAAM,UAAU,OAAO,CACrB,UAAsB,EACtB,IAAY,EACZ,OAAO,GAAmB,EAAE;IAE5B,OAAO,UAAU,CAAC,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;AACrE,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,aAAa,CAC3B,UAAsB,EACtB,IAAY,EACZ,OAAO,GAAmB,EAAE;IAE5B,OAAO,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AACxD,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,qBAAqB,CACnC,UAAsB,EACtB,IAAY,EACZ,OAAO,GAAmB,EAAE;IAE5B,OAAO,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AACzD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,MAAiC;IAC1D,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACpD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAC7B,UAAsB,EACtB,IAAY,EACZ,OAAO,GAAmB,EAAE;IAE5B,OAAO,UAAU,CAAC,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;AACpE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CACnC,UAAsB,EACtB,IAAY,EACZ,OAAO,GAAmB,EAAE;IAE5B,OAAO,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AACxD,CAAC"}
|