Skip to content

Commit

Permalink
Add information about 易码
Browse files Browse the repository at this point in the history
  • Loading branch information
forFudan committed Mar 10, 2024
1 parent c4434eb commit 9c4b405
Show file tree
Hide file tree
Showing 7 changed files with 1,876 additions and 200 deletions.
4 changes: 2 additions & 2 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ source 'https://rubygems.org'
gem "jekyll", "~> 4.3" # installed by `gem jekyll`
# gem "webrick" # required when using Ruby >= 3 and Jekyll <= 4.2.2

gem "just-the-docs", "0.5.0" # pinned to the current release
# gem "just-the-docs" # always download the latest release
# gem "just-the-docs", "0.5.0" # pinned to the current release
gem "just-the-docs" # always download the latest release

gem "webrick", "~> 1.7"
2 changes: 1 addition & 1 deletion Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ PLATFORMS

DEPENDENCIES
jekyll (~> 4.3)
just-the-docs (= 0.5.0)
just-the-docs
webrick (~> 1.7)

BUNDLED WITH
Expand Down
98 changes: 98 additions & 0 deletions docs/articles/yima.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
---
title: 易码
layout: default
parent: 相关文章
<!-- nav_order: 1 -->
---

<!-- omit in toc -->
# 易码
{: .no_toc }

<details open markdown="block">
<summary>
目录
</summary>
{: .text-delta }
1. TOC
{:toc}
</details>

## 简介

[易码](https://www.remnote.com/a/65e1c604ef303f6fde3deef0)是一个三码定长、纯字形、简体专精、出简不出全的输入方案。本页面讨论本输入方案,部分定义不同于官网,算是从另一个角度来探讨。

## 规则

易码共约 400 字根,归类后约 250,在 26 键上乱序排布。

每个字根又有两个固定属性:

- 字根前两笔。固定由一个字母代替。
- 字根末笔。固定由一个字母代替。

因此,字根可以认定为单编或者三编:

- 单编码 + 规则补码。
- 或,直接认定为三编码:第一小码为字根前两笔对应的字母,第二小码为字根末笔对应的字母。

以上两者等价。

### 理解为单编

假设我们理解易码是单编+规则补码,则规则为:

- 依次取首、次、末根
- 不足三码补末根前两笔对应编码
- 不足三码补末根末笔对应编码

### 理解为三编

假设我们理解易码为三编。单字拆分成若干字根后,最多取三根。假设首次末编码为 A B Z,由设末根前两笔对应字母为 x,末根最后一笔对应字母为 y。则单字编码规则为:

- 单字根字 Zxy
- 两字根字 AZx
- 三字根及以上字 ABZ

我们可以进行单行定义:

- 如果是单字根字,则认定首、次根为空值。
- 如果是双字根字,则认定次根为空置。
- 如果是三字根以上字,则认定为首、次、末根非空值。

则,易码的编码规则为:

ABZxy\[:3\]

## 简码

易码全码为三码,未设置一级简码(为了兼容四二顶),因此二简的设置在正常情况下不具有码长优势,它的作用主要是:

1. 在四二顶状态下节省码长。
2. 避重。因为全码状态下重码较多,因此在优化的时候,就对简码设置进行了优化。部分高频字出简,同时全码后置,让出三码码位给次频字。

易码未设置一级简码(为了兼容四二顶),同时设置了676个二级简码。不是所有的二级简码都是避重简码。观察到,字频前3000的汉字,占了日常使用频率的 99.18%。因此,对于新手来说,我们只需要记忆「避重简码」。

避重问题的起源是:部分高频二简字 A 的全码对应了另外一个次高频字 B。在打全码的状态下,A 因为后置,反而需要选重。因此,为了流畅输入,必须要对 A 的简码进行记忆。举例:

「这」、「近」两个字的全码都是 oap,我们对「这」设置二级简码 oa,则全码的排序为 「近」「这」。如果想打「这」却打了全码 oap,我们反而要选重。

那么,哪部分简码尤其需要注意呢?也就是满足以下三个条件:

- 该全码位设置了简码。
- 该全码位让简码字后,首选是前3000的汉字。

这样的避重二简字一共是 125 个,[其二简矩阵点此](./yima_simp_matrix_3000.html)

放宽到字频前 5000 的汉字,则避重二简字一共是 198个,[其二简矩阵点此](./yima_simp_matrix_5000.html)

## 排序

这里给出一个码表排序的思路:

- 二级简码字,及其简码
- 125 个避重二简字对应的全码次选字,及其全码
- 125 个避重二级简码字,及其全码(出简的字全码后置)
- 剩下的汉字按字频排序

注意到,不是所有的二简字都是在码表中默认全码后置的。原因在于这部分二简字对应的全码字字频太低,记忆二简的耗费太大,可以交给时间。到以后,等用户对于二简字都熟悉了,可以交由输入平台的全码后置功能实现后置。
Loading

0 comments on commit 9c4b405

Please sign in to comment.