Compress - Yazmamın 1/2'sini otomatikleştirdim
(github.com/eschluntz)- Kendi yazı korpusunuzdan otomatik olarak yazma kısayolları oluşturan ve e-posta ile Slack'te kullandığınız girdi kısayollarını üreten bir araç
- Metin korpusunu ayrıştırarak yazarken en fazla karakter tasarrufu sağlayacak kısayolları önerir ve Linux klavye kısayol programı Autokey için yapılandırma dosyası oluşturur
- Korpusta sık geçen n-gram'ları bulup bunları daha kısa ifadelerle değiştirmek için adaylar üretir; öneri sıralaması
[tasarruf edilen karakter sayısı] * [ifade sıklığı]olarak hesaplanır - Kısayol seçimi, hatırlaması kolay kısaltmaları hedefler; kelime olarak yazmak isteyebileceğiniz kısaltmalar kara listeye alınarak hariç tutulur ve daha sık kullanılan ifadelere daha kolay hatırlanabilir kısaltmalar öncelikli olarak atanır
- Slack mesajlarını korpus olarak kullanmak için Slack Data Export ayrıştırma aracı da sağlar
- Yalnızca Slack çalışma alanı yöneticileri export yapabilir
- Yalnızca public channel'lar export edilir
USERNAME_TO_EXPORTdeğerini Slack kullanıcı adıyla değiştirdikten sonraparse_slack.pyçalıştırılmalıdır- Slack export'unu
srmile silmeyi söyleyen bir prosedür içerir
- Temel kullanım akışı: korpusu
data/corpus/*.txtiçine koymak,find_suggested_phrases.pyile en iyi 200 adayıoutput/suggested_shortcuts.yamliçinde oluşturmak, istenen öğelerishortcuts.yamldosyasına taşımak vegenerate_autokeys.pyile Autokey yapılandırma dosyasını üretmek şeklindedir - Bağımlılıklar
install.shile kurulur; şu anda Python3.10.12üzerinde test edilmiştir - Autokey şu anda Linux'ta yalnızca X11 destekler, Wayland'i desteklemez
- Oluşturulan Autokey yapılandırması yalnızca Chrome odaktayken uygulanacak şekilde yapılandırılmıştır; terminal ve vscode'da kısa Linux komutları veya değişken adlarıyla kısaltmaların çakışıp daha fazla soruna yol açtığına dair kullanıcı deneyimi de yer alır
1 yorum
Hacker News yorumları
Proje hakkında bir video da içeren bir blog yazısı yazdım: https://erikschluntz.com/software/2023/08/26/compressing-my-...
Nadiren, harcadığım zamandan daha fazlasını gerçekten kazandıran bir yan proje oldu :)
Fikir çok zekice ama zamanla değişen bir yöntemse kullanmak istemezdim
Örneğin bunu 6 ayda bir çalıştırdınız; geçen yıl
dbdebugiken bu yıldatabaseolursa kas hafızasını ve alışkanlıkları bozabilirBu yüzden, farklı arka plan ve bağlamlardan binlerce kişinin yazdığı kitaplar, e-postalar ve mesajlar üzerinde çalıştırıldığında herkes için istikrarlı biçimde faydalı olacak genel amaçlı bir sürüm daha çok ilgimi çekiyor
t'nintheye,st'ninsomethinge genişlemesi bariz görünüyor; ama herkesin öğrenebileceği bir “standart klavye” haline gelecek 200-500 kadar minimal bir set oluşturulabilir mi merak ediyorumhttps://archive.org/details/evansbasicenglis00evan
PDF'yi kullanmak daha iyi; TXT dosyasının OCR kalitesi kötü olduğu için neredeyse kullanılamaz
Bu da faydalı: https://en.m.wikipedia.org/wiki/Most_common_words_in_English
suggested_shortcuts.yamlçıktısı üretiyor; oradanshortcuts.yamliçine kopyalayarak gerçekten etkinleştirilecek kısayolları elle kontrol edebiliyorsunuz :)Ve yine
the -> tlistenin en tepesinde: https://jonaquino.blogspot.com/2007/06/yublin-shorthand-for-...Bir kimyager
dropperı sık yazdığı içindpisteyebilir, ama bir bürokratdepartmentı daha çok tercih edebilirAna dili Çince olmayanlar bilmeyebilir; Çince'de bu tür bir özellik yerleşik olarak var
Resmî adı 双拼(Shuangpin) ve her kelime için 2 İngilizce harf girerek tüm kelimeyi yazma yöntemi: https://zh.wikipedia.org/zh-sg/%E5%8F%8C%E6%8B%BC
Shuangpin'i resmen kullanmasanız bile çoğu Çince giriş yöntemi, popüler ifadeler için benzer bir 简拼 özelliğini destekler; böylece çok kelimeli ifadeleri her kelimenin yalnızca ilk İngilizce harfini yazarak girebilirsiniz
Örneğin Çince “thank you” anlamındaki
xiexieyi girmek için genelde sadecexxyazarsınız; çoğu Çince giriş yöntemi ilgili Çince karakterleri otomatik olarak önerirÖrneğin “what do you want to eat” anlamındaki 「你想吃什麼」
n x c s mile girilirXLBileXiao long baoyazmak da buna bir örnek mi merak ediyorum. Daha geniş bir sistem olduğunu bilmiyordum, harikaBöyle projeler görmeyi gerçekten seviyorum
Hafta sonu benzer bir problem üzerinde çalıştım; kendi hazırladığım sözlükteki kısaltmalar yerine tam kelimeleri hedefliyordu ve genel durumda verilen metin derlemine göre uyarlanıyordu
Merak ettiğim şey şuydu: “Verilen bir metin derlemine göre uyarlanmış bir otomatik düzeltici yapılabilir mi?” Örneğin bir belgede
data augmentationgibi uzun ifadeleri çok kullanıyorsanız, bunu otomatikleştirmenin mümkün olup olmadığını görmek istedimYaklaşımım, genel bir veri kümesi olan NYT derleminde tekil kelimelerin ve 2-gramların şaşırtıcılığını hesaplamak, uyarlama yapılacak dizindeki kelimelere ağırlık eklemek, ardından şaşırtıcılıkla ağırlıklandırılmış bir trie veri yapısı kurup bunu gelişmiş otomatik tamamlama olarak kullanmaktı
Çalışan çözüm burada: https://github.com/capjamesg/autowrite/blob/main/autocomplet...
Henüz dokümantasyon yok; birkaç gün içinde eklemeyi planlıyorum. Konuşmak isterseniz GitHub Issue bırakabilirsiniz
Belki de aynı ifadeyi daha yaratıcı şekilde söylemenin yollarını aramaya çalıştığını sanıp ben karıştırmış olabilirim
Genişletme fikri olarak, girdiyi izleyen bir keylogger eklenebilir. Elbette bu başlı başına bir dezavantaj
Kullanıcının sık kullandığı ifadeleri öğrenip, yaygın ifadeleri bularak kısayollar önermek ve kullanıcı tüm ifadeyi her yazdığında kısayolu nazikçe hatırlatmak gibi bir yöntem
Böylece herkes kurabilir, giriş bariyeri de düşük olur ve zamanla verimlilik kademeli olarak artabilir
Verileri cihaz içindeki güvenli depoda tutarak bunun bir güvenlik riski olmamasını amaçlıyordum
Masaüstünde telefondaki gibi İngilizce otomatik tamamlama sunan ya da
fcitx5gibi girdi yöntemi framework’leriyle kısayollar sağlayan bir girdi yöntemi ilginç bir konsept olabilirHer hafta Slack kayıtlarını otomatik dışa aktarıp kelime sıklığını hesapladıktan sonra, görünen sonuçlara göre elle birkaç genişletme mi tanımlanır?
Bluetooth Keyboard -> ESP32yapısında ESP32’yi klavye host’u olarak kullanıp tuş girişlerini USB’ye ve dosyaya gönderen bir yapıydıParan varsa veriyi diske kaydeden USB/PS2 klavye logger’ları da var
O yöne yakınsamayı sağlarsanız farklı bilgisayarlar arasında tutarlılığa da yardımcı olur, birden fazla bilgisayar kullananlar için de iyi olur
Benim için birkaç sohbet durumu dışında yazma hızının neredeyse hiç darboğaz olduğunu sanmıyorum
Aksine, görüntü ya da sesin ek bant genişliğinin faydalı olacağı etkileşimler var. Bu tür kısayolların gerçekten çalışma süresinden tasarrufa dönüşüp dönüşmediğini merak ediyorum
Örneğin “ekran görüntüsü yükleyebilir misiniz?” gibi konuşmalar ya da Calendly bağlantısı gönderme türü yanıtlar
Uzun metin yazarken de düşüncelerin yazma hızından hızlı olması sık sık sinir bozucu oluyor; bu kısımda da yardımcı oluyor
Yazmak, düşünmeyi bölen elle yapılan bir iş; yazmaya girip çıkmak için harcanan süre ne kadar azalırsa düşünmeye o kadar hızlı geri dönülebilir
Kendim kullanmak için metin genişletme yapmaya epey zaman harcadım
Beklediğimden çok daha zordu; çok sık yanlış çalışmadan yeterince değer sağlayacak takma adlar bulmak zor
Her gün birden çok dilde iletişim kurduğum için iş daha da karmaşıklaştı; şu anda takma adları uygulama bazında ayırdım
Yine de yanlış tetiklemeler var ve genel olarak bir ayırıcı gerektiği sonucuna yaklaşıyorum
kk,zz,qqgibi kelimelerin ya da değişken adlarının ilk harfi olarak pek çıkmayan karakter kombinasyonları ekliyorumÖrneğin
qqmebenim e-posta imzamOrijinal yazıdaki araç, README’de gördüğümden daha uzun ifadeler için de takma ad önerebilse iyi olurdu. MacOS için TextExpander’ın bunu yaptığını duydum ama Mac kullanıcısı değilim
TODO’lardan biri de analiz edilen gerçek metin derlemini kullanarak kaçınılması gereken takma adlar için bir engelleme listesi üretmek
Kişisel bir itiraf olarak, iPhone öncesi telefonlarda kullanılan SMS tarzı kısaltmaları hiç sevmedim
Mecbur kalmadıkça SMS ya da metin mesajı neredeyse hiç kullanmamamın nedenlerinden biri buydu
iOS ve macOS’te çalışan TextExpander’ın ilk zamanlarından beri metin genişletme kullanıyorum; iPhone klavyesi ne kadar iyi olursa olsun ev adresi, ev/iş haritaları, iş ve kişisel bilgiler gibi şeyleri tekrar tekrar girmek zahmetliydi. TextExpander çok yardımcı oldu
Sonra TextExpander abonelik modeline geçince alternatif aramaya başladım; kişisel olarak bu tür araçlar için abonelik modelinin uygun olmadığını düşündüm. Alfred’in Powerpack’ine dahil olan Snippets daha iyi bir alternatiftü
macOS/iOS’te yerleşik “Text Replacements” da var ama Apple uygulaması olmayan yerlerde sık sık başarısız oluyor. Buradaki şey Apple’ın Text Replacement’ına benziyor; ben o özelliği bırakıp geri kalanını Alfred ile yönetiyorum. Açıkçası Alfred’den tamamen kurtulmamı sağlayabilirse buna geçebilirim
Ancak normal yazmayı engellememesi için genişletmelerde ayırıcı kullanmak istiyorum. Şu anda ayırıcı olarak
,kullanıyorum; çünkü İngilizcede virgülden sonra her zaman boşluk gelir ve benim genişletmelerim yalnızca boşluk olmadan virgül ve kısa metin yazdığımda gerçekleşiyor. On parmak yazarken virgül tuşunun konumu da rahatİşletim sisteminin Text Replacement’ında kalacak olsam bile, kelimelerin istenmeyen durumlarda otomatik genişlemesini önlemek için ayırıcı getireceğimi düşünüyorum
https://textexpander.com
https://www.alfredapp.com
En ayrıntılı istisna işleme
.py. Normalde.bir ayırıcıdır ama Python dosya adı yazarken engel olmaması içinpyöncesinde istisna yaptımYıllardır süren otomatik tamamlama yüzünden ikinci dilim olan İngilizce becerim zaten kötüleşti
Kelimeyi bildiğim hâlde yazımını hatırlayamadığım için telaffuzunu unuttuğum sık oluyor; bu tür araçlar kalan becerimi de tamamen yok edecek gibi geliyor
Anahtar kelimeleri ezberlemek yerine ilk harfleri yazsak olmaz mı diye düşünüyorum
Birkaç hafta önce ChatGPT ile denedim; bu tür bir özelliğe sahip mevcut bir yazılım yok gibi görünüyor
Programlamada çok iyi değilim ama keşke biri yapsa: https://imgur.com/a/0o4zLwT
Doğruluğu oldukça iyi, ama ıskaladığında çok sinir bozucu oluyor
Kusursuz çalışsa bile, pratikte kullanınca normalde yazmaya kıyasla bilişsel yükü çok daha fazlaydı
Çok odaklanırsam kısaltmalar kullanırken normal rahat yazma hızımı yakalayabiliyordum ama aşamıyordum; sonunda doğal olarak sıradan yazmaya geri dönüyordum
Ancak ben hızlı yazan ve çok metin üreten biriyim; bu prototip, beynimde yaklaşık 30 yıldır güçlü biçimde optimize olmuş bir süreci yenmeye çalışıyor sayılır. Zaten hızlı yazan biri olmayanlar için daha uygun olabilir