Otomatik tamamlama - Autocomplete

Otomatik tamamlama veya sözcük tamamlama , bir uygulamanın, kullanıcının yazdığı bir sözcüğün geri kalanını tahmin ettiği bir özelliktir . Android ve iOS akıllı telefonlarda buna tahmini metin denir . Gelen grafik kullanıcı arayüzleri , kullanıcılar genellikle basabilirsiniz sekme tuşunu bir öneri ya da aşağı kabul etmek ok tuşuna birkaç birini kabul etmek.

Otomatik tamamlama , bir metin giriş alanına yalnızca birkaç karakter yazıldıktan sonra kullanıcının girmek istediği kelimeyi doğru bir şekilde tahmin ettiğinde, insan-bilgisayar etkileşimlerini hızlandırır . Sınırlı sayıda olası sözcük içeren ( komut satırı yorumlayıcıları gibi ), bazı sözcüklerin çok daha yaygın olduğu (örneğin, bir e-postayı adreslerken ) veya yapılandırılmış ve öngörülebilir metin yazarken ( kaynak kodunda olduğu gibi) etki alanlarında en iyi sonucu verir. editörler ).

Birçok otomatik tamamlama algoritması, yeni kelimeleri kullanıcı birkaç kez yazdıktan sonra öğrenir ve bireysel kullanıcının öğrenilen alışkanlıklarına göre alternatifler önerebilir.

Tanım

Orijinal amaç

Kelime tahmin yazılımının asıl amacı, fiziksel engelli kişilerin yazma hızlarını artırmalarına ve bir kelimeyi veya cümleyi tamamlamak için gereken tuş vuruşlarının sayısını azaltmalarına yardımcı olmaktı. Hızı artırma ihtiyacı, konuşma üreten cihazları kullanan kişilerin genellikle sözlü konuşmayı kullananlara göre %10'dan daha düşük bir oranda konuşma üretmesi ile belirtilmektedir. Ancak bu işlev, metin yazan herkes, özellikle de teknik veya tıbbi nitelikte olabilen uzun, hecelemesi zor terminoloji kullanan tıp doktorları gibi kişiler için de çok yararlıdır.

Açıklama

Otomatik tamamlama veya kelime tamamlama, yazar bir kelimenin ilk harfini veya harflerini yazdığında, programın bir veya daha fazla olası kelimeyi seçim olarak tahmin etmesi için çalışır. Yazmayı düşündüğü kelime listede varsa, örneğin sayı tuşlarını kullanarak onu seçebilir. Kullanıcının istediği kelime tahmin edilemiyorsa yazar kelimenin bir sonraki harfini girmelidir. Bu sırada, sözcük seçim(ler)i değiştirilir, böylece sağlanan sözcükler seçilenlerle aynı harflerle başlar. Kullanıcının istediği kelime göründüğünde seçilir ve metin içerisine kelime eklenir. Başka bir kelime tahmini biçiminde, yeni yazılan kelimeyi takip etmesi en muhtemel olan kelimeler, kullanılan son kelime çiftlerine dayalı olarak tahmin edilir. Kelime tahmini , belirli bir kelime dağarcığı içinde kelimelerin meydana gelme olasılığının en yüksek olduğu dil modellemesini kullanır . Dil modelleme ile birlikte, AAC cihazlarındaki temel kelime tahmini , genellikle , AAC kullanıcısının yakın zamanda ve sıklıkla kullandığı kelimelerin tahmin edilme olasılığının daha yüksek olduğu bir frekans modeli ile birleştirilir . Kelime tahmin yazılımı genellikle kullanıcının kelime tahmin sözlüklerine doğrudan veya yazılan kelimeleri "öğrenerek" kendi kelimelerini girmesine de izin verir. Cinsel organlar veya diğer kaba terimlerle ilgili bazı arama sonuçları, hastalıklı terimler gibi otomatik tamamlama teknolojilerinden sıklıkla çıkarılır.

Bağımsız araçlar

