Кіріспе

Пайдаланушы теріп жатқан сөзді аяқтауды болжайтын есептеу мүмкіндігі. Автоматты толықтыру немесе сөзді аяқтау – бұл қолданбаның пайдаланушы теріп жатқан сөздің қалған бөлігін болжайтын мүмкіндігі. Android және iOS смартфондарында бұл «алдын ала жазылатын мәтін» деп аталады. Графикалық интерфейсте пайдаланушылар әдетте ұсынысты қабылдау үшін Tab пернесін, ал бірнеше ұсыныстан біреуін қабылдау үшін төмен бағытталған пернесін баса алады. Автоматты толықтыру, егер қолданба пайдаланушының мәтіндік өрісқа бірнеше әріп енгізгеннен кейін енгізбекші болған сөзін дұрыс болжаса, адамның компьютермен өзара әрекеттесуін жылдамдатады. Бұл мүмкіндік, сөздердің саны шектеулі салаларда (мысалы, командалық жол интерпретаторларында), кейбір сөздер жиірек қолданылатын жағдайларда (мысалы, электрондық пошта мекенжайын жазғанда) немесе құрылымды және болжамды мәтін жазу кезінде (көздік код редакторларында) жақсы жұмыс істейді. Көптеген автоматты толықтыру алгоритмдері пайдаланушы оларды бірнеше рет жазғаннан кейін жаңа сөздерді үйрене алады және жеке пайдаланушының қалыптасқан әдеттеріне сүйене отырып, балама ұсыныстар бере алады.

Бастапқы мақсаты

Сөзді болжау бағдарламасының бастапқы мақсаты – физикалық мүмкіндігі шектеулі адамдарға теру жылдамдығын арттыруға, сондай-ақ сөзді немесе сөйлемді аяқтау үшін қажетті перне соғу санын азайтуға көмектесу болған. Ауызша сөйлеуге қарағанда сөйлеу құралдарын пайдаланатындардың сөйлеу жылдамдығы 10%-дан кем екендігі осы қажеттілікті көрсетеді. Алайда, бұл функция кез келген мәтін жазатын адам үшін де өте пайдалы, әсіресе медициналық дәрігерлер сияқты, жиі ұзақ, жазуы қиын, техникалық немесе медициналық сипаттағы терминдерді қолданатындар үшін.

Сипаттама

Автоматты түрде толықтыру немесе сөзді аяқтау қалай жұмыс істейді: жазушы сөздің бірінші әріпін немесе әріптерін жазғанда, бағдарлама бір немесе бірнеше мүмкін сөзді ұсынады. Егер қажетті сөз тізімде болса, жазушы оны, мысалы, сандық пернелер арқылы таңдай алады. Егер пайдаланушы іздеген сөз болжамдардың ішінде болмаса, жазушы сөздің келесі әріпін теруі керек. Осы кезде ұсынылатын сөздердің тізімі жаңа әріптерге сәйкес өзгереді, яғни ұсынылған сөздер енгізілген әріптермен басталады. Пайдаланушы қалаған сөз пайда болғанда, оны таңдап, мәтінге қоюға болады. Сөзді болжаудың тағы бір түрінде, жақында жазылған сөзден кейін келуі мүмкін сөздер, соңғы қолданылған сөз жұптарына сүйеніп болжалады. Тілдік модельдеумен қатар, AAC құрылғыларындағы қарапайым сөзді болжау жиілік моделімен үйлеседі, яғни AAC пайдаланушысының жақында және жиі қолданған сөздері болжамдар тізімінде көбірек кездеседі.

Тарих

