Autouzupełnienie - Autocomplete

Autouzupełnianie lub uzupełnianie słów to funkcja, w której aplikacja przewiduje resztę słowa wpisywanego przez użytkownika. W smartfonach z Androidem i iOS nazywa się to tekstem predykcyjnym . W graficznym interfejsie użytkownika użytkownicy mogą zazwyczaj nacisnąć klawisz tabulatora, aby zaakceptować sugestię, lub klawisz strzałki w dół , aby zaakceptować jedną z kilku.

Autouzupełnianie przyspiesza interakcje człowiek-komputer, gdy poprawnie przewiduje słowo, które użytkownik zamierza wprowadzić po wpisaniu zaledwie kilku znaków w polu tekstowym. Sprawdza się najlepiej w domenach z ograniczoną liczbą możliwych słów (np. w interpreterach wiersza poleceń ), gdy niektóre słowa są znacznie bardziej powszechne (np. przy adresowaniu e-maili ) lub pisząc ustrukturyzowany i przewidywalny tekst (jak w kodzie źródłowym redaktorów ).

Wiele algorytmów autouzupełniania uczy się nowych słów po ich kilkukrotnym wpisaniu przez użytkownika i może sugerować alternatywy w oparciu o wyuczone nawyki indywidualnego użytkownika.

Definicja

Pierwotny cel

Pierwotnym celem oprogramowania do przewidywania słów była pomoc osobom niepełnosprawnym fizycznie w zwiększeniu szybkości pisania, a także zmniejszenie liczby naciśnięć klawiszy potrzebnych do uzupełnienia słowa lub zdania. Konieczność zwiększenia szybkości wynika z faktu, że ludzie używający urządzeń generujących mowę zazwyczaj produkują mowę z szybkością mniejszą niż 10% szybciej niż ludzie używający mowy ustnej. Ale funkcja ta jest również bardzo przydatna dla każdego, kto pisze tekst, zwłaszcza dla osób – takich jak lekarze – którzy często używają długiej, trudnej do przeliterowania terminologii, która może mieć charakter techniczny lub medyczny.

Opis

Funkcja autouzupełniania lub uzupełniania słów działa tak, że gdy autor pisze pierwszą literę lub pierwsze litery słowa, program przewiduje jedno lub więcej możliwych słów jako wybór. Jeśli słowo, które zamierza napisać, znajduje się na liście, może je wybrać, na przykład za pomocą klawiszy numerycznych. Jeśli słowo, którego chce użytkownik, nie jest przewidziane, autor musi wprowadzić następną literę tego słowa. W tym momencie wybór słów jest zmieniany tak, aby podane słowa zaczynały się od tych samych liter, które zostały wybrane. Gdy pojawi się żądane przez użytkownika słowo, jest ono wybierane, a słowo jest wstawiane do tekstu. W innej formie przewidywania słów, słowa, które najprawdopodobniej następują po właśnie napisanym, są przewidywane na podstawie ostatnio używanych par słów. Przewidywanie słów wykorzystuje modelowanie języka , w którym w ramach zestawu słownictwa obliczane są słowa, które najprawdopodobniej wystąpią. Wraz z modelowaniem języka, podstawowe przewidywanie słów na urządzeniach AAC jest często połączone z modelem frecency , w którym słowa, których użytkownik AAC używał ostatnio i częściej, są bardziej prawdopodobne. Oprogramowanie do przewidywania słów często pozwala również użytkownikowi na wprowadzanie własnych słów do słowników przewidywania słów bezpośrednio lub poprzez „uczenie się” słów, które zostały napisane. Niektóre wyniki wyszukiwania związane z genitaliami lub innymi wulgarnymi terminami są często pomijane w technologiach autouzupełniania, podobnie jak terminy chorobowe

Samodzielne narzędzia

