Aracılığıyla paylaş


Mürekkep Analizine Genel Bakış

InkAnalysis API'leri, Tablet PC geliştiricilerine mürekkep girişini program aracılığıyla incelemek için güçlü araçlar sağlar. API, mürekkebi sözcükler, satırlar, paragraflar ve çizimler gibi anlamlı kategorilere ayırır.

Her sınıflandırmayı, el yazısı için tanıma sonuçlarını iyileştirme de dahil olmak üzere çeşitli yollarla kullanabilirsiniz.

Mürekkep Analizi Temelleri

Bu bölümde Tablet PC Platformu mürekkep analizi teknolojisi tanıtılmaktadır ve ne zaman ve nasıl kullanılacağı açıklanmaktadır.

InkAnalysis API'leri iki ayrı ama tamamlayıcı teknolojiyi etkili bir şekilde birleştirir: el yazısı tanıma ve düzen sınıflandırması. Bu iki teknolojinin birleştirilmesi, tek başına alınan parçalardan kesin olarak daha fazla sonuç verir.

El yazısı tanıma, belirli bir dilde karakter temelli yorumlama sağlamak amacıyla el yazısı dijital mürekkebin hesaplamalı analizidir. Yani, el yazısı tanıma, bilgisayarın bir kişinin el yazısını nasıl "okuduğunu" gösterir.

Mürekkep Analizi, mürekkep sınıflandırması ve düzen analizine daha fazla bölünebilir. Mürekkep sınıflandırması, mürekkebin paragraflar, satırlar, sözcükler ve çizimler gibi anlamsal olarak anlamlı birimlere bölünmesidir. Düzen analizi, mürekkep girişinin mürekkep oluşturma yüzeyindeki konumunu ve vuruşların uzamsal ve hatta anlamsal olarak birbirleriyle nasıl ilişkili olduğunu belirlemek için hesaplamalı incelemesidir. Örneğin, düzen analizi size belirli bir mürekkep parçasının ek açıklama veya çağrı olduğunu söyleyebilir.

Tanıma

InkAnalysis API'sindeki mürekkep analiziyle tanımanın birleşiminin geliştiriciye nasıl yardımcı olduğunu gösteren örneklerden biri, tanıma sonuçlarında yapılan iyileştirmedir. Tablet PC el yazısı tanıma altyapıları öncelikli olarak tek bir yatay mürekkep çizgisini tanıyacak şekilde tasarlanmıştır. Ancak, insanlar not alırken birden çok satır yazma eğilimindedir ve bu satırların sayfaya göre yatay olması garanti değildir. InkAnalysis API'siyle mürekkep, tanıyıcıya gönderilmeden önce mürekkep çözümleyicisi tarafından önceden işlenir. Analiz edilen mürekkep, tanınmadan önce yataya dönüştürülür, bu sayede tanıma sonuçları iyileştirilir.

Mürekkep çözümleyicisinin, mürekkep tanıyıcıya gönderilmeden önce yanlış vuruş sırası bilgilerini düzeltmesi, tanımanın diğer avantajlarını sağlar. Ayrıca, tanıma sonuçları artık seçmeli olarak kullanılabilir. Diğer bir deyişle, geliştirici tek bir çağrıda tek bir sözcük, satır veya paragrafın tanıma sonuçlarını hızla alabilir.

Mürekkep Sınıflandırması

Elbette, mürekkep verilerini hemen metne dönüştürmek yerine bozulmadan tutabileceğiniz çeşitli senaryolar vardır. Mürekkep analizi burada da avantajlar sağlar. Özellikle, InkAnalysis API'leri mürekkep vuruşlarını yazıya veya çizime göre bölme olanağı sağlar. Yazı olarak sınıflandırılan mürekkep vuruşları, bir sözcüğü veya karakteri oluşturanlardır. Diğer tüm fırça darbeleri çizimlerdir. Bu, mürekkep verilerine erişmeniz için yeni bir yol sağlar ve yeni kullanıcı senaryolarını etkinleştirir. Örneğin, kullanıcının dokunduğu vuruş türüne göre farklı olması için seçim uygulayabilirsiniz; bir kullanıcı bir yazma vuruşu dokunduğunda, uygulama sözcüğü oluşturan tüm vuruş kümesini seçer, kullanıcı bir çizim stoka dokunursa, uygulama yalnızca o vuruşu seçer.

