Algorithm 估计单词';复杂性

Algorithm 估计单词';复杂性,algorithm,Algorithm,我需要估计一下打字员用词的复杂程度。 例如,“受苦”比“人”容易,因为“o”和“p”比“e”和“r”难。 小指按下的任何键都比食指按下的键更难击中。 而且从基本位置移动手指比不移动要困难得多。 并且使用shift键也可以增加硬度 在这种情况下可以采用什么方法?一种简单的方法: 根据手指位置为每个字母打分。为shift添加修改器或乘数。可能会为重复的字母增加一个折扣 用这个词,把分数加起来,你应该有一种方法 测试,根据需要修改分数,重复,直到你有一个有意义的分布。你可以将键盘的二维表示作为一种连接

我需要估计一下打字员用词的复杂程度。 例如,“受苦”比“人”容易,因为“o”和“p”比“e”和“r”难。 小指按下的任何键都比食指按下的键更难击中。 而且从基本位置移动手指比不移动要困难得多。 并且使用shift键也可以增加硬度

在这种情况下可以采用什么方法?

一种简单的方法:

根据手指位置为每个字母打分。为shift添加修改器或乘数。可能会为重复的字母增加一个折扣

用这个词,把分数加起来,你应该有一种方法


测试,根据需要修改分数,重复,直到你有一个有意义的分布。

你可以将键盘的二维表示作为一种连接图,以键名和坐标作为节点,将两个坐标放在你手悬停的位置(围绕F和J?),然后为每个输入键计算从图形中的键到2个“悬停键”的距离,取最小值,加上移位(上限)惩罚并输出一个(可能加权)分数。

您可能想尝试一种非常基本的方法,为可能键入的每个键指定一个值,只需将要计算的单词的所有键的值相加…

完全基于键之间的距离,使用键表计算距离,然后将距离相加

我会检查一下。该网站详细介绍了他们如何为打字员评价不同的键盘布局,并且已经有了一些开源软件,可以为任何给定的键盘布局实现他们的算法。(确保查看、和部分。)

作为基础,您可以给每个关键点一个难度等级,然后只添加等级

然后你可能想找出困难的手指模式。例如,组合“sle”比“sfe”更难,因为前者是左-右-左组合。由于左手和右手连接到大脑的每一半,因此大脑协调左手和右手比协调同一只手上的手指更困难。在这种组合中按错误的顺序按键是很常见的


一个词的普遍程度也会影响难度。更常见的单词被打得更频繁,这样大脑就可以学习这些模式。此外,当一个单词包含一个普通单词时,它更容易键入,就像“手”包含“和”一样。另一方面,由于大脑想要遵循更常见的模式,只包含更常见单词的一部分的单词变得更难。

打字困难是非常主观的-它类似于学习演奏乐器,因此一个人很难打字的单词对另一个人来说是小菜一碟。举个例子,一个从未坐过键盘的人,让他们输入“微软”这个词。。。他们会捕猎和啄食,可能需要几秒钟的时间来打字。以你的普通程序员为例,他们每天会打几十次这个词,他们会在不到一秒钟的时间里把它说出来

另一方面,让第一人称输入单词“Microscope”,他们可能会花费与输入“Microsoft”非常相似的时间,但是程序员会到达“s”,或者在删除字符并用正确的字符替换之前以“Microsoft”的形式完成单词,或者,当他们的手指不能立即知道“显微镜”的图案时,他们会明显地慢下来,因为我的手指会自动为我完成图案,而我不会去想它


因此,就单词的复杂程度而言,它并不像计算主键盘的距离那么简单,而是取决于打字员的背景环境、他们通常的打字速度、他们对键盘的读写能力以及许多其他因素。

与其猜测,不如测量它。

列出一张100个单词的清单,让几个人输入。测量每次击键之间的时间量。对于每一对字母,累积用户从第一个字母移动到第二个字母所花费的总时间,然后除以该字母对获得平均值的次数,这是对在这两个键之间移动难度的实际直接估计

当然,有些字母对不会出现在你的单词中(例如ZQ)。但这些字母对可能与你的工作无关,除非你需要对字母的随机序列打分


您还需要以某种方式解释输入错误的字母。您可以直接丢弃这些字母,或者使用键入错误的字母给该字母对增加某种惩罚(反映出键入错误的一个字母表示该字母对可能很难键入)。

不仅F和J悬停键,ASD和KL:还包括悬停键。但是多谢。重复的信,是另一个。你也应该考虑,在两个手之间来回打字比用一只手打字的单词容易。我明白了,谢谢。但它是为接触触摸打字的人而不是新手而测量的。