Автоматты түрде толықтыру және мәтінді болжау технологиясын қытай ғалымдары мен тіл білгіштері 1950 жылдары қытай тіліндегі жазу машинасының кіріс тиімділігін арттыру үшін ойлап тапты, себебі теру процесі табақшадағы мыңдаған идеограммалық таңбаларды іздеу және таңдауды қамтитын, бұл мәтінді өңдеу жылдамдығын күрт баяулатар еді. 1950 жылдары машинистерлер әріптерді стандартты сөздік орналасымынан жиі қолданылатын сөздер мен тіркестердің топтарына қайта орналастыра бастады. Қытай жазу машинасының инженерлері сөзді болжау арқылы ең жылдам қол жетімділікке ие жалпы таңбаларға қол жеткізу механизмдерін жасады, бұл техника бүгінде компьютерлердегі қытай тіліндегі енгізу әдістерінде және көптеген тілдердегі мәтіндік хабарламаларда қолданылады. Стэнфорд университетінің тарихшысы Томас Мулланидің сөзіне сәйкес, 1960-1970 жылдардағы қазіргі заманғы қытай жазу машиналарының дамуы қазіргі заманғы компьютерлік мәтін өңдегіштердің дамуына ықпал етті және компьютерлердің өзінің дамуына әсер етті. LetMeType, тегін бағдарлама, енді дамытылмайды, автор бастапқы кодын жариялады және кез келген адамға оны одан әрі дамытуға рұқсат береді. Typingaid, сондай-ақ тегін, белсенді түрде дамытылуда. Intellicomplete, тегін және ақылы нұсқалары бар, тек intellicomplete серверлік бағдарламасына қосылатын белгілі бір бағдарламаларда ғана жұмыс істейді. Көптеген автоматты толықтыру бағдарламаларын стенография тізімін жасау үшін де пайдалануға болады. Алғашқы автоматты толықтыру бағдарламалық құралы Smartype болды, ол 1980 жылдардың соңында пайда болды және бүгінгі күнге дейін қолжетімді. Ол бастапқыда MS/DOS жүйесіндегі WordPerfect-те жұмыс істейтін медициналық транскрипторлар үшін жасалған, бірақ қазір ол кез келген Windows немесе веб-базалық бағдарламадағы кез келген қолданбамен жұмыс істейді.

Қысқарту

Штенография, сондай-ақ Autoreplace деп аталады, бұл белгілі бір тізбекті автоматты түрде басқа тізбекке ауыстыру мүмкіндігін қамтиды, әдетте, теруге ұзақ және қиын түсетін тізбектерді, мысалы, "myname" тізбегін "Lee John Nikolai François Al Rahman" деп ауыстыру сияқты. Бұл сондай-ақ "teh" сияқты қарапайым теру қателерін "the" деп түзетуге де мүмкіндік береді. Сөз тізімдеріне негізделген, дербес немесе мәтіндік редакторларға енгізілген бірнеше автотолықтыру бағдарламалары, жиі қолданылатын сөз тіркестері үшін штенография функциясын да қамтиды.

Контексті толықтыру

Контекстті толықтыру – мәтіндік редактордың мүмкіндігі, сөзді толықтыруға ұқсас, сөздерді (немесе бүкіл сөз тіркестерін) ағымдағы контекстке және сол құжаттағы немесе жаттығу деректер жиынтығындағы басқа ұқсас сөздердің контекстіне сүйене отырып толықтырады. Контекстті толықтырудың басты артықшылығы – күтілетін сөздерді тіпті бастапқы әріптері болмаса да дәл болжау мүмкіндігі. Басты кемшілігі – жаттығу деректерінің жиынтығы қажет, ол әдетте қарапайым сөз толықтыруға қарағанда контекстті толықтыру үшін көбірек болады. Контекстті толықтыруды ең көп кездесетін жері – озық бағдарламалау тілдерінің редакторлары мен IDE-лер, онда жаттығу деректері жиынтығы табиғи түрде қолжетімді және контекстті толықтыру пайдаланушыға жалпы сөз толықтырудан гөрі мағыналырақ болады. Сызықты толықтыру – контекстті толықтырудың бір түрі, оны алғаш рет 2006 жылдың шілдесінде Юрай Симлович TED Notepad бағдарламасында енгізді. Сызықты толықтырудағы контекст – ағымдағы жол, ал ағымдағы құжат жаттығу деректері жиынтығы ретінде қарастырылады. Пайдаланушы жиі қолданылатын сөз тіркесімен басталатын жолды жазғанда, редактор оны автоматты түрде толықтырады, ұқсас жолдардың өзгешеліктеріне дейін немесе жиі қолданылатын жалғаулар тізімін ұсынады. Қолданбалардағы әрекетті толықтыру – бұл дербес құралдар, олар қолданыстағы қолданбаларға немесе операциялық жүйенің барлық қолданбаларына ағымдағы контекстке сүйене отырып автоматты толықтыру мүмкіндігін қосады. Әрекетті толықтырудың басты артықшылығы – күтілетін әрекеттерді болжау мүмкіндігі. Басты кемшілігі – деректер жиынтығының қажеттілігі. Әрекетті толықтыруды ең көп кездесетін жері – озық бағдарламалау тілдерінің редакторлары мен IDE-лер. Бірақ барлық компьютердегі қолданбалардың ішінде параллель жұмыс істейтін, әрекетті толықтыруға едәуір кедеріс келтірмейтін әрекетті толықтыру құралдары да бар.