Istnieją samodzielne narzędzia, które dodają funkcję autouzupełniania do istniejących aplikacji. Programy te monitorują naciśnięcia klawiszy użytkownika i sugerują listę słów w oparciu o pierwsze wpisane litery. Przykładami są Pomoc w pisaniu i Letmetype. LetMeType, darmowe oprogramowanie, nie jest już rozwijane, autor opublikował kod źródłowy i pozwala każdemu na dalszy rozwój. Typingaid, również darmowy, jest aktywnie rozwijany. Intellicomplete, zarówno darmowa, jak i płatna wersja, działa tylko w niektórych programach, które łączą się z programem serwera intellicomplete. Wiele programów autouzupełniania może być również użytych do stworzenia listy skróconej . Oryginalnym oprogramowaniem do autouzupełniania był Smartype, którego początki sięgają końca lat 80. XX wieku i są nadal dostępne. Został pierwotnie opracowany dla lekarzy zajmujących się transkrypcją, pracujących w WordPerfect dla MS/DOS, ale teraz działa dla dowolnej aplikacji w dowolnym programie Windows lub opartym na sieci Web.

Stenografia

Skrót , zwany również Autoreplace, to pokrewna funkcja, która polega na automatycznym zastąpieniu określonego ciągu innym, zwykle dłuższym i trudniejszym do wpisania, takim jak „myname” na „Lee John Nikolai François Al Rahman”. Może to również po cichu naprawić proste błędy w pisowni , takie jak zamiana " teh " na "the". Kilka programów autouzupełniania, samodzielnych lub zintegrowanych z edytorami tekstu, opartych na listach słów, zawiera również funkcję skrótów dla często używanych fraz.

Uzupełnianie kontekstu

Uzupełnianie kontekstowe to funkcja edytora tekstu, podobna do uzupełniania słów, która uzupełnia słowa (lub całe frazy) na podstawie bieżącego kontekstu i kontekstu innych podobnych słów w tym samym dokumencie lub w pewnym zestawie danych szkoleniowych. Główną zaletą uzupełniania kontekstu jest możliwość dokładniejszego przewidywania przewidywanych słów, nawet bez początkowych liter. Główną wadą jest potrzeba zestawu danych uczących, który jest zazwyczaj większy w przypadku uzupełniania kontekstu niż w przypadku prostszego uzupełniania słów. Najczęstsze zastosowanie uzupełniania kontekstu jest widoczne w zaawansowanych edytorach języka programowania i środowiskach IDE , gdzie zestaw danych szkoleniowych jest z natury dostępny, a uzupełnianie kontekstu ma dla użytkownika większy sens niż uzupełnianie szerokich słów.

Uzupełnianie wiersza to rodzaj uzupełniania kontekstu, po raz pierwszy wprowadzony przez Juraja Simlovica w Notatniku TED w lipcu 2006 roku. Kontekstem uzupełniania wiersza jest bieżący wiersz, podczas gdy bieżący dokument stanowi zestaw danych uczących. Gdy użytkownik zaczyna wiersz, który zaczyna się od często używanej frazy, edytor automatycznie ją uzupełnia, aż do pozycji, w której podobne wiersze się różnią, lub proponuje listę wspólnych kontynuacji.

Uzupełnianie akcji w aplikacjach to samodzielne narzędzia, które dodają funkcję autouzupełniania do istniejących aplikacji lub wszystkich istniejących aplikacji systemu operacyjnego, w oparciu o bieżący kontekst. Główną zaletą realizacji Akcji jest możliwość przewidywania przewidywanych akcji. Główną wadą jest konieczność posiadania zestawu danych. Najczęstsze zastosowanie uzupełniania akcji występuje w zaawansowanych edytorach języka programowania i środowiskach IDE . Ale istnieją również narzędzia do realizacji akcji, które działają globalnie, równolegle, we wszystkich aplikacjach na całym komputerze, nie utrudniając (bardzo) wykonywania akcji przez odpowiednie aplikacje.