Mevcut uygulamalara otomatik tamamlama işlevi ekleyen bağımsız araçlar vardır. Bu programlar, kullanıcının tuş vuruşlarını izler ve ilk yazılan harf(ler)e göre bir kelime listesi önerir. Örnekler Typingaid ve Letmetype'dir. Ücretsiz bir yazılım olan LetMeType artık geliştirilmemiştir, yazar kaynak kodunu yayınlamıştır ve herkesin geliştirmeye devam etmesine izin verir. Ayrıca ücretsiz bir yazılım olan Typingaid aktif olarak geliştirilmiştir. Hem ücretsiz hem de ödemeli bir sürüm olan Intellicomplete, yalnızca intellicomplete sunucu programına bağlanan belirli programlarda çalışır. Bir Steno listesi oluşturmak için birçok Otomatik Tamamlama programı da kullanılabilir . Orijinal otomatik tamamlama yazılımı, 1980'lerin sonlarına dayanan ve bugün hala mevcut olan Smartype idi. Başlangıçta MS/DOS için WordPerfect'te çalışan tıbbi transkripsiyon uzmanları için geliştirildi, ancak şimdi herhangi bir Windows veya Web tabanlı programdaki herhangi bir uygulama için çalışıyor.

Kısa gösterim

Kısayol , aynı zamanda Otomatik Değiştirme olarak da adlandırılır, belirli bir dizenin başka bir dizeyle otomatik olarak değiştirilmesini içeren ilgili bir özelliktir, genellikle daha uzun ve yazılması daha zor olan "myname" ile "Lee John Nikolai François Al Rahman" gibi. Bu, " teh " harfini "the"ye çevirmek gibi basit yazım hatalarını sessizce düzeltebilir . Kelime listelerini temel alan bağımsız veya metin düzenleyicilere entegre edilmiş birkaç Otomatik Tamamlama programı ayrıca sık kullanılan ifadeler için bir steno işlevi içerir.

Bağlam tamamlama

Bağlam tamamlama , aynı belgedeki veya bazı eğitim veri kümelerindeki diğer benzer kelimelerin mevcut bağlamına ve bağlamına dayalı olarak kelimeleri (veya tüm ifadeleri) tamamlayan, kelime tamamlamaya benzer bir metin düzenleyici özelliğidir. Bağlam tamamlamanın ana avantajı, beklenen kelimeleri daha kesin olarak ve hatta başlangıç ​​harfleri olmadan tahmin etme yeteneğidir. Ana dezavantaj, bağlam tamamlama için tipik olarak daha basit kelime tamamlamadan daha büyük olan bir eğitim veri setine ihtiyaç duyulmasıdır. Bağlam tamamlamanın en yaygın kullanımı, eğitim veri setinin doğal olarak mevcut olduğu ve bağlam tamamlamanın kullanıcı için geniş kelime tamamlamadan daha anlamlı olduğu gelişmiş programlama dili editörlerinde ve IDE'lerde görülür .

Satır tamamlama , ilk olarak Temmuz 2006'da TED Notepad'de Juraj Simloviç tarafından tanıtılan bir bağlam tamamlama türüdür. Mevcut belge eğitim veri seti olarak sunulurken, satır içi tamamlama geçerli satırdır. Kullanıcı, sık kullanılan bir ifadeyle başlayan bir satıra başladığında, editör, benzer satırların farklı olduğu konuma kadar otomatik olarak tamamlar veya ortak bir devam listesi önerir.

Uygulamalarda eylem tamamlama , mevcut bağlama dayalı olarak bir işletim sisteminin mevcut uygulamalarına veya mevcut tüm uygulamalarına otomatik tamamlama işlevi ekleyen bağımsız araçlardır. Eylem tamamlamanın ana avantajı, beklenen eylemleri tahmin etme yeteneğidir. En büyük dezavantajı, bir veri setine ihtiyaç duyulmasıdır. Eylem tamamlamanın en yaygın kullanımı, gelişmiş programlama dili düzenleyicilerinde ve IDE'lerde görülür . Ancak, ilgili uygulamaların eylem tamamlanmasını (çok) engellemeden tüm PC'nin tüm uygulamalarında küresel olarak paralel olarak çalışan eylem tamamlama araçları da vardır.

