Compress - Mengotomatiskan 1/2 dari aktivitas mengetik saya
(github.com/eschluntz)- Alat yang secara otomatis membuat singkatan pengetikan dari korpus tulisan sendiri, dan menghasilkan shortcut input yang digunakan di email dan Slack
- Mem-parsing korpus teks untuk menyarankan singkatan yang bisa menghemat karakter paling banyak saat mengetik, lalu membuat file konfigurasi untuk program shortcut keyboard Linux, Autokey
- Menemukan n-gram yang sering muncul dalam korpus untuk membuat kandidat pengganti dengan ekspresi yang lebih pendek, dan peringkat saran dihitung dengan
[jumlah karakter yang dihemat] * [frekuensi frasa] - Pemilihan singkatan bertujuan menghasilkan kependekan yang mudah diingat; singkatan yang ingin tetap diketik sebagai kata dikecualikan melalui blacklist, dan frasa yang lebih sering dipakai diprioritaskan mendapat singkatan yang lebih mudah diingat
- Juga menyediakan alat parsing Slack Data Export untuk menggunakan pesan Slack sebagai korpus
- Hanya admin workspace Slack yang bisa melakukan export
- Hanya channel publik yang diexport
- Ganti
USERNAME_TO_EXPORTdengan nama pengguna Slack lalu jalankanparse_slack.py - Export Slack disertai prosedur untuk dihapus dengan
srm
- Alur penggunaan dasarnya adalah menaruh korpus di
data/corpus/*.txt, membuat 200 kandidat teratas keoutput/suggested_shortcuts.yamldenganfind_suggested_phrases.py, lalu memindahkan item yang diinginkan keshortcuts.yamldan menghasilkan file konfigurasi Autokey dengangenerate_autokeys.py - Dependensi dipasang dengan
install.sh, dan saat ini telah diuji pada Python3.10.12 - Autokey saat ini hanya mendukung X11 di Linux dan tidak mendukung Wayland
- Konfigurasi Autokey yang dihasilkan diatur agar hanya berlaku saat Chrome sedang fokus, dan pengalaman penggunaan juga mencakup bahwa di terminal dan vscode lebih banyak masalah karena singkatan bertabrakan dengan perintah Linux pendek atau nama variabel
1 komentar
Komentar Hacker News
Saya juga menulis posting blog yang menyertakan video tentang proyek ini: https://erikschluntz.com/software/2023/08/26/compressing-my-...
Jarang-jarang ini adalah proyek sampingan yang benar-benar menghemat lebih banyak waktu daripada waktu yang saya investasikan :)
Idenya sangat cerdas, tetapi kalau caranya berubah seiring waktu, rasanya saya tidak ingin memakainya
Misalnya dijalankan setiap 6 bulan, lalu tahun lalu
dbberartidebugdan tahun ini menjadidatabase, itu bisa merusak memori otot dan kebiasaanJadi saya lebih penasaran dengan versi umum yang stabil dan bermanfaat untuk semua orang ketika dijalankan pada buku, email, dan pesan teks yang ditulis ribuan orang dari berbagai latar belakang dan konteks
Memperluas
tmenjadithedanstmenjadisomethingterasa jelas, tetapi saya penasaran apakah mungkin membuat satu set minimal sekitar 200–500 item yang bisa dipelajari semua orang dan menjadikannya semacam “keyboard standar”https://archive.org/details/evansbasicenglis00evan
Sebaiknya gunakan PDF; file TXT hampir tidak bisa dipakai karena kualitas OCR-nya buruk
Ini juga berguna: https://en.m.wikipedia.org/wiki/Most_common_words_in_English
suggested_shortcuts.yaml, lalu Anda menyalinnya keshortcuts.yaml, sehingga shortcut yang benar-benar diaktifkan bisa dikendalikan secara manual :)Dan tentu saja
the -> tada di bagian paling atas daftar: https://jonaquino.blogspot.com/2007/06/yublin-shorthand-for-...Seorang ahli kimia mungkin sering mengetik
dropperdan menginginkandp, tetapi seorang birokrat mungkin lebih memilihdepartmentKalau Anda bukan penutur asli bahasa Tionghoa, mungkin Anda tidak tahu bahwa bahasa Tionghoa punya fitur seperti ini bawaan
Secara resmi disebut 双拼(Shuangpin), yaitu cara mengetik dua huruf Latin untuk tiap kata guna memasukkan seluruh kata: https://zh.wikipedia.org/zh-sg/%E5%8F%8C%E6%8B%BC
Bahkan tanpa memakai Shuangpin secara formal, sebagian besar input method bahasa Tionghoa mendukung fitur serupa bernama 简拼 untuk frasa populer, sehingga Anda bisa memasukkan frasa berisi beberapa kata hanya dengan mengetik huruf Latin pertama dari tiap kata
Misalnya untuk mengetik
xiexie, yang berarti “thank you” dalam bahasa Tionghoa, biasanya cukup mengetikxxdan sebagian besar input method bahasa Tionghoa akan otomatis menyarankan karakter Han yang sesuaiMisalnya 「你想吃什麼」, yang berarti “what do you want to eat”, dimasukkan sebagai
n x c s mXiao long baodenganXLBjuga contoh dari ini. Saya tidak tahu ada sistem yang lebih luas seperti itu; kerenSaya sangat suka melihat proyek seperti ini
Akhir pekan lalu saya mengerjakan masalah serupa, tetapi targetnya adalah seluruh kata, bukan singkatan dari kamus buatan sendiri, dan dalam kasus umum caranya disesuaikan dengan korpus teks tertentu
Yang membuat saya penasaran adalah “bisakah kita membuat autocorrect yang disesuaikan dengan korpus teks tertentu?” Misalnya, jika sebuah dokumen sering memakai ungkapan panjang seperti
data augmentation, saya ingin melihat apakah itu bisa diotomatisasiPendekatannya adalah menghitung surprisal untuk kata tunggal dan 2-gram pada dataset umum, yaitu korpus NYT, lalu menambahkan bobot pada kata-kata yang ada di indeks target penyesuaian, kemudian membuat struktur data trie berbobot surprisal untuk digunakan sebagai autocomplete tingkat lanjut
Solusi yang berfungsi ada di sini: https://github.com/capjamesg/autowrite/blob/main/autocomplet...
Belum ada dokumentasi, dan saya berencana menambahkannya dalam beberapa hari; kalau ingin berdiskusi, silakan tinggalkan GitHub Issue
Mungkin saya saja yang bingung, apakah tujuannya mencari cara yang lebih kreatif untuk mengatakan ungkapan yang sama
Sebagai ide perluasan, bisa ditambahkan keylogger yang mengawasi input. Tentu saja, itu sendiri merupakan kelemahan
Caranya adalah mempelajari frasa yang sering dipakai pengguna, menemukan frasa umum lalu menyarankan singkatan, kemudian memberi tahu pengguna secara halus tentang singkatan itu setiap kali pengguna mengetik frasa lengkapnya
Dengan begitu siapa pun bisa memasangnya, hambatan masuknya rendah, dan produktivitas dapat meningkat bertahap seiring waktu
Idenya, data disimpan di penyimpanan aman di dalam perangkat agar tidak menjadi risiko keamanan
Rasanya konsep input method yang menyediakan autocomplete bahasa Inggris di desktop seperti di ponsel, atau menyediakan singkatan lewat framework input method seperti
fcitx5, akan menarikApakah misalnya setiap minggu riwayat Slack diekspor otomatis, frekuensi kata dihitung, lalu berdasarkan hasil yang terlihat beberapa ekspansi ditetapkan secara manual?
Strukturnya memakai
Bluetooth Keyboard -> ESP32sebagai host keyboard, lalu mengirim input tombol ke USB dan fileKalau punya uang, ada juga logger keyboard USB/PS2 yang menyimpan data ke disk
Kalau dibuat berkumpul ke arah itu, konsistensi antar beberapa komputer juga terbantu, dan bagus juga untuk orang yang memakai banyak komputer
Bagi saya, selain beberapa situasi chat, rasanya mengetik hampir tidak pernah menjadi bottleneck
Yang ada hanya interaksi yang akan terbantu oleh bandwidth tambahan dari video atau suara. Saya penasaran apakah singkatan seperti ini benar-benar berujung pada penghematan waktu kerja
Misalnya percakapan seperti “bisa unggah screenshot?” atau respons berupa mengirim tautan Calendly
Saat menulis teks panjang pun, sering terasa menyebalkan karena pikiran lebih cepat daripada ketikan, jadi ini juga membantu bagian itu
Mengetik adalah pekerjaan manual yang mengganggu proses berpikir, jadi makin sedikit waktu yang dihabiskan untuk masuk dan keluar dari aktivitas mengetik, makin cepat kita bisa kembali berpikir
Saya menghabiskan cukup banyak waktu untuk membuat text expansion yang akan saya pakai sendiri
Ternyata jauh lebih sulit daripada yang saya kira, dan susah menemukan alias yang cukup bernilai tanpa terlalu sering salah aktif
Karena setiap hari berkomunikasi dalam beberapa bahasa, ini menjadi lebih rumit, jadi sekarang saya memisahkan alias per aplikasi
Meski begitu, salah aktif masih ada, dan saya makin mendekati kesimpulan bahwa pada umumnya diperlukan delimiter
kk,zz,qq, di depan aliasMisalnya
qqmeadalah signature email sayaAkan bagus kalau alat di artikel asli juga menyarankan alias untuk frasa yang lebih panjang daripada yang saya lihat di README. Saya dengar TextExpander untuk MacOS melakukan itu, tetapi saya bukan pengguna Mac
Salah satu TODO adalah membuat blocklist alias yang harus dihindari dengan menggunakan korpus teks nyata yang dianalisis
Secara pribadi saya akui, saya tidak pernah suka singkatan ala SMS yang dipakai di ponsel sebelum iPhone
Itu salah satu alasan saya hampir tidak memakai SMS atau pesan teks kecuali benar-benar perlu
Saya sudah memakai text expansion sejak masa awal TextExpander yang berjalan di iOS dan macOS, dan sebagus apa pun keyboard iPhone, tetap merepotkan mengetik berulang-ulang hal seperti alamat rumah, peta rumah/kantor, serta informasi kerja dan pribadi. TextExpander sangat membantu
Setelah TextExpander beralih ke model berlangganan, saya mulai mencari alternatif, karena secara pribadi saya merasa model berlangganan tidak cocok untuk alat seperti ini. Snippets yang termasuk dalam Powerpack Alfred adalah alternatif yang lebih baik
macOS/iOS juga punya “Text Replacements” bawaan, tetapi sering gagal di luar aplikasi Apple. Yang ada di sini mirip dengan Text Replacement Apple, dan saya membiarkan fitur itu tetap ada sementara sisanya saya kelola dengan Alfred. Terus terang, kalau saya bisa benar-benar lepas dari Alfred, saya mungkin akan pindah ke sini
Namun saya ingin memakai delimiter untuk ekspansi agar tidak mengganggu pengetikan biasa. Saat ini saya memakai
,sebagai delimiter, karena dalam bahasa Inggris koma selalu diikuti spasi, sedangkan ekspansi saya hanya terjadi jika saya mengetik koma dan teks pendek tanpa spasi. Posisi tombol koma juga nyaman saat touch typingKalaupun tetap memakai Text Replacement OS, sepertinya saya akan memperkenalkan delimiter untuk mencegah kata otomatis diekspansi dalam situasi yang tidak diinginkan
https://textexpander.com
https://www.alfredapp.com
Penanganan pengecualian paling rinci adalah
.py. Umumnya.adalah delimiter, tetapi dibuat pengecualian di depanpyagar tidak mengganggu saat mengetik nama file PythonKarena bertahun-tahun memakai autocomplete, kemampuan bahasa Inggris saya sebagai bahasa kedua sudah memburuk
Saya sering tahu katanya tetapi tidak ingat ejaannya sehingga lupa pengucapannya, dan alat seperti ini rasanya akan benar-benar menghabisi kemampuan yang tersisa
Saya berpikir, bagaimana kalau alih-alih menghafal kata kunci, kita cukup menulis huruf-huruf pertamanya?
Beberapa minggu lalu saya bereksperimen dengan ChatGPT, tetapi sepertinya belum ada perangkat lunak yang sudah ada dengan fitur seperti ini.
Saya tidak terlalu mahir pemrograman, tetapi saya berharap ada yang membuatkannya: https://imgur.com/a/0o4zLwT
Akurasinya cukup bagus, tetapi saat meleset, rasanya sangat menjengkelkan.
Bahkan ketika bekerja dengan sempurna, setelah benar-benar saya coba, beban kognitifnya jauh lebih besar daripada mengetik seperti biasa.
Kalau sangat fokus, saya bisa memakai singkatan sambil menyamai kecepatan mengetik nyaman saya seperti biasa, tetapi tidak bisa melampauinya, dan pada akhirnya secara alami kembali ke pengetikan normal.
Namun, saya termasuk orang yang mengetik cepat dan banyak menulis, jadi prototipe ini pada dasarnya sedang berusaha mengalahkan proses di otak yang sudah dioptimalkan kuat selama sekitar 30 tahun. Mungkin ini bisa lebih cocok untuk orang yang sejak awal bukan pengetik cepat.