Nova ferramenta de compressão automática de digitação
Uma nova ferramenta foi desenvolvida para criar atalhos de digitação a partir de um corpus de escrita próprio. Esses atalhos são utilizados principalmente para e-mails e mensagens no Slack.
O programa analisa o corpus de texto e sugere quais atalhos devem ser utilizados para economizar mais letras ao digitar. Em seguida, ele gera arquivos de configuração para o Autokey, um programa linux que implementa atalhos de teclado!
Além disso, a ferramenta inclui uma funcionalidade opcional para analisar um Export de Dados do Slack das mensagens para criar um corpus.
Quais frases devem ser abreviadas?
O código busca no corpus frases comuns que podem ser substituídas por frases muito mais curtas. As sugestões são classificadas por [letras economizadas] * [frequência da frase].
Fiquei surpreso ao ver que palavras muito curtas e frequentes lideraram essa lista, como the -> t, em vez de frases mais longas que uso bastante, como what do you think -> wdytk.
Apenas ler os resultados foi divertido para ver como algumas de minhas escritas são repetitivas :)
Como escolher as abreviações?
Isso é em grande parte preferências e heurísticas para tentar gerar abreviações memoráveis para diferentes frases. Algumas das minhas filosofias de design foram:
A abreviação não pode ser uma palavra que eu queira digitar. Atualmente, isso é feito com uma lista negra, mas eu deveria mudar para usar meu corpus real. O objetivo é ser memorável. A primeira letra é a melhor escolha, e a primeira letra + última letra é a próxima escolha. Frases mais comuns têm prioridade para abreviações mais memoráveis.
Atualmente, isso é feito como uma etapa de pós-processamento manual, mas gosto de criar 'famílias' de abreviações para torná-las mais memoráveis. Alguns exemplos de heurísticas para isso são:
Plurais devem ter a mesma abreviação do singular, mas com um 's'. Por exemplo, robot -> r e robots -> rs. Se uma palavra tem uma abreviação, uma frase que contém essa palavra deve conter a abreviação. Por exemplo:
the -> t robot -> r the robot -> tr
Pense em como as abreviações de palavras semelhantes podem ser semelhantes também. Por exemplo:
some -> s someone -> sn something -> st sometime -> sti
Instruções
Execute o install.sh para instalar as dependências. Atualmente testado no python 3.10.12
Coloque qualquer corpus do seu texto que você deseja compactar em data/corpus/*.txt
Se você quiser usar seu histórico do Slack como corpus: exporte-o para uma pasta chamada data/slack_export. Somente administradores do workspace do Slack podem fazer isso (e ele só exporta canais públicos). Altere o USERNAME_TO_EXPORT no início do arquivo para seu nome de usuário do Slack. Execute o parse_slack.py. Isso irá gerar um novo documento de corpus em data/corpus/
EXCLUA SEU EXPORT DO SLACK COM srm
Execute o find_suggested_phrases.py. Isso irá gerar uma lista dos 200 principais atalhos sugeridos para output/suggested_shortcuts.yaml
Edite ou adicione os atalhos que você deseja, em seguida, copie o arquivo para shortcuts.yaml. Esta é uma etapa manual para que você possa personalizá-la sem que ela seja sobrescrita toda vez que você executar o script novamente.
Ele também é salvo no git mesmo sendo uma saída para que eu possa mantê-lo sincronizado em vários dos meus computadores :)
Se você está começando, sugiro começar com apenas 10-20 atalhos para facilitar a memorização deles
Execute o generate_autokeys.py para converter shortcuts.yaml em arquivos de configuração reais para o autokey
Instale o Autokey. Atualmente, o Autokey é suportado apenas no linux com X11, não no Wayland
Crie um link simbólico da saída para a configuração do autokey: ln -s output/autokey_phrases ~/.config/autokey/data/My Phrases/
A partir de agora, quando você editar shortcuts.yaml, poderá regerar e recarregar o autokey com reload.sh
Notas
O Autokey usa entrada simulada de teclado para substituir frases por suas abreviações. Testei várias extensões do Chrome, mas isso funcionou de maneira muito mais confiável sem entrar em conflito com o próprio javascript dos sites.
Confira os últimos vídeos publicados no canal