Yazılım tarafından kullanım

Web tarayıcılarında

Image
Mozilla Firefox'ta arama kutusunun otomatik tamamlanması

In web tarayıcıları , otomatik tamamlama gibi sık kullanılan sayfalarında ve metin kutularına, (tarayıcınızın geçmişine öğeleri kullanarak) adres çubuğuna yapılır arama motoru 'ın arama kutusuna. Web adresleri için otomatik tamamlama, tam adreslerin genellikle uzun olması ve doğru yazılması zor olduğundan özellikle uygundur. HTML5'in otomatik tamamlama form özelliği vardır.

E-posta programlarında

In e-posta programları otomatik tamamlama tipik olarak amaçlanan alıcıların e-posta adresleri doldurmak için kullanılır. Genellikle az sayıda sık kullanılan e-posta adresi vardır, bu nedenle aralarından seçim yapmak için otomatik tamamlamayı kullanmak nispeten kolaydır. Web adresleri gibi, e-posta adresleri de genellikle uzundur, bu nedenle onları tamamen yazmak elverişsizdir.

Örneğin, Microsoft Outlook Express , adres defterinde kullanılan ada göre adresleri bulacaktır. Google 'ın Gmail adresine veya depolanan adına ortaya herhangi bir dizeyle adreslerini bulacaksınız.

arama motorlarında

Arama motorlarında, otomatik tamamlama kullanıcı arabirimi özellikleri, kullanıcılara sorgularını arama kutusuna yazarken önerilen sorguları veya sonuçları sağlar. Buna genellikle otomatik öneri veya artımlı arama da denir . Bu tür arama genellikle fonetik Soundex algoritmaları veya dilden bağımsız Levenshtein algoritması gibi giriş hatalarını affeden eşleştirme algoritmalarına dayanır . Zorluk, büyük dizinleri veya popüler sorgu listelerini birkaç milisaniyenin altında aramaktır, böylece kullanıcı yazarken sonuçların açılır olduğunu görür.

Otomatik tamamlama, bir arama yapıldığında olumsuz arama terimleri önerildiğinde bireyler ve işletmeler üzerinde olumsuz bir etkiye sahip olabilir. Dolandırıcılık, şikayetler ve dolandırıcılık gibi olumsuz arama terimleriyle bağlantılı şirketler sonuçları değiştirmeye çalıştıkça, otomatik tamamlama artık itibar yönetiminin bir parçası haline geldi . Google, algoritmalarının nasıl çalıştığını etkileyen bazı yönleri özellikle listelemiştir, ancak bu, manipülasyona açık bir alandır.

Kaynak kod düzenleyicilerinde

Image
Qt Creator 5.0'da kod tamamlama : Programcı bazı kodlar yazar ve yazılım bir değişken tanımlayıcısı veya sınıf adı gibi tanınabilir bir dize tespit ettiğinde, programcıya tanımlanan değişkenin tam adını veya uygulanabilir yöntemleri içeren bir menü sunar. algılanan sınıf ve programcı faresi veya klavye yön tuşları ile bir seçim yapar. Programcı seçim yapmadan yazmaya devam ederse menü kaybolur