Веб-браузерлерде

Веб-браузерлерде автоматты толтыру адрестік жолақта (браузер тарихындағы элементтерді пайдалану арқылы) және жиі қолданылатын беттердегі мәтіндік өрістерде, мысалы іздеу жүйесінің іздеу өрісінде жүзеге асырылады. Веб-адрестерді автоматты толтыру әсіресе ыңғайлы, себебі толық адрестер көбінесе ұзын және дұрыс теру қиын. HTML5 нысанға автоматты толтыру атрибутын қосады.

Электрондық пошта бағдарламаларында

Электрондық пошта бағдарламаларында автоматты толықтыру мүмкіндігі көбінесе хат жіберушілердің электрондық мекенжайларын толтыру үшін пайдаланылады. Әдетте, жиі қолданылатын электрондық пошта мекенжайларының саны аз болғандықтан, олардың арасынан таңдау үшін автоматты толықтыруды қолдану өте оңай. Электрондық пошта мекенжайлары, веб-адрестер сияқты, көбінесе ұзын болады, сондықтан оларды толығымен теру қиындық тудырады. Мысалы, Microsoft Outlook Express адрестік кітапшадағы есімдерге сәйкес мекенжайларды табады. Google-дың Gmail-і мекенжайды немесе сақталған есімдегі кез келген сөз тіркесі бойынша іздейді.

Іздеу жүйелерінде

Іздеу жүйелерінде автоматты толықтыру мүмкіндігі пайдаланушы интерфейсінде пайдаланушылар іздеу жолына сұранысын теріп жазғанда ұсынылған сұраныстарды немесе нәтижелерді көрсетеді. Бұл сондай-ақ автоұсыныс немесе біртіндеп іздеу деп те аталады. Мұндай іздеу көбінесе кірістіру қателіктерін кешіретін, мысалы, фонетикалық Soundex алгоритмдері немесе тілге тәуелсіз Levenshtein алгоритмі сияқты сәйкестік алгоритмдеріне сүйенеді. Үлкен индекстерді немесе танымал сұраныс тізімдерін бірнеше миллисекунд ішінде іздеу – бұл қиындық, соның арқасында пайдаланушы нәтижелерді теру кезінде көреді. Автоматты толықтыру жеке тұлғалар мен бизнеске кері әсер ете алады, себебі іздеу жасалғанда теріс іздеу сөздері ұсынылады. Автоматты толықтыру қазір беделді басқарудың бір бөлігіне айналды, өйткені алаяқтық, шағымдар және мошендік сияқты теріс іздеу сөздерімен байланысты компаниялар нәтижелерді өзгертуге тырысады. Google өз алгоритмінің жұмыс істеуіне әсер ететін кейбір факторларды тізімдеген, бірақ бұл манипуляцияға бейім сала.

Ресурстық код редакторларында

Көрсету кодының автоматты толықтырылуы кодты толықтыру деп те аталады. Көрсету коды редакторында автоматты толықтыру бағдарламалау тілінің реттелген құрылымы арқасында қатты жеңілдетіледі. Әдетте, ағымдағы контекстте немесе атау кеңістігінде мағыналы сөздердің саны шектеулі болады, мысалы, айнымалылар мен функциялардың атаулары. Кодты толықтырудың мысалы – Microsoft-тың IntelliSense дизайны. Ол пайдаланушыға дұрыс таңдау жасауға мүмкіндік беру үшін ағымдағы кіріс префиксі үшін мүмкін болатын толықтырулардың ашылмалы тізімін көрсетуді қамтиды. Бұл әсіресе объектіге бағытталған бағдарламалауда пайдалы, себебі бағдарламашы көбінесе нақты сыныптың қандай мүшелері бар екенін білмейді. Сондықтан автоматты толықтыру ыңғайлы құжаттама түрінде де, енгізу әдісі ретінде де қызмет етеді. Көрсету коды үшін автоматты толықтырудың тағы бір пайдалы мүмкіндігі – ол бағдарламашыны ұзын, сипаттамалы айнымалы атауларын пайдалануға ынталандырады, осылайша кодты оқуды жеңілдетеді. Түйе жазуы бар үлкен сөздерді, мысалы numberOfWordsPerParagraph теру қиын болуы мүмкін, бірақ автоматты толықтыру бағдарламашыға пернелердің аз бөлігін қолданып сөзді теруді аяқтауға мүмкіндік береді.