Düzen Analizi

Kullanışlı düzen analizi, aslında mürekkep dökümünü yazı ve çizim bileşenlerine görece basit bir şekilde ayırmanın çok ötesine geçer.

Mürekkep analizi, yazma ve çizim vuruşlarının daha zengin bir dökümünü de içerir. Çok basit bir örnek olarak, aşağıdaki çizimde gösterildiği gibi bir mürekkep blobu alın.

İki basit el yazısı satırı

Platform bu vuruşları analiz ettikten sonra, aşağıdaki çizimde gösterildiği gibi bu vuruşların ağaç gösterimini döndürür. Bu basit durumda, ağaç yalnızca paragraf, satır ve sözcük bilgilerini içerir, ancak mürekkep belgesinin karmaşıklığı arttıkça bu ağacın zenginliği artar.

Kök, paragraf, satır ve sözcüklerin ağaç gösterimini

Bu bilgiler artık yönetilebilir birimlere ayrıldığından, artık daha güçlü özellikler oluşturabilirsiniz. Örnek olarak, uygulama kullanıcının bir sözcüğü seçmek için dokunduğu özelliği genişleterek kullanıcının sözcüğü seçmek için bir kez dokunduğu, satırın tamamını seçmek için iki kez dokunduğu ve paragrafın tamamını seçmek için üç kez dokunduğu özelliği genişletebilir. Uygulama, analiz işlemi tarafından döndürülen ağaç yapısından yararlanarak, dokunulduğu alanı ağaçtaki bir vuruşla ilişkilendirebilir. Uygulama bir çizgi bulduktan sonra, ağaçta yukarı doğru izleyerek nasıl ve hangi komşu çizgilerin seçileceğini belirleyebilir.

Bir satırın tamamını seçmek, mürekkep analizinin avantajlarına basit bir örnektir, ancak mürekkep çözümleyicisinin algılayabilen farklı hiyerarşik yapı türlerini göz önünde bulundurduğunda olasılıklar harika olur:

  • Sıralı ve sıralanmamış listeler
  • Şekil
  • Metinle satır içi yazılmış açıklamalı açıklamalar

Özellik türleri uygulamadan uygulamaya farklılık gösterir ve gereksinimlere ve kullanılabilir mürekkep analizi ve tanıma altyapılarına bağlıdır.

Temel Mürekkep Analizi Özellikleri

InkAnalysis API'sinin temel özellikleri aşağıdaki özellikleri içerir:

  • Artımlı Analiz
  • Devamlılık
  • Veri Ara Sunucusu
  • Uzlaşma
  • Genişletilebilir -lik

Artımlı Analiz

Son kullanıcılar mürekkeple çalışırken genellikle el yazısı gibi davranır. Mürekkep sürekli olarak yeni mürekkep eklenmesi, var olan mürekkeplerin silinmesi ve mürekkep özelliklerinin değiştirilmesi gibi düzenleme işlemlerine tabidir ve bunların tümü el yazısının sürekli düzenlendiği şekilde gerçekleştirilir. Bu düzenleme işlemleri analiz sonuçlarını etkiler. Düzenlemeler gerçekleştiğinde, bunlar genellikle belgenin belirli zaman noktalarındaki bölümlerine yalıtılabilir. Örneğin, bir kullanıcının beş satır mürekkep yazdığı varsayılır. Uygulamaların mürekkep analizinin standart yolu, kullanıcının beş mürekkep satırı (örneğin bir paragraf) yazmayı bitirmesini beklemek ve ardından sonuçları senkron veya asenkron olarak analiz etmektir.