Kaynak kodun otomatik olarak tamamlanması , kod tamamlama olarak da bilinir . Bir kaynak kodu düzenleyicisinde otomatik tamamlama, programlama dillerinin düzenli yapısıyla büyük ölçüde basitleştirilmiştir . Değişkenlerin ve işlevlerin adları gibi , geçerli bağlamda veya ad alanında genellikle yalnızca sınırlı sayıda anlamlı sözcük vardır . Kod tamamlama örneği Microsoft 'ın IntelliSense tasarımı. Kullanıcının doğru olanı seçmesine izin vermek için mevcut giriş öneki için olası tamamlamaların bir açılır listesini göstermeyi içerir. Bu özellikle nesne yönelimli programlamada kullanışlıdır çünkü programcı çoğu zaman belirli bir sınıfın hangi üyelere sahip olduğunu tam olarak bilemez . Bu nedenle, otomatik tamamlama, bir giriş yönteminin yanı sıra uygun bir belgeleme biçimi olarak hizmet eder. Kaynak kodu için otomatik tamamlamanın bir başka yararlı özelliği de, programcıları hem küçük hem de büyük harfleri ( CamelCase ) içeren daha uzun, daha açıklayıcı değişken adları kullanmaya teşvik etmesi ve böylece kaynak kodunu daha okunabilir hale getirmesidir . "numberOfWordsPerParagraph" gibi birçok karışık durumla büyük sözcükleri yazmak zor olabilir, ancak Otomatik Tamamlama, bir kişinin tuş vuruşlarının bir kısmını kullanarak sözcüğü yazmayı tamamlamasını sağlar.

Veritabanı sorgulama araçlarında

İçinde Otomatik tamamlama veritabanı sorgu araçları kullanıcı bir tablo adlarını otomatik tamamlamasına olanak SQL SQL deyiminde başvurulan tablolar tablosu ve sütun adları. Metin düzenleyiciye yazılırken , SQL deyimi içindeki imlecin bağlamı, kullanıcının bir tablo tamamlamaya mı yoksa bir tablo sütunu tamamlamaya mı ihtiyacı olduğuna dair bir gösterge sağlar. Tablo tamamlama , kullanıcının bağlı olduğu veritabanı sunucusunda bulunan tabloların bir listesini sağlar . Sütun tamamlama, yalnızca SQL deyiminde başvurulan tablolar için bir sütun listesi sağlar. SQL Server Management Studio , sorgu araçlarında otomatik tamamlama sağlar.

Kelime işlemcilerde

Birçok kelime işlem programında, otomatik tamamlama, tekrar eden kelimeleri ve cümleleri yazmak için harcanan süreyi azaltır. Otomatik tamamlama için kaynak malzeme ya geçerli belgenin geri kalanından ya da kullanıcı tarafından tanımlanan bir ortak sözcük listesinden toplanır. Şu anda Apache OpenOffice , Calligra Suite , KOffice , LibreOffice ve Microsoft Office , Emacs ve Vim gibi gelişmiş metin editörlerinin yaptığı gibi bu tür otomatik tamamlama için destek içerir .

  • Apache OpenOffice Writer ve LibreOffice Writer , tüm sözlükten ziyade metne önceden yazılmış kelimeleri öneren çalışan bir kelime tamamlama programına sahiptir.
  • Microsoft Excel elektronik tablo uygulaması, daha önce üst hücrelere yazılan sözcükleri öneren, çalışan bir sözcük tamamlama programına sahiptir.

Komut satırı yorumlayıcılarında

Image
PowerShell'de komut satırı tamamlama .

Bir de komut satırı yorumlayıcısı gibi Unix 'in sh veya Bash veya , Windows ' ın cmd.exe veya PowerShell veya benzer içinde komut satırı arayüzleri , komut isimleri ve dosya adlarının otomatik tamamlama tüm olası takip ederek gerçekleştirilebilir kullanıcının erişebileceği şeylerin adları. Burada otomatik tamamlama genellikle Tab ↹kelimenin ilk birkaç harfini yazdıktan sonra tuşuna basılarak yapılır . Örneğin, geçerli dizinde x ile başlayan tek dosya xLongFileName ise, kullanıcı x yazmayı ve tam ad için otomatik tamamlamayı tercih edebilir. Aynı kapsamda x ile başlayan başka bir dosya adı veya komut varsa, kullanıcı uygun metni seçmek için daha fazla harf yazar veya Sekme tuşuna art arda basar.

Yeterlik

Verimlilik için parametreler

Kelime tamamlamanın verimliliği, yazılan kelimelerin ortalama uzunluğuna bağlıdır. Örneğin metin, değişkenler, işlevler veya sınıflar için genellikle uzun çok kelimeli adlara sahip programlama dillerinden oluşuyorsa, tamamlama hem yararlıdır hem de genellikle Vim gibi programcılara özel olarak tasarlanmış editörlerde uygulanır .