Wykorzystanie przez oprogramowanie

W przeglądarkach internetowych

Autouzupełnianie pola wyszukiwania w Mozilla Firefox

W przeglądarkach internetowych , autouzupełnianie odbywa się w pasku adresu (przy użyciu elementów z historii przeglądarki) oraz w polach tekstowych na temat najczęściej używanych stron, takich jak wyszukiwarki polu wyszukiwania „s. Autouzupełnianie adresów internetowych jest szczególnie wygodne, ponieważ pełne adresy są często długie i trudne do prawidłowego wpisania. HTML5 ma atrybut autouzupełniania formularza.

W programach pocztowych

W programach pocztowych autouzupełnianie jest zwykle używane do wypełniania adresów e-mail docelowych odbiorców. Generalnie istnieje niewielka liczba często używanych adresów e-mail, stąd stosunkowo łatwo jest skorzystać z autouzupełniania, aby wybrać spośród nich. Podobnie jak adresy internetowe, adresy e-mail są często długie, dlatego wpisywanie ich w całości jest niewygodne.

Na przykład Microsoft Outlook Express znajdzie adresy na podstawie nazwy używanej w książce adresowej. Google „s Gmail znajdzie adresy dowolny ciąg, który występuje w adresie lub nazwie przechowywanej.

W wyszukiwarkach

W wyszukiwarkach funkcje autouzupełniania interfejsu użytkownika zapewniają użytkownikom sugerowane zapytania lub wyniki, gdy wpisują swoje zapytanie w polu wyszukiwania. Jest to również powszechnie nazywane autosugestią lub wyszukiwaniem przyrostowym . Ten rodzaj wyszukiwania często opiera się na algorytmach dopasowywania, które wybaczają błędy wprowadzania, takich jak fonetyczne algorytmy Soundex lub niezależny od języka algorytm Levenshteina . Wyzwaniem pozostaje przeszukiwanie dużych indeksów lub popularnych list zapytań w czasie krótszym niż kilka milisekund, tak aby użytkownik widział wyskakujące wyniki podczas pisania.

Autouzupełnianie może mieć negatywny wpływ na osoby fizyczne i firmy, gdy podczas wyszukiwania sugerowane są wykluczające wyszukiwane hasła. Autouzupełnianie stało się teraz częścią zarządzania reputacją, ponieważ firmy powiązane z negatywnymi hasłami wyszukiwania, takimi jak oszustwa, skargi i oszustwa, starają się zmienić wyniki. W szczególności Google wymienił niektóre aspekty, które wpływają na działanie ich algorytmu, ale jest to obszar, który można manipulować.

W edytorach kodu źródłowego

Uzupełnianie kodu w Qt Creator 5.0: Programista wpisuje jakiś kod, a gdy oprogramowanie wykryje rozpoznawalny ciąg znaków, taki jak identyfikator zmiennej lub nazwa klasy, przedstawia programiście menu, które zawiera pełną nazwę zidentyfikowanej zmiennej lub metody mające zastosowanie do wykrytą klasę, a programista dokonuje wyboru za pomocą swojej myszki lub klawiszy strzałek na klawiaturze. Jeśli programista kontynuuje pisanie bez dokonywania wyboru, menu znika