Bu beş satırın yazıldığı sırada analiz edilen alanları yalıtarak ve ardından sonuçların yalnızca değişen bölümlerini yeniden analiz ederek bu beş satırı analiz etmek için harcanan genel süreyi en iyi duruma getirebilirsiniz. İlk satır analiz edildikten sonra, son kullanıcı tarafından değiştirilmediği sürece bir daha asla tanınmaz. İkinci satırın tanınması bağımsız bir tanıma işlemi olarak kabul edilir.

Bu artımlı yaklaşım, tanıma işlemleri için satır düzeyinde iyi çalışır, ancak mürekkep analizi işlemi için daha yüksek bir düzeyde çalışması gerekir. Mürekkep çözümleyicisi bu beş mürekkep satırı için farklı yüksek düzeyli sınıflandırmaları algılayabildiğinden (örneğin, bir listede standart paragraf veya beş öğe olabilir), mürekkep çözümleyicisi için artımlı yaklaşım, bu yüksek yapıları analiz etmek zorunda olmasıdır. Diğer bir ifadeyle, mürekkep çözümleyicisi ilk mürekkep satırını bir satır olarak sınıflandırır, ikinci satırı sınıflandırırken hala bir çizgi olup olmadığını iki kez denetler. Ancak, mürekkep analiz aracı bu çift denetim işlemini paragraf düzeyinde tutar ve ikinci paragrafı analiz ederken birinci paragrafı yoksayar, ikinci paragrafı bağımsız bir analizci işlemi olarak ele alır. Analize yönelik bu artımlı yaklaşım, uygulamada büyük miktarda mürekkep mevcut olduğunda işlem süresinden önemli ölçüde tasarruf sağlar.

Devamlılık

Artımlı analiz, belirli bir oturumda veya InkAnalyzer nesnesinin örneğinde düzgün çalışır. Ancak, ilk nesil Tablet PC Platform API'leri mürekkep diskte kalıcı hale getirildikten sonra artımlı analiz gerçekleştiremez. InkAnalysis API'si, mürekkeple diske kaydetmeye ve analiz sonuçlarının kalıcı bir biçimine olanak tanır. Mürekkep yüklenirken analiz sonuçları yüklenebilir ve yeni bir InkAnalyzerörneğine enjekte edilebilir. InkAnalyzer nesnesinin yeni bir örneği daha önce olduğu gibi aynı sonuçlara sahiptir ve artık her şeyi yeniden analiz etmek yerine mevcut durumda yapılan değişiklikleri artımlı değişiklikler olarak kabul edebilir.

Veri Ara Sunucusu

Birçok uygulamanın uygulamalarında zaten bir tür mevcut belge yapısı vardır; örneğin, bir grafik veya veritabanı. InkAnalyzer, sonuçları ContextNode nesneleri ağacında yapılandırılmış bir biçimde de sunar. InkAnalyzer yapısının ve uygulamanın mevcut yapısının iki yönde birbirleriyle çalışabilmesi gerekir: sonuçlar InkAnalyzer uygulamaya alınır ve durum uygulamadan InkAnalyzeraktarılır.

Sonuçların InkAnalyzer'ten uygulamanın yapısına çekilmesi gereken tek şey olsaydı, nispeten basit olurdu. Uygulamalar sonuç ağacında yineleme yapar ve ihtiyaç duydukları sonuçların tüm parçalarını mevcut veri yapılarına kopyalar (tümleştirir). Ancak, birçok yatay uygulama artımlı analiz ve diskte kalıcılık gerektirdiğinden, sorun iki yönlü hale gelir. Durum (geçmiş sonuçlar) uygulamanın yapısından çekilmeli ve InkAnalyzeriçine gönderilmelidir.

Bu gereksinimi karşılamak için InkAnalyzer, uygulamaların veri isteğini mevcut yapılarına geri döndürmesine izin vermek için analiz işlemi sırasında uygun zamanda tetiklediği bir dizi olay içerir. Bu olaylar yalnızca artımlı işlem için gereken ContextNode nesneleri için oluşturulur.