Деректер қорын сұрау құралында

Деректер қорын сұрау құралдарындағы автоматты толықтыру мүмкіндігі пайдаланушыға SQL сұрауындағы кесте атауларын және SQL сұрауында сілтеме берілген кестелердің баған атауларын автоматты түрде толықтыруға мүмкіндік береді. Редакторға мәтін терілген кезде, SQL сұрауындағы курсордың орны пайдаланушыға кесте толықтыруы немесе баған толықтыруы қажеттігін көрсетеді. Кесте толықтыруы пайдаланушы қосылған деректер қоры серверіндегі бар кестелердің тізімін ұсынады. Баған толықтыруы SQL сұрауында сілтеме берілген кестелер үшін ғана бағандардың тізімін ұсынады. SQL Server Management Studio сұрау құралдарында автоматты толықтыруды қамтамасыз етеді.

Командалық жол аудармашыларында

Unix-тың sh немесе bash сияқты командалық жол интерпретаторларында, немесе Windows-тың cmd.exe немесе PowerShell-інде, немесе осыған ұқсас командалық желі интерфейстерінде команда атаулары мен файл атауларын автоматты түрде толықтыру мүмкін, бұл үшін пайдаланушы қол жеткізе алатын барлық мүмкін атаулар тіркеліп отырылады. Автотолықтыру әдетте сөздің бірінші бірнеше әрпін теріп болған соң, перне басу арқылы жасалады. Мысалы, егер ағымдағы каталогта x әрпімен басталатын жалғыз файл xLongFileName болса, пайдаланушы x деп теріп, толық атауға автоматты толықтыру жасауды қалауы мүмкін. Егер сол ауқымда x әрпімен басталатын тағы бір файл атауы немесе команда болса, пайдаланушы одан әрі әріптер теруі немесе қажетті мәтінді таңдау үшін Tab пернесін бірнеше рет басуы керек болады.

Зерттеу

Зерттеулер сөзді болжау бағдарламалық жасақтамасы қажетті пернелерді басу санын азайтатынын және мүмкіндігі шектеулі балалардың жазу өнімділігін жақсартатынын көрсеткенмен, сөзді болжаудың әрқашан мәтін енгізу жылдамдығын арттырмауының себебі когнитивтік жүктеменің артуы және көзді пернетақтадан мониторға жылжыту қажеттілігі деп есептеледі. Көптеген бағдарламалық жасақтама жасаушылар сөзді болжау тізімі курсорды ілесіп жүрсе, бұл көз қозғалысын азайтады деп санайды. Бағдарламаны Microsoft Word сияқты кең таралған бағдарламаларға қосымша ретінде сатып алуға болады (мысалы, WordQ+SpeakQ, Typing Assistant, Co:Writer, Wivik, Ghotit Dyslexia), немесе AAC құрылғыларындағы көптеген мүмкіндіктердің бірі ретінде (PRC Pathfinder, Dynavox Systems, Saltillo's ChatPC өнімдері). Кейбір танымал бағдарламалар: Intellicomplete, ол тегін және ақылы нұсқада қолжетімді, бірақ онымен жұмыс істеуге арналған бағдарламалармен ғана жұмыс істейді. Letmetype және Typingaid – кез келген мәтіндік редакторда жұмыс істейтін екі тегін бағдарлама. Автотолықтырудың алғашқы нұсқасы 1967 жылы Х. Кристофер Лонгует Хиггинс өзінің Компьютерлік көмекші теріскеш машинасында (CAT) былай сипаттаған: «Программашы енгізген 'BEGIN' немесе 'PROCEDURE' сияқты сөздер немесе идентификаторлар, программашы тек бір немесе екі символ теріп алғаннан кейін CAT автоматты түрде толықтырады».