估计单词复杂度的算法

时间:2009-05-25 15:34:43

标签: algorithm

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

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

8 个答案:

答案 0 :(得分:12)

我会查看Carpalx website。该网站详细说明了他们如何为打字员评定不同的键盘布局,并且已经有一些开源软件可以为任何给定的键盘布局实现他们的算法。 (请务必查看typing effortmodel parameterskeyboard evaluation部分。)

答案 1 :(得分:3)

一种简单的方法:

根据手指位置对每个字母进行评分。为shift添加修饰符或乘数。也许为重复的字母添加减少量?

接受这个词,加上分数,你应该采用一种方法。

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

答案 2 :(得分:1)

您可以将键盘的二维表示形式保存在一个数组中,作为一种连接图形,键名称和坐标为节点,2个指针指向您的指针悬停在哪里(F和J周围? ),然后为每个输入键计算从图表中的键到2“悬停键”的距离,取最小值,加上一个班次(上限)惩罚并输出一个(可能加权的)分数。

答案 3 :(得分:1)

作为基础,您可以为每个键提供难度等级,然后只需添加评级。

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

一个词的常见程度也会对难度产生影响。更频繁地输入更常见的单词,以便大脑学习模式。此外,当一个单词包含一个常用单词时,它更容易输入,例如“hand”,因为它包含“and”。另一方面,只包含一个更常见单词的一部分的单词变得更难,因为大脑想要遵循更常见的模式。

答案 4 :(得分:1)

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

另一方面,拿第一个人并让他们输入“显微镜”这个词,他们可能会花费非常相似的时间来输入“Microsoft”,但程序员将会进入“ s“并且在删除并用正确的字符替换字符之前完成单词”Microsoft“,或者当他们的手指不能立即知道”显微镜“的模式时,当它们击中”s“时它们会明显变慢 - 事实上,我只需要输入3次,因为我的手指在没有我考虑的情况下自动为我完成模式。

因此,对于单词复杂性而言,它并不像计算与主键的距离那么简单,它归结为打字员的背景环境,他们通常的打字速度,他们对键盘的识字率和主机其他的事情。

答案 5 :(得分:1)

而不是猜测,衡量它。

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

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

你还需要以某种方式解释错误输入的字母。您可以直接丢弃这些,或者使用输入错误的字母为该字母对添加某种惩罚(反映出错误输入其中一个字母表示此字母对可能难以输入的事实)。

答案 6 :(得分:0)

您可能想要尝试一种非常基本的方法,为每个可以键入的键赋予一个值,只需添加您要评估的单词的所有键的值......

答案 7 :(得分:0)

完全基于按键之间的距离,使用按键表计算距离,并累加距离。