Tablet PC Tablet PC Capstone CSE Capstone CSE
481b481b
Microsoft’s Cursive Microsoft’s Cursive Handwriting RecognizerHandwriting Recognizer
Jay PittmanJay Pittmanand the entireand the entireMicrosoft Handwriting RecognitionMicrosoft Handwriting RecognitionResearch and Development TeamResearch and Development [email protected]@microsoft.com
Tablet PC Capstone CSE 481bTablet PC Capstone CSE 481b
AgendaAgenda
Neural Network ReviewNeural Network Review
Basic Recognition ArchitectureBasic Recognition Architecture
Language ModelLanguage Model
PersonalizationPersonalization
Error ReportingError Reporting
New LanguagesNew Languages
Tablet PC Capstone CSE 481bTablet PC Capstone CSE 481b
Handwriting Recognition Handwriting Recognition TeamTeam
An experiment:An experiment:A research group, but not housed in MSRA research group, but not housed in MSR
Positioned inside a product groupPositioned inside a product group
Our direction and inspiration come directly from the usersOur direction and inspiration come directly from the users
This isn’t for everyone, but we like itThis isn’t for everyone, but we like it
A dozen researchersA dozen researchersHalf with PhDsHalf with PhDs
Mostly CS, but 1 Neuroscience, 1 Chemistry, 1 Industrial Mostly CS, but 1 Neuroscience, 1 Chemistry, 1 Industrial Engineering, 1 SpeechEngineering, 1 Speech
Roughly half neural network researchersRoughly half neural network researchersWith various other recognition technologiesWith various other recognition technologies
Tablet PC Capstone CSE 481bTablet PC Capstone CSE 481b
Neural Network ReviewNeural Network Review
DDirected acyclic graphirected acyclic graph
NNodes and arcs, each containing a simple valueodes and arcs, each containing a simple value
NNodes contain activations, arcs contain weightsodes contain activations, arcs contain weights
AActivations represent soft booleans; range from 0.0 to 1.0ctivations represent soft booleans; range from 0.0 to 1.0
WWeights represent excitatory and inhibitory connections; roughly symmetric about 0eights represent excitatory and inhibitory connections; roughly symmetric about 0
AAt run-time, we do a “forward pass” which computes activation from inputs to hiddens, and then t run-time, we do a “forward pass” which computes activation from inputs to hiddens, and then to outputsto outputs
FFrom outside, app only sees input nodes and output nodesrom outside, app only sees input nodes and output nodes
1.0
0.0
0.0
0.6
1.0
0.8
0.1
1.4
-0.8 0.7
-2.3
0.0
-0.1
InputsHiddens
Outputs
Tablet PC Capstone CSE 481bTablet PC Capstone CSE 481b
Neural Network Forward Neural Network Forward PassPass
1.0
0.0
0.0
0.6
1.0
0.8
0.1
1.4
-0.8 0.7
-2.3
0.0
-0.1
InputsHiddens
Outputs
act = F(Σ(in × weight) + bias)
F(X) = 1
e + 1 -x
logistic function
Features computed from ink
Probability estimates of letters
Tablet PC Capstone CSE 481bTablet PC Capstone CSE 481b
Neural Network TrainingNeural Network Training
Start with a fixed architecture, and a random set of Start with a fixed architecture, and a random set of weightsweightsIterate randomly through training samplesIterate randomly through training samplesFor each training sample, do forward pass, and compute For each training sample, do forward pass, and compute error of each output (size and direction)error of each output (size and direction)Compute what change in individual weights (size and Compute what change in individual weights (size and direction) would lead to reducing each output errordirection) would lead to reducing each output errorReduce the change to a small fractionReduce the change to a small fractionRepeat this walk through the training samples over and Repeat this walk through the training samples over and over, in different random ordersover, in different random orders
1.0
0.0
0.0
0.6
1.0
0.8
0.1
1.4
-0.8 0.7
-2.3
0.0
-0.1
InputsHiddens
Outputs
Tablet PC Capstone CSE 481bTablet PC Capstone CSE 481b
C ExampleC ExampleForward PassForward Pass
float Activations[];float Biases[];float Weights[];
float Inputs[];
float Logistic(float in){ return 1.0 / ((float)exp((double)-in) + 1.0);}
void Forward(LAYER *pLayer){ int i;
for (i = 0; i < pLayer->cActivations; i++) { int j; float in = pLayer->Biases[i];
for (j = 0; j < pLayer->cInputs; j++) { in += pLayer->Inputs[j] * pLayer->Weights[i][j]; } pLayer->Activations[i] = Logistic(in); }}
LAYER:
(all squares are floats)
int cActivations;
int cInputs;
Tablet PC Capstone CSE 481bTablet PC Capstone CSE 481b
TDNN: Time Delayed Neural TDNN: Time Delayed Neural NetworkNetwork
item 2 item 3item 1 item 5 item 6item 4item 1
TThis is still a normal back-propagation networkhis is still a normal back-propagation network
All the points in the previous several slides still applyAll the points in the previous several slides still apply
TThe difference is in the connectionshe difference is in the connections
Connections are limitedConnections are limited
Weights are sharedWeights are shared
TThe input is segmented, and the same features are computed for each segmenthe input is segmented, and the same features are computed for each segment
Small detail: edge effectsSmall detail: edge effectsFor the first two and last two columns, the hidden nodes and input nodes that reach outside the range of our input For the first two and last two columns, the hidden nodes and input nodes that reach outside the range of our input receive zero activationsreceive zero activations
Tablet PC Capstone CSE 481bTablet PC Capstone CSE 481b
SegmentationSegmentation
midpoints going up
tops
bottoms
tops and bottoms
Tablet PC Capstone CSE 481bTablet PC Capstone CSE 481b
TrainingTrainingWe use back-propagation trainingWe use back-propagation training
We collect millions of words of ink data from thousands of We collect millions of words of ink data from thousands of writerswriters
Young and old, male and female, left handed and right handedYoung and old, male and female, left handed and right handed
Natural text, newspaper text, URLs, email addresses, numeric Natural text, newspaper text, URLs, email addresses, numeric values, street addresses, phone numbers, dates, times, values, street addresses, phone numbers, dates, times, currency amounts, etc.currency amounts, etc.
We collect in more than two dozen languages around the We collect in more than two dozen languages around the worldworld
Training on such large databases takes weeksTraining on such large databases takes weeks
We constantly worry about how well our data reflect our We constantly worry about how well our data reflect our customerscustomers
Their writing stylesTheir writing styles
Their text contentTheir text content
We can be no better than the quality of our training setsWe can be no better than the quality of our training setsAnd that goes for our test sets tooAnd that goes for our test sets too
We are teaching the computer to readWe are teaching the computer to read
Tablet PC Capstone CSE 481bTablet PC Capstone CSE 481b
Recognizer ArchitectureRecognizer Architecture
88 8 682263574 4461 575723
9231
51 9 4720
711252 8 7913
5318
792857 6
……
…
1381
8 2 14 3
1717 5 7 4390
716
57914415
Output Matrix
dog 68
clog 57
dug 51
doom 42
divvy 37
ooze 35
cloy 34
doxy 29
client 22
dozy 13
Ink Segments
Top 10 List
d 00
a 00
b 00
c 00
o 09
a 73
l 07
t 5
g 68
t 8
b 6
o 12
g 57
t 12
TDNN
a
b
do
g
ab
t
tc
l
og
t
Lexicon
e
a
…
…
…
…
… Beam Search
ab
de
gh
no
4
5
3
90
12
4
14
7
Tablet PC Capstone CSE 481bTablet PC Capstone CSE 481b
Maintaining AmbiguityMaintaining Ambiguity
TDNN does NOT tell us which letter it isTDNN does NOT tell us which letter it isAt least not in a definite answerAt least not in a definite answer
Instead it tells us probability estimates for Instead it tells us probability estimates for each and every character that it might beeach and every character that it might be
The same shape might be different pieces of The same shape might be different pieces of different lettersdifferent letters
It is important to keep all theories alive for It is important to keep all theories alive for nownow
So we can decide later, after we add in more So we can decide later, after we add in more information from the language modelinformation from the language model
I suppose “maintaining ambiguity” is a euphemism for I suppose “maintaining ambiguity” is a euphemism for procrastinatingprocrastinating
Tablet PC Capstone CSE 481bTablet PC Capstone CSE 481b
Error Correction: Error Correction: SetTextContext()SetTextContext()
Dictum
Dictum
Left Context Right Context“Dict” “”
d 100
a 0
b 0
c 0
i 100
e 0
t 100
n 5
c 100
a 0
i 85
a 57
o 72
1.1. User writes “Dictionary”User writes “Dictionary”
2.2. Recognizer misrecognizes it as Recognizer misrecognizes it as “Dictum”“Dictum”
3.3. User selects “um” and rewrites User selects “um” and rewrites “ionary”“ionary”
4.4. TIP notes partial word selection, TIP notes partial word selection, puts recognizer into correction puts recognizer into correction mode with left and right contextmode with left and right context
5.5. Beam search Beam search artificiallyartificially recognizes left contextrecognizes left context
6.6. Beam search runs ink as Beam search runs ink as normalnormal
7.7. Beam search Beam search artificiallyartificially recognizes right contextrecognizes right context
8.8. This produces “ionary” in top 10 This produces “ionary” in top 10 list; TIP must insert this to the list; TIP must insert this to the right of “Dict”right of “Dict”
1.
2.
3.
4.
5. 6.
7.
Goal: Better context usage for error correction scenarios
Tablet PC Capstone CSE 481bTablet PC Capstone CSE 481b
Language ModelLanguage ModelWe get better recognition if we bias our interpretation of We get better recognition if we bias our interpretation of the output matrix with a language modelthe output matrix with a language model
Better recognition means we can handle sloppier cursiveBetter recognition means we can handle sloppier cursiveYou can write faster, in a more relaxed mannerYou can write faster, in a more relaxed manner
The lexicon (system dictionary) is the main partThe lexicon (system dictionary) is the main partBut there is also a user dictionaryBut there is also a user dictionary
And there are regular expressions for things like dates and And there are regular expressions for things like dates and currency amountscurrency amounts
We want a generatorWe want a generatorWe ask it: “what characters could be next after this prefix?”We ask it: “what characters could be next after this prefix?”
It answers with a set of charactersIt answers with a set of characters
We still output the top letter recognitionsWe still output the top letter recognitionsIn case you are writing a word out-of-dictionaryIn case you are writing a word out-of-dictionary
You will have to write more neatlyYou will have to write more neatly
Tablet PC Capstone CSE 481bTablet PC Capstone CSE 481b
LexiconLexicon
a
b
do
g
a
b
t
t
cl
og
t
e
a
…
…
…
o l o
r
u r
s
s
n a l y
s
z
e
e
r
r
s
s
d
d
s
sUS US
US
US
US
US US
UK
UK
UK
UK
UK UK
A
A AC C
C
AC
4125
4098
AC
AC
t h e952
a t e r3606US
s4187US
r e
T H CUS
s
3463
4125
3159
3354
US
UK
A
C
1234
u
s
Simple node
Leaf node
(end of valid word)
U.S. only
U.K. only
Australian only
Canadian only
Unigram score
(log of probability)
w a l k i n g
r u n n
UKAC
Tablet PC Capstone CSE 481bTablet PC Capstone CSE 481b
Offensive WordsOffensive WordsThe lexicon includes all the words in the spellcheckerThe lexicon includes all the words in the spellchecker
The spellchecker includes obscenitiesThe spellchecker includes obscenitiesOtherwise they would get marked as misspelledOtherwise they would get marked as misspelled
But people get upset if these words are offered as corrections for other But people get upset if these words are offered as corrections for other misspellingsmisspellings
So the spellchecker marks them as “restricted”So the spellchecker marks them as “restricted”
We live in an apparently stochastic worldWe live in an apparently stochastic worldWe will throw up 6 theories about what you were trying to writeWe will throw up 6 theories about what you were trying to write
If your ink is near an obscene word, we might include thatIf your ink is near an obscene word, we might include that
Dilemma:Dilemma:We want to recognize your obscene word when you write itWe want to recognize your obscene word when you write it
Otherwise we are censoring, which is NOT our placeOtherwise we are censoring, which is NOT our place
We DON’T want to offer these outputs when you don’t write themWe DON’T want to offer these outputs when you don’t write them
Solution (weak):Solution (weak):We took these words out of the lexiconWe took these words out of the lexicon
You can still write them, because you can write out-of-dictionaryYou can still write them, because you can write out-of-dictionary
But you have to write very neat cursive, or nice handprintBut you have to write very neat cursive, or nice handprint
Only works at the word levelOnly works at the word levelCan’t remove words with dual meaningsCan’t remove words with dual meanings
Can’t handle phrases that are obscene when the individual words are notCan’t handle phrases that are obscene when the individual words are not
Tablet PC Capstone CSE 481bTablet PC Capstone CSE 481b
Regular ExpressionsRegular ExpressionsMany built-in, callable by ISVs, web pagesMany built-in, callable by ISVs, web pages
Number, digit string, date, time, currency amount, phone numberNumber, digit string, date, time, currency amount, phone numberName, address, arbitrary word/phrase listName, address, arbitrary word/phrase listURL, email address, file name, login name, password, isolated URL, email address, file name, login name, password, isolated charactercharacterMany components of the above:Many components of the above:
Month, day of month, month name, day name (of week), yearMonth, day of month, month name, day name (of week), yearhour, minute, secondhour, minute, secondLocal phone number, area code, country codeLocal phone number, area code, country codeFirst name, last name, prefix, suffixFirst name, last name, prefix, suffixstreet name, city, state or province, postal code, countrystreet name, city, state or province, postal code, country
None:None:Yields an out-of-dictionary-only system (turns off the language model)Yields an out-of-dictionary-only system (turns off the language model)
Great for form-filling apps and web pagesGreat for form-filling apps and web pagesAccuracy is greatly improvedAccuracy is greatly improvedUse SetFactoid() or SetInputScope()Use SetFactoid() or SetInputScope()
This is in addition to the ability to load the user dictionaryThis is in addition to the ability to load the user dictionaryOne could load 500 color names for a color field in a form-based appOne could load 500 color names for a color field in a form-based appOr 8000 drug names in a prescription appOr 8000 drug names in a prescription appOn 2000 stock symbolsOn 2000 stock symbols
Tablet PC Capstone CSE 481bTablet PC Capstone CSE 481b
Regular ExpressionsRegular ExpressionsA simple regular expression compiler is available at A simple regular expression compiler is available at run timerun time
ISVs can add their own regular expressionsISVs can add their own regular expressions
One could imagine the DMV adding automobile VINsOne could imagine the DMV adding automobile VINs
Blood pressure example:Blood pressure example:(!IS_DIGITS)/(!IS_DIGITS) p(!IS_DIGITS)(!IS_DIGITS)/(!IS_DIGITS) p(!IS_DIGITS)
Latitude example:Latitude example:(!IS_DIGITS)°((!IS_TIME_MINORSEC)’((!IS_TIME_MINORSEC)”)+)(!IS_DIGITS)°((!IS_TIME_MINORSEC)’((!IS_TIME_MINORSEC)”)+)+ (N|S)+ (N|S)
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/tpcsdk10/lonestar/inkconcepts/custominputscopeswithregex.asp
Tablet PC Capstone CSE 481bTablet PC Capstone CSE 481b
Default FactoidDefault FactoidUsed when no factoid is setUsed when no factoid is set
Intended for natural text, such as the body of an emailIntended for natural text, such as the body of an email
Includes system dictionary, user dictionary, hyphenation rule, Includes system dictionary, user dictionary, hyphenation rule, number grammar, URL grammarnumber grammar, URL grammar
All wrapped by optional leading punctuation and trailing punctuationAll wrapped by optional leading punctuation and trailing punctuation
Hyphenation rule allows sequence of dictionary words with hyphens Hyphenation rule allows sequence of dictionary words with hyphens betweenbetween
Number grammar includes actual numbers, plus:Number grammar includes actual numbers, plus:dates, times, currency amounts, telephone numbers, percents, numeric dates, times, currency amounts, telephone numbers, percents, numeric ranges, ordinal abbreviations, number-unit combinations, Roman numbersranges, ordinal abbreviations, number-unit combinations, Roman numbers
Alternatively, can be a single character (any character supported Alternatively, can be a single character (any character supported by the system)by the system)
LeadingPunc
Numeric
Hyphenation
UserDict
SysDict
TrailingPunc
Web
Single Char
Start Final
Tablet PC Capstone CSE 481bTablet PC Capstone CSE 481b
CalligrapherCalligrapherThe Russian recognition company Paragraph sold itself to SGI The Russian recognition company Paragraph sold itself to SGI (Silicon Graphics, Incorporated), who then sold it to Vadem, who (Silicon Graphics, Incorporated), who then sold it to Vadem, who sold it to Microsoft.sold it to Microsoft.
In the purchase we obtained:In the purchase we obtained:CalligrapherCalligrapher
Cursive recognizer that shipped on the first Apple Newton (but not the Cursive recognizer that shipped on the first Apple Newton (but not the second)second)
TranscriberTranscriberHandwriting app for handheld computers (shipped on PocketPC)Handwriting app for handheld computers (shipped on PocketPC)
Calligrapher has a very similar architectureCalligrapher has a very similar architectureInstead of a TDNN it employs a hand-built HMMInstead of a TDNN it employs a hand-built HMM
The lexicon and beam search are similar in nature (many small differences)The lexicon and beam search are similar in nature (many small differences)
We combined our system with CalligrapherWe combined our system with CalligrapherWe use a voting system (neural nets) to combine each recognizer’s top We use a voting system (neural nets) to combine each recognizer’s top 10 list10 list
They are very different, and make different mistakesThey are very different, and make different mistakes
We get the best of both worldsWe get the best of both worlds
If either recognizer outputs a single-character “word” we forget these If either recognizer outputs a single-character “word” we forget these lists and run the isolated character recognizerlists and run the isolated character recognizer
Tablet PC Capstone CSE 481bTablet PC Capstone CSE 481b
Personalization: Ink ShapePersonalization: Ink ShapeSimple concept: just do same training on this customer’s inkSimple concept: just do same training on this customer’s ink
Start with components already trained on massive database of ink Start with components already trained on massive database of ink samplessamples
Train further on specific user’s ink samplesTrain further on specific user’s ink samples
Explicit trainingExplicit trainingUser must go to a wizard and copy a short scriptUser must go to a wizard and copy a short script
Do have labels from customerDo have labels from customerBut limited in quantity, because of tediousnessBut limited in quantity, because of tediousness
Implicit trainingImplicit trainingData is collected in the background during normal useData is collected in the background during normal use
We get more dataWe get more dataBut it doesn’t have labels verified by the customerBut it doesn’t have labels verified by the customer
We protect ourselves from mislabeled data using our internal We protect ourselves from mislabeled data using our internal confidence measure and a pipeline of quarantined stores confidence measure and a pipeline of quarantined stores
Much of the work is in the infrastructure:Much of the work is in the infrastructure:GUI, database, management of different user’s trained networks, etc.GUI, database, management of different user’s trained networks, etc.
Tablet PC Capstone CSE 481bTablet PC Capstone CSE 481b
Personalization: Text Personalization: Text HarvestingHarvestingSimple concept: just add the user’s new words to the Simple concept: just add the user’s new words to the
lexiconlexicon
Examples (at Microsoft):Examples (at Microsoft):RTM, dev, SDET, dogfooding, KKOMO, featurizationRTM, dev, SDET, dogfooding, KKOMO, featurization
We scan Outlook for outgoing email (avoids spam), We scan Outlook for outgoing email (avoids spam), outgoing appointments, notes, tasks, and contacts (names, outgoing appointments, notes, tasks, and contacts (names, email addresses)email addresses)
We scan Internet Explorer history for URLsWe scan Internet Explorer history for URLs
Natural text goes through the Indexing Service word Natural text goes through the Indexing Service word breaker breaker
Strips punctuation, quotes, etc.Strips punctuation, quotes, etc.
We support add-to-dictionary and remove-from-dictionary, We support add-to-dictionary and remove-from-dictionary, from within the TIPfrom within the TIP
We also run a post-processor based on frequent correction We also run a post-processor based on frequent correction pairspairs
Tablet PC Capstone CSE 481bTablet PC Capstone CSE 481b
Personalization: VistaPersonalization: VistaEast Asian Recognizers:East Asian Recognizers:
Chinese (simplified and traditional), Japanese, KoreaChinese (simplified and traditional), Japanese, Korea
Explicit and Implicit PersonalizationExplicit and Implicit Personalization
No text harvestingNo text harvestingBecause no lexicon used in recognitionBecause no lexicon used in recognition
Dr. Qi Zhang, Dr. John Drakopoulos, Michael BlackDr. Qi Zhang, Dr. John Drakopoulos, Michael Black
English RecognizersEnglish RecognizersUS and UKUS and UK
Explicit Personalization and text harvestingExplicit Personalization and text harvesting
No implicit personalizationNo implicit personalization
Dr. Michael Revow, Dr. Dave Stevens, David Winkler, Rick Dr. Michael Revow, Dr. Dave Stevens, David Winkler, Rick Sailor, Brian Leung, Nick StrathySailor, Brian Leung, Nick Strathy
Tablet PC Capstone CSE 481bTablet PC Capstone CSE 481b
Vista: Recognition Error Vista: Recognition Error ReportingReporting
Button in the TIPButton in the TIPStart menuStart menuDr. Jamie EisenhartDr. Jamie Eisenhart
Tablet PC Capstone CSE 481bTablet PC Capstone CSE 481b
Languages: VistaLanguages: Vista
Previous to Vista, we shipped:Previous to Vista, we shipped:English (US), English (UK), French, German, Spanish, ItalianEnglish (US), English (UK), French, German, Spanish, Italian
Using a completely different approach, we also shipped:Using a completely different approach, we also shipped:Japanese, Chinese (Simplified), Chinese (Traditional), KoreanJapanese, Chinese (Simplified), Chinese (Traditional), Korean
All of the above have improved accuracy in VistaAll of the above have improved accuracy in VistaLatin recognizers are significantly better on URLsLatin recognizers are significantly better on URLsEA recognizers are significantly better on cursiveEA recognizers are significantly better on cursiveAnd some will have personalizationAnd some will have personalization
Vista adds:Vista adds:Dutch, Portuguese (for Brazil)Dutch, Portuguese (for Brazil)Yours trulyYours truly
Tablet PC Capstone CSE 481bTablet PC Capstone CSE 481b
Future LanguagesFuture Languages
We have done some initial work in:We have done some initial work in:Swedish, Danish, Norwegian, Finnish, Serbian (Latin and Swedish, Danish, Norwegian, Finnish, Serbian (Latin and Cyrillic)Cyrillic)We ship based on quality, so we don’t tie to specific releasesWe ship based on quality, so we don’t tie to specific releases
We have started initial research in roughly a dozen moreWe have started initial research in roughly a dozen moreSome in the Latin script and some in other scriptsSome in the Latin script and some in other scriptsMy research goal is to speed the development of new My research goal is to speed the development of new languageslanguages
Tablet PC Capstone CSE 481bTablet PC Capstone CSE 481b
Additional Latin Script Additional Latin Script LanguagesLanguagesAccentsAccents
We already handle acute, grave, dieresis, circumflexWe already handle acute, grave, dieresis, circumflexRing over vowels Ring over vowels (Danish, Norwegian, Swedish, Finnish, Czech)(Danish, Norwegian, Swedish, Finnish, Czech)Double acute Double acute (Hungarian)(Hungarian)Hacek (caron) on consonants Hacek (caron) on consonants (Czech, Slovak, Slovene, Estonian, Latvian, Lithuanian)(Czech, Slovak, Slovene, Estonian, Latvian, Lithuanian)Cedilla under consonants Cedilla under consonants (Romanian, Croatian, Serbian in Latin, Catalan, Turkish, Latvian)(Romanian, Croatian, Serbian in Latin, Catalan, Turkish, Latvian)Ogonek under vowels Ogonek under vowels (Polish, Lithuanian)(Polish, Lithuanian)Dot over letter Dot over letter (Polish, Lithuanian, Maltese)(Polish, Lithuanian, Maltese)Macron over vowels Macron over vowels (Latvian, Lithuanian, Maori)(Latvian, Lithuanian, Maori)Breve over letters Breve over letters (Romanian, Turkish)(Romanian, Turkish)
Others:Others:ø ø (Danish, Norwegian)(Danish, Norwegian) ł ł (Polish)(Polish) ŀl ŀl (Catalan)(Catalan) ð þ ð þ (Icelandic)(Icelandic) ħ ħ (Maltese)(Maltese)Dotted capital I and dotless lowercase i Dotted capital I and dotless lowercase i (Turkish)(Turkish)
QuotesQuotes““high quotes” high quotes” (English, Spanish, Portuguese, Modern Dutch, Turkish, Catalan, Galician, Welsh, (English, Spanish, Portuguese, Modern Dutch, Turkish, Catalan, Galician, Welsh, Zulu, Malay)Zulu, Malay)„„low quotes“ low quotes“ (German, Polish, Czech, Romanian, Croatian, Serbian, Hungarian, Slovak)(German, Polish, Czech, Romanian, Croatian, Serbian, Hungarian, Slovak)””left-facing quotesleft-facing quotes” ” (Danish, Norwegian, Swedish, Finnish)(Danish, Norwegian, Swedish, Finnish)« chevron quotes » « chevron quotes » (French)(French)
NumbersNumbers1,234,567.89 1,234,567.89 (English, some former British colonies)(English, some former British colonies)1 234 567,891 234 567,89 (Swedish, Norwegian, Finnish, Czech, Slovak, Hungarian, Lithuanian, Latvian, (Swedish, Norwegian, Finnish, Czech, Slovak, Hungarian, Lithuanian, Latvian, Estonian)Estonian)1 234 567,89 or 1.234.567,891 234 567,89 or 1.234.567,89 (French, Italian, Polish, Slovene) (French, Italian, Polish, Slovene)1.234.567,89 1.234.567,89 (everyone else)(everyone else)
Tablet PC Capstone CSE 481bTablet PC Capstone CSE 481b
Bill Gates makes more money, but I have more funBill Gates makes more money, but I have more funI remember senior people at several research I remember senior people at several research institutions calling cursive recognition “waste of time institutions calling cursive recognition “waste of time and money”and money”Some find it recognizes their writing when no one else Some find it recognizes their writing when no one else cancan
But I also know there are others who get poor But I also know there are others who get poor recognitionrecognitionI wonder if Gary Trudeau has tried itI wonder if Gary Trudeau has tried it
People will adapt to a recognizer, if they use it People will adapt to a recognizer, if they use it enoughenough
Just as they adapt to the people they live with and work Just as they adapt to the people they live with and work withwithMy physician in Issaquah gets perfect recognition on a My physician in Issaquah gets perfect recognition on a NewtonNewton
Biggest complaints:Biggest complaints:No adaptation to my handwriting style (coming in Vista)No adaptation to my handwriting style (coming in Vista)We don’t yet ship their language (I’m working on it)We don’t yet ship their language (I’m working on it)
Other complaints:Other complaints:Weak on URLs (much better in Vista), email addresses, Weak on URLs (much better in Vista), email addresses, slashes, some styles of handprint (all better in Vista)slashes, some styles of handprint (all better in Vista)East Asian weak on cursive (much better in Vista)East Asian weak on cursive (much better in Vista)
Best Job at MicrosoftBest Job at Microsoft
Tablet PC Capstone CSE 481bTablet PC Capstone CSE 481b
© 2006 Microsoft Corporation. All rights reserved.© 2006 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Top Related