Autouzupełnianie kodu źródłowego jest również nazywane uzupełnianiem kodu . W edytorze kodu źródłowego autouzupełnianie jest znacznie uproszczone dzięki regularnej strukturze języków programowania . Zwykle w bieżącym kontekście lub przestrzeni nazw jest tylko ograniczona liczba słów , takich jak nazwy zmiennych i funkcji. Przykładowy kod zakończenia jest Microsoft „s IntelliSense projekt. Polega na wyświetlaniu wyskakującej listy możliwych uzupełnień dla bieżącego prefiksu wejściowego, aby umożliwić użytkownikowi wybranie właściwego. Jest to szczególnie przydatne w programowaniu obiektowym, ponieważ często programista nie wie dokładnie, jakie składowe ma dana klasa . Dlatego autouzupełnianie służy wówczas jako forma wygodnej dokumentacji, a także metoda wprowadzania danych. Inną korzystną cechą autouzupełniania kodu źródłowego jest to, że zachęca programistów do używania dłuższych, bardziej opisowych nazw zmiennych zawierających zarówno małe, jak i duże litery ( CamelCase ), dzięki czemu kod źródłowy jest bardziej czytelny. Wpisywanie dużych słów z wieloma różnymi wielkościami liter, takich jak „numberOfWordsPerParagraph”, może być trudne, ale autouzupełnianie umożliwia dokończenie wpisywania słowa za pomocą ułamka naciśnięć klawiszy.

W narzędziach do zapytań do bazy danych

Autouzupełnianie w narzędziach zapytań do bazy danych pozwala użytkownikowi na autouzupełnianie nazw tabel w wyrażeniu SQL i nazw kolumn w tabelach, do których odwołuje się instrukcja SQL. Podczas wpisywania tekstu do edytora kontekst kursora w instrukcji SQL wskazuje, czy użytkownik potrzebuje uzupełnienia tabeli, czy uzupełnienia kolumny tabeli. Uzupełnianie tabel dostarcza listę tabel dostępnych na serwerze bazy danych, do którego podłączony jest użytkownik. Uzupełnianie kolumn udostępnia listę kolumn tylko dla tabel, do których odwołuje się instrukcja SQL. SQL Server Management Studio zapewnia autouzupełnianie w narzędziach zapytań.

W edytorach tekstu

W wielu programach do edycji tekstu autouzupełnianie zmniejsza ilość czasu spędzanego na wpisywaniu powtarzających się słów i fraz. Materiał źródłowy do autouzupełniania jest zbierany z reszty bieżącego dokumentu lub z listy wspólnych słów zdefiniowanych przez użytkownika. Obecnie Apache OpenOffice , Calligra Suite , KOffice , LibreOffice i Microsoft Office zawierają wsparcie dla tego rodzaju autouzupełniania, podobnie jak zaawansowane edytory tekstu, takie jak Emacs i Vim .

  • Apache OpenOffice Writer i LibreOffice Writer mają działający program do uzupełniania słów, który proponuje słowa wcześniej wpisane w tekście, a nie z całego słownika
  • Aplikacja arkusza kalkulacyjnego Microsoft Excel posiada działający program do uzupełniania słów, który proponuje słowa wcześniej wpisane w górnych komórkach

W interpreterach wiersza poleceń

Uzupełnianie wiersza polecenia w PowerShell .

W interpreter wiersza poleceń , takich jak Unix „s sh lub bash lub systemu Windows ” s cmd.exe lub PowerShell , lub w podobnych interfejsów wiersza poleceń , autouzupełnianie nazw poleceń i nazw plików mogą być osiągnięte poprzez śledzenie wszystkich możliwych nazwy rzeczy, do których użytkownik może uzyskać dostęp. Tutaj autouzupełnianie zwykle odbywa się poprzez naciśnięcie Tab ↹klawisza po wpisaniu kilku pierwszych liter słowa. Na przykład, jeśli jedynym plikiem w bieżącym katalogu, który zaczyna się od x, jest xLongFileName, użytkownik może preferować wpisanie x i autouzupełnianie do pełnej nazwy. Gdyby w tym samym zakresie istniała inna nazwa pliku lub polecenie rozpoczynające się od x, użytkownik wpisałby więcej liter lub naciskał klawisz Tab, aby zaznaczyć odpowiedni tekst.

Efektywność

Parametry wydajności

Efektywność uzupełniania słów opiera się na średniej długości wpisanych słów. Jeśli na przykład tekst składa się z języków programowania, które często mają długie wielowyrazowe nazwy zmiennych, funkcji lub klas, uzupełnianie jest zarówno przydatne, jak i powszechnie stosowane w edytorach specjalnie nastawionych na programistów, takich jak Vim .

