2010-12-16 5 views
10

Я ищу достаточно простой алгоритм для определения того, как сложно вводить слово в макете QWERTY.Определение того, как сложно слово набирать на клавиатуре QWERTY

Слова не обязательно должны быть словарными словами, поэтому список обычно ошибочных слов или тому подобного не является вариантом. Я уверен, что должен существовать существующий, проверенный алгоритм, но я ничего не могу найти.

Может ли кто-нибудь предложить какую-либо помощь или совет? Я кодирую алгоритм в python, но любой другой язык или псевдокод приветствуются.

+0

Может быть, если вы читали о логике позади клавиатуры Dvorak, это может помочь вам. – ruslik 2010-12-16 10:02:22

+2

Грубым решением было бы получить данные о ошибках ввода (обсуждалось http://stackoverflow.com/questions/1801647/what-is-the-best-source-for-typo-statistics) и выработать коэффициент ошибок для каждого ключ. Это проблематично, потому что опечатки часто являются контекстуальными (транспозиции, путаница между похожими словами, общие окончания и т. Д.). Чтобы принять во внимание какой-то контекст, вы можете сделать вместо этого 2 грамма (коэффициент ошибок для каждой клавиши, следующей за каждым другим ключом). – 2010-12-16 10:28:40

ответ

5

Существует this comparison между макетами QWERTY, Colemak и Dvorak, которые вычисляют расстояние между введенными ключами, процентное соотношение клавиш на одной руке и т. Д. С исходным кодом на Java. Эти метрики в комбинации должны дать очень хорошую оценку «печатаемости» слова.

0

Я думаю, manhatten distances алгоритм может быть самым близким к тому, что вы смотрите. Этот алгоритм учитывает расстояние цели от источника в четырехугольной форме.

Что касается реализации в Python, для вашей конкретной потребности, трудности в QWERTY, вам придется написать один для себя, в противном случае некоторые реализации Manhatten расстояния можно найти, если вы Google для «п головоломки решателя в питон»

+0

Манхэттен расстояние между двумя точками? – 2010-12-16 09:57:55

+2

Манхэттенские расстояния между клавишами могут быть полезны только для ввода 1-пальца. – ruslik 2010-12-16 10:00:45

1

Выньте свой набор Scrabble, запишите оценки для каждой буквы, суммируйте оценки за слово, эй, у вас есть свой алгоритм. Не уверен, что он полностью удовлетворяет вашим требованиям, но он может указать вам в полезном направлении. Например, вы можете присвоить оценки не только отдельным буквам, но также и ди- и триграмм.

Я не знаю ни одного существующего источника необходимой вам информации, возможно, вы могли бы придумать свои собственные баллы, изучив клавиатуру и присвоив более высокие баллы более трудным буквам: так что 1 для 'a', 8 для 'q', 2 для 'm' и т. Д.

EDIT: Я, кажется, смутил людей больше, чем обычно, когда я отвечаю на SO. Вот основные черты моего предложения:

a) Список всех триграмм и диграмм, которые происходят на английском (или на вашем языке). Каждому из них присваивается сложный балл. Сделайте то же самое для отдельных букв (ведь буква из 4 букв может состоять из триграммы и буквы, а не двух цифр).

b) Оцените сложность ввода слова как суммы сложности ввода его компонентов.

Что касается оценки сложности, у меня нет подсказки, но вы можете начать с 1 для письма на домашних клавишах на клавиатуре, 2 для буквы, которая использует указательные пальцы, но не является домашним ключом, 3 для письма, которое использует 2 или 3 пальца на руке и так далее. Затем для диграмм, забивайте низкие для простых букв слева и справа (или справа и слева) последовательно, высоко для сложных букв с одной стороны в последовательности (например, qz, хотя это, возможно, не подходит для английского). И по тебе.

1

У меня нет каких-либо алгоритмов предлагать, но несколько подсказок:

  • я использую обе руки, чтобы набрать, а это означает, что клавиатура грубо разделить на 2 половинки, часто, что у меня есть координационные вопросы между двумя руками, что означает, что каждый тип букв в «правильном» порядке, но чередование неверно.Это особенно верно, если у одной руки больше букв, чем у других, типичных: «the», потому что левая рука t и e и правая рука h.

  • «проскальзывает» часто, что означает, что часто время будет пропустить ключ и вместо этого нажать другую клавишу; «добавление»/«удаление» также часто происходит, т. е. набирает дополнительный ключ или не достаточно сильно продвигается -> это означает, что (очевидно), чем больше букв есть, тем труднее получить правильное слово.

  • Смешанный футляр делает его сложнее, требуется синхронизация между нажатием CAPS и нажатием клавиш, поэтому вполне вероятно, что близлежащие клавиши не будут иметь правый верхний/нижний регистр.

Надеется, что это помогает ...