Farklı dillerde, sözcük uzunlukları önemli ölçüde farklılık gösterebilir. Yukarıdaki örnekten yola çıkarak, Almanca bir futbolcu 15 karakter uzunluğunda "Fussballspieler" olarak çevrilmiştir. Bu örnek, İngilizce'nin WC için en verimli dil olmadığını göstermektedir ; Bu çalışma, 100.000'den fazla kelimeden oluşan bir derlemdeki İngilizce kelimelerin ortalama uzunluğunun 8.93, Çekçe için 10.55 ve Almanca için 13.24 olduğunu göstermektedir. Ek olarak, Almanca gibi füzyonel diller olarak adlandırılan bazı dillerde ve sondan eklemeli dillerde , kelimeler birleştirilerek daha uzun kelimeler oluşturulabilir.

Tıp doktorları ve kimyagerler gibi genellikle çok uzun kelimeler kullanan yazarların, diğer yazarlara göre Otomatik Tamamlama (Kelime tamamlama) yazılımını daha fazla kullandığı açıktır.

Araştırma

Araştırmalar, kelime tahmin yazılımının gereken tuş vuruşlarının sayısını azalttığını ve engelli çocukların yazılı üretkenliğini geliştirdiğini gösterse de, kelime tahmininin çıktı hızını gerçekten artırıp artırmadığına dair karışık sonuçlar vardır. Sözcük tahmininin metin giriş oranını her zaman artırmamasının nedeninin, artan bilişsel yük ve göz bakışını klavyeden monitöre kaydırma gerekliliği olduğu düşünülmektedir .

Bu bilişsel yükü azaltmak için, listeyi olası beş kelimeye indirgemek ve bu kelimelerin dikey bir düzenine sahip olmak gibi parametreler kullanılabilir. Dikey düzen, baş ve göz hareketlerini minimumda tutmayı amaçlar ve ayrıca kelime uzunluğu belirgin hale geldiğinden ek görsel ipuçları verir. Birçok yazılım geliştiricisi, kelime tahmin listesinin imleci takip etmesi durumunda göz hareketlerini azaltacağına inansa da , Tam, Reid, O'Keefe ve Nauman (2002) tarafından spina bifidalı çocuklar üzerinde yapılan bir çalışmada, yazmanın daha fazla olduğu gösterilmiştir. doğru ve çocukların liste ekranın alt kenarında, orta hatta göründüğünde de tercih ettikleri. Birkaç çalışma, gereken göz hareketi miktarının azalması nedeniyle, kelime listesi klavyeye daha yakın olduğunda kelime tahmin performansının ve memnuniyetinin arttığını bulmuştur.

Kelime tahminli yazılımlar birden fazla üretici tarafından üretilir. Yazılım, Microsoft Word (örneğin, WordQ+SpeakQ , Typing Assistant, Co:Writer, Wivik, Ghotit Disleksi) gibi yaygın programlara bir eklenti olarak veya bir AAC cihazındaki (PRC'ler) birçok özellikten biri olarak satın alınabilir. Pathfinder, Dynavox Systems, Saltillo'nun ChatPC ürünleri). Bazı iyi bilinen programlar: Hem ücretsiz hem de ödemeli yazılım sürümünde bulunan, ancak yalnızca onunla çalışmak üzere yapılmış programlarla çalışan Intellicomplete. Letmetype ve Typingaid, herhangi bir metin düzenleyicide çalışan ücretsiz programlardır.

Otomatik tamamlamanın erken bir versiyonu 1967'de H. Christopher Longuet-Higgins tarafından Bilgisayar Destekli Daktilo'da (CAT) tanımlandı, “'BEGIN' veya 'PROCEDURE' gibi kelimeler veya programcı tarafından tanıtılan tanımlayıcılar, otomatik olarak programcı tarafından tamamlanacaktı. CAT, programcı yalnızca bir veya iki sembol yazdıktan sonra.

Ayrıca bakınız

Referanslar

Dış bağlantılar