W różnych językach długość słów może się znacznie różnić. Biorąc pod uwagę powyższy przykład, piłkarz w języku niemieckim jest tłumaczony jako „Fussballspieler” o długości 15 znaków. Ten przykład ilustruje, że angielski nie jest najskuteczniejszym językiem dla WC; to badanie pokazuje, że średnia długość angielskich słów w korpusie ponad 100 000 słów wynosi 8,93, czeskiego 10,55, a niemieckiego 13,24. Ponadto w niektórych językach, takich jak niemiecki, zwanych językami fuzyjnymi oraz językami aglutynacyjnymi , słowa można łączyć, tworząc jeszcze dłuższe słowa.

Autorzy, którzy często używają bardzo długich słów, tacy jak lekarze i chemicy, mają oczywiście jeszcze większe zastosowanie do oprogramowania Autouzupełniania (uzupełniania słów) niż inni autorzy.

Badania

Chociaż badania wykazały, że oprogramowanie do przewidywania słów zmniejsza liczbę potrzebnych naciśnięć klawiszy i poprawia produktywność dzieci niepełnosprawnych w pisaniu, istnieją mieszane wyniki dotyczące tego, czy przewidywanie słów faktycznie zwiększa szybkość wydruku. Uważa się, że powodem, dla którego przewidywanie słów nie zawsze zwiększa tempo wprowadzania tekstu, jest zwiększone obciążenie poznawcze i konieczność przeniesienia wzroku z klawiatury na monitor.

Aby zmniejszyć to obciążenie poznawcze, można zastosować parametry, takie jak zmniejszenie listy do pięciu prawdopodobnych słów i posiadanie pionowego układu tych słów. Pionowy układ ma na celu zminimalizowanie ruchów głowy i oczu, a także daje dodatkowe wskazówki wizualne, ponieważ długość słowa staje się widoczna. Chociaż wielu programistów uważa, że ​​jeśli lista przewidywanych słów podąża za kursorem , to zmniejszy to ruchy gałek ocznych, w badaniu dzieci z rozszczepem kręgosłupa przeprowadzonym przez Tam, Reid, O'Keefe i Nauman (2002) wykazano, że pisanie było bardziej dokładne i że dzieci również wolały, gdy lista pojawiała się na dolnej krawędzi ekranu, w linii środkowej. Kilka badań wykazało, że wydajność przewidywania słów i satysfakcja wzrasta, gdy lista słów znajduje się bliżej klawiatury, ze względu na mniejszą ilość potrzebnych ruchów gałek ocznych.

Oprogramowanie z funkcją przewidywania słów jest produkowane przez wielu producentów. Oprogramowanie można kupić jako dodatek do popularnych programów, takich jak Microsoft Word (na przykład WordQ+SpeakQ , Typing Assistant, Co:Writer, Wivik, Ghotit Dyslexia) lub jako jedną z wielu funkcji urządzenia AAC Pathfinder, Dynavox Systems, produkty ChatPC firmy Saltillo). Niektóre dobrze znane programy: Intellicomplete, który jest dostępny zarówno w wersji darmowej, jak i płatnej, ale działa tylko z programami stworzonymi do pracy z nim. Letmetype i Typingaid to darmowe programy, które działają w dowolnym edytorze tekstu.

Wczesna wersja autouzupełniania została opisana w 1967 roku przez H. Christophera Longueta-Higginsa w jego Computer-Assisted Typewriter (CAT), „takie słowa jak 'BEGIN' lub 'PROCEDURE' lub identyfikatory wprowadzone przez programistę byłyby automatycznie uzupełniane przez CAT po tym, jak programista wpisał tylko jeden lub dwa symbole.”

Zobacz też

Bibliografia

Zewnętrzne linki