shuangpin-heatmap icon indicating copy to clipboard operation
shuangpin-heatmap copied to clipboard

Which DVORAK variant is this? 这是哪种DVORAK?

Open infinity0 opened this issue 2 years ago • 3 comments

你好,我是华侨/华裔,在重学中文,对汉语键盘布局感兴趣。我平常再用UK(英国)DVORAK键盘布局写英文。

我想问,这个存储库里的DVORAK键盘布局是从哪里来的?平常的英文DVORAK键盘布局使用

A O E U I D H T N S

但是你的使用

A O E I U D R T S N

这是根据汉字的频率,还是什么?是你自己计算得吗?

infinity0 avatar Sep 23 '22 17:09 infinity0

@infinity0 恩, 我改了一点 (在 https://github.com/district10/neo_keyboard_layout 可以看到. 主要参考 https://www.cnblogs.com/zhangshenjia/archive/2012/04/11/qwerty_dvorak_colemak.html 的建议 "高频键 r 和 i 仍需要移动才能按到,而 u 和 h 不是很高频的键却放在了本位" 改了 u/i/r/h/l 等几个键).

如果你要生成标准 dvorak 的 heatmap 的话, 把 https://github.com/district10/shuangpin-heatmap/blob/master/shuangpin_heatmap.py#L24-L27 改一下:

# 这三行改到标准的 dvorak
DVORAK = \
    ";,.ky" "fgclz[]\\" \
    "aoeiu" "drtsn'" \
    "pqjhx" "bmwv/"

然后重新运行一下 make update_heatmaps.

district10 avatar Sep 25 '22 05:09 district10

谢谢,明白了。张砷镓的建议是为做英文布局的。做中文布局时,这个建议就没什么意思,应该总基本原则重算。差不多就是,把(中文)最常见的字母放在home row键上。(更多例子:[1] [2])我的兴趣就是想找个或做个根据这种基本原则来算的双拼布局。

我看你的Makefile用data/sample2.txt,这也不是很代表的中文文件。你以前也用过一个正式的frequency table,但是改掉了 https://github.com/district10/shuangpin-heatmap/blob/master/shuangpin_heatmap.py#L433-L442 。是不是因为字母计数太大了,搞得程序太慢了?把每个计数除以一千或一万,可能会好一点儿。可惜,我现在执行不了这个程序,因为pyhanlp需要<= python 3.8,我系统只有>= python 3.9。

infinity0 avatar Sep 25 '22 22:09 infinity0

@infinity0 张还有篇 Dvorak布局下一种比较理想的双拼方案 . 但我没细看.

( 因为我的双拼已经在现在的键盘布局下固定到了自然码, 不打算再迁移了.)

shuangpin_heatmap 现在是用户自己传入待统计文本. 我忘了为啥关闭了语料库统计的结果, 可能是考虑到预料中统计的报纸中的汉字使用和一般日常使用的会不太一样. 我在 https://github.com/district10/qwerty-learner-shuangpin-dicts 爬取了一些豆瓣, 知乎的文字, 感觉更现代, 更接近我们日常打字的内容. (可能更好的是输入法中打出的文字, 聊天记录)

可以安装个 conda 环境, 切 python 版本还比较简单.

district10 avatar Sep 26 '22 03:09 district10