Uzlaşma

Çoğu uygulama, kullanıcı arabirimi kesintilerini en düşük düzeyde tutmak için arka planda mürekkep analizi yapmak isteyecektir. Arka planda mürekkep analizi, analiz edilen mürekkep (veya komşu mürekkep) kullanıcı tarafından değiştirildiğinde sorunlara neden olur. Örneğin, kullanıcı arka plan işlemi sırasında mürekkep silerse, sonuçta elde edilen yapı belgenin tamamlandığında değil, arka plan işlemi başlatıldığındaki durumunu yansıtır.

InkAnalyzer, uygulamalara yardımcı olmak için analiz işleminin başlangıcı ve sonu arasındaki belge durumu farklarını mutabık tutar. Çözümleme arka planda çalışırken kullanıcı veya uygulama tarafından yapılan değişiklikler her zaman arka planda hesaplanan sonuçları geçersiz kılar. Mutabakat sonrasında, yalnızca sonuç yapısının belge değişiklikleriyle çakışmayan bölümleri bildirilir ve çakışan unsurlar, gelecekteki analiz için etiketlenir. Arka plan analizi işlemi bir sonraki çalıştırıldığında, sonuçlar yeni duruma göre yeniden hesaplanır.

Aşağıdaki diyagramda bu işlem gösterilmektedir. Zaman, diyagramda yukarıdan aşağıya doğrusal olarak ifade edilir.

Çözümleme işlemi sırasında belge durumu değişikliklerini mutabık hale getiren işlemi

  1. 1 (t1) zamanında uygulama, ekleme, kaldırma veya değiştirme gibi herhangi bir mürekkep değişikliği de dahil olmak üzere son kullanıcıdan mürekkep toplar.
  2. t2'de uygulama arka plan çözümleme işlemini çağırır. InkAnalyzer hangi mürekkepte sonuç olmadığını ve hangi mürekkeplerin çift denetlenmesi gerektiğini belirler. Arka plan iş parçacığının bağımsız olarak yürütülmesini sağlamak için gerekli mürekkep verilerini kopyalar.
  3. t3'te InkAnalyzer, kullanıcı arabirimi iş parçacığının yürütmesini uygulamaya geri döndürür. InkAnalyzer ikinci bir iş parçacığı, arka plan çözümleme iş parçacığını oluşturur ve mürekkep analiz ve tanıma motorları kopyalanan mürekkep verilerini analiz eder.
  4. Analiz işlemi ikinci arka plan iş parçacığında gerçekleşirken, son kullanıcı t4 ve t5'te belgeyi düzenlemeye, vuruş verilerini ekleyip kaldırmaya devam eder. Bu düzenlemeler arka planda işlenmekte olan süreçlerle çakışabilir.
  5. T6'da arka plan iş parçacığı analiz işlemini tamamladı ve sonuçlar hazır. InkAnalyzer sonuçları uygulamaya iletmeden önce, analiz işlemi hesaplanırken kullanıcının yaptığı düzenlemelerin (t4 ve t5) sonuçlarla çakışıp çakışmadığını belirlemek için bir mutabakat algoritması çalıştırır. Herhangi bir çakışma algılanırsa, çarpışan vuruşlar yeniden analiz için işaretlenir ve bu işlem, uygulama arka plan çözümleme işlemini bir sonraki sefer çağırdığında gerçekleşir.
  6. Son olarak, t7'de tüm çarpışmaların algılanmış olmasıyla, InkAnalyzer sonuçları uygulamaya sunar.

Genişletilebilir -lik

InkAnalysis API'leri, uygulamanın mutabakat, veri ara sunucusu, kalıcılık ve artımlı analiz de dahil olmak üzere InkAnalysis API'sinin tüm avantajlarını yeniden yazmak zorunda kalmadan uygulamalar tarafından yeni türlerde analiz altyapıları kullanılmasını sağlar.

Microsoft.Ink

Mürekkep Analizi Referansı