[go: up one dir, main page]

WO2014166114A1 - An apparatus for text entry and associated methods - Google Patents

An apparatus for text entry and associated methods Download PDF

Info

Publication number
WO2014166114A1
WO2014166114A1 PCT/CN2013/074154 CN2013074154W WO2014166114A1 WO 2014166114 A1 WO2014166114 A1 WO 2014166114A1 CN 2013074154 W CN2013074154 W CN 2013074154W WO 2014166114 A1 WO2014166114 A1 WO 2014166114A1
Authority
WO
WIPO (PCT)
Prior art keywords
stroke
group
stroke group
updated
determined
Prior art date
Application number
PCT/CN2013/074154
Other languages
French (fr)
Inventor
Yanming Zou
Xiuliang LI
Rui Yu
Yong Gou
Original Assignee
Nokia Corporation
Nokia (China) Investment Co., Ltd.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nokia Corporation, Nokia (China) Investment Co., Ltd. filed Critical Nokia Corporation
Priority to CN201380077229.9A priority Critical patent/CN105283882B/en
Priority to PCT/CN2013/074154 priority patent/WO2014166114A1/en
Publication of WO2014166114A1 publication Critical patent/WO2014166114A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/32Digital ink
    • G06V30/36Matching; Classification
    • G06V30/373Matching; Classification using a special pattern or subpattern alphabet

Definitions

  • the present disclosure relates to the field of text entry, associated methods and apparatus.
  • Certain disclosed example aspects/embodiments relate to portable electronic devices, which may include so-called hand-portable electronic devices which may be hand-held in use (although they may be placed in a cradle in use).
  • Such hand-portable electronic devices may include mobile telephones, so-called Personal Digital Assistants (PDAs) and tablet PCs.
  • PDAs Personal Digital Assistants
  • tablet PCs tablet PCs
  • Portable electronic devices/apparatus may provide one or more audio/text/video communication functions (e.g. tele-communication, video-communication, and/or text transmission, Short Message Service (SMS)/ Multimedia Message Service (MMS)/emailing functions, interactive/non-interactive viewing functions (e.g. web-browsing, navigation, TV/program viewing functions), music recording/playing functions (e.g. MP3 or other format and/or (FM/AM) radio broadcast recording/playing), downloading/sending of data functions, image capture function (e.g. using a (e.g. in-built) digital camera), and gaming functions.
  • audio/text/video communication functions e.g. tele-communication, video-communication, and/or text transmission, Short Message Service (SMS)/ Multimedia Message Service (MMS)/emailing functions, interactive/non-interactive viewing functions (e.g. web-browsing, navigation, TV/program viewing functions), music recording/playing functions (e.g. MP3 or
  • a user interface may enable a user to interact with an electronic device, for example, to open applications using application icons, enter commands, to select menu items from a menu, or to enter characters using a virtual keypad. To enter text strings, the user may be provided with a physical or virtual keyboard.
  • an apparatus comprising:
  • At least one memory including computer program code
  • the at least one memory and the computer program code configured, with the at least one processor, to cause the apparatus to perform at least the following:
  • each stroke group comprises one or more strokes and corresponds to a radical
  • a radical may be a whole or a part of a graphical character.
  • the character consists of the radical (i.e. the character itself); whereas the character ' ( 3 ⁇ 4' comprises the radicals ' ⁇ ' and ⁇ '.
  • a radical may relate to a semantic or phonetic element of a character, or even an element which is recognisable by the apparatus.
  • a radical may be a group of one or more strokes which do not overlap any other strokes (e.g. each stroke of a given radical may overlap with another stroke of the same radical but may not interact with any other strokes).
  • the graphical characters may be standardised characters, for example, textual characters in a particular font (e.g. Unicode font).
  • a stroke may comprise a continuous input gesture.
  • a stroke may be input using a touch screen by touching the screen with a finger and stylus, providing a continuous input gesture, and then ceasing contact with the screen. It will be appreciated that different example embodiments may delimit strokes using other parameters (e.g. velocity of input, direction changes).
  • the apparatus may be configured to based on the determined new or updated stroke group, determine whether the new or updated stroke group
  • the apparatus may be configured to determine a possibility matrix comprising all of the possible permutations of the determined stroke groups.
  • the possibility matrix may be updated, based on a said determined new stroke group by adding entries to the matrix representing combinations comprising the determined new stroke group.
  • the possibility matrix may be updated, based on a said determined updated stroke group, by updating entries to the matrix representing combinations comprising the determined updated stroke group.
  • the combinations of strokes to form stroke groups may be based on one or more of: the spatial features of the strokes; and statistical classification methods.
  • Spatial features may include an endpoint of the current stroke, a geometric centre of the current stroke, a beginning point of the next stroke, a geometric centre of the next stroke, a smallest rectangle containing the current stroke, a smallest rectangle containing the next stroke and a smallest rectangle containing an immediately prior stroke.
  • Statistical classifications methods may include using a support vector machine or an artificial neural network (or other learning model).
  • the matrix elements comprising the further inputted stroke group forming an isolated graphical character
  • a probability determined for a character corresponding to the last combination of stroke groups given the other determined characters may be based on a language model. At least a portion of the determinations may be performed in response to at least one of: receiving a stroke after the further inputted stroke; and.
  • the apparatus may be an electronic device, a portable electronic device, a laptop computer, a mobile phone, a Smartphone, a tablet computer, a personal digital assistant, a digital camera, a watch, a server, a non-portable electronic device, a desktop computer, a monitor, a server, a wand, a pointing stick, a touchpad, a touch-screen, a mouse, a joystick or a module/circuitry for one or more of the same.
  • each stroke group comprises one or more strokes and corresponds to a radical
  • a computer program comprising computer program code, the computer program code being configured to perform at least the following:
  • each stroke group comprises one or more strokes and corresponds to a radical
  • a apparatus comprising, a means for determining configured to determine, based on receipt of a further inputted stroke, whether the further stroke
  • each stroke group comprises one or more strokes and corresponds to a radical
  • a means for providing configured to provide, based on the determination, for output of one or more graphical characters comprising radicals corresponding to the determined new stroke group or updated stoke group.
  • a determiner configured to determine, based on receipt of a further inputted stroke, whether the further stroke
  • each stroke group comprises one or more strokes and corresponds to a radical
  • an apparatus comprising, at least one processor;
  • At least one memory including computer program code
  • the at least one memory and the computer program code configured, with the at least one processor, to cause the apparatus to perform at least the following:
  • each stroke group comprises one or more strokes and corresponds to a word or word component; and based on the determination, provide for output of one or more words comprising the word or word component corresponding to the determined new stroke group or updated stoke group.
  • a word or word component may comprise one or more characters.
  • a character e.g. of a word or word component
  • the characters may be standardised characters, for example, textual characters in a particular font (e.g. Unicode font).
  • the apparatus may be configured to
  • each stroke group comprises one or more strokes and corresponds to a word or word component; and based on the determination, providing for output of one or more words comprising the word or word component corresponding to the determined new stroke group or updated stoke group.
  • a computer program comprising computer program code, the computer program code being configured to perform at least the following:
  • each stroke group comprises one or more strokes and corresponds to a word or word component
  • Corresponding computer programs (which may or may not be recorded on a carrier, such as a CD or other non-transitory medium) for implementing one or more of the methods disclosed herein are also within the present disclosure and encompassed by one or more of the described example embodiments.
  • the present disclosure includes one or more corresponding aspects, example embodiments or features in isolation or in various combinations whether or not specifically stated (including claimed) in that combination or in isolation.
  • Corresponding means and corresponding function units e.g. a determiner, a provider for performing one or more of the discussed functions are also within the present disclosure.
  • Figure 1 depicts an example apparatus embodiment according to the present disclosure comprising a number of electronic components, including memory and a processor
  • Figure 2 depicts an example apparatus embodiment according to the present disclosure comprising a number of electronic components, including memory, a processor and a communication unit
  • Figure 3 depicts an example apparatus embodiment according to the present disclosure comprising a number of electronic components, including memory, a processor and a communication unit;
  • Figures 4a-4d illustrate a first embodiment comprising a portable electronic device
  • Figures 5a-5b illustrate a further embodiment comprising a portable electronic device
  • Figures 6a-6b illustrates calculations performed by a further embodiment
  • Figures 7 illustrate calculations performed for alphabetic characters
  • Figures 8a-8b illustrates calculations performed for alphabetic characters
  • Figures 9a-9b illustrate an example apparatus according to the present disclosure in communication with a remote server/cloud
  • Figure 10 shows the main steps of a method of recognising graphical characters
  • Figure 1 1 shows the main steps of a method of recognising words
  • Figure 12 a computer-readable medium comprising a computer program. Description of Specific Example Embodiments
  • an electronic device it is common for an electronic device to have a user interface (which may or may not be graphically based) to allow a user to interact with the device to enter and/or interact with information.
  • a user interface which may or may not be graphically based
  • the user may use a keyboard user interface to enter text, or icons to open applications.
  • a user interface may provide a keyboard to facilitate character entry.
  • a language such as Chinese
  • the present disclosure relates to enabling handwriting recognition which, based on receipt of a further inputted stroke (e.g. using a touch interface or a peripheral device, such as a mouse), determines whether the further stroke combines with one or more previously inputted strokes of a previously determined stroke group to form an updated stroke group, or forms a new stroke group, wherein each stroke group comprises one or more strokes and corresponds to a radical; and based on the determination, provides for output of one or more graphical characters comprising radicals corresponding to the determined new stroke group or updated stoke group.
  • a further inputted stroke e.g. using a touch interface or a peripheral device, such as a mouse
  • feature number 1 can also correspond to numbers 101 , 201 , 301 etc. These numbered features may appear in the figures but may not have been directly referred to within the description of these particular example embodiments. These have still been provided in the figures to aid understanding of the further example embodiments, particularly in relation to the features of similar earlier described example embodiments.
  • Figure 1 shows an apparatus 101 comprising memory 145, a processor 144, input I and output O.
  • memory 145 In this example embodiment only one processor and one memory are shown but it will be appreciated that other example embodiments may utilise more than one processor and/or more than one memory (e.g. same or different processor/memory types).
  • the apparatus 101 is an Application Specific Integrated Circuit (ASIC) for a portable electronic device.
  • ASIC Application Specific Integrated Circuit
  • the apparatus 101 can be a module for such a device, or may be the device itself, wherein the processor 144 is a general purpose CPU of the device and the memory 145 is general purpose memory comprised by the device.
  • the input I allows for receipt of signalling to the apparatus 101 from further components (e.g. from a receiver), such as components of a portable electronic device (like a touch- sensitive display) or the like.
  • the output O allows for onward provision of signalling from within the apparatus 101 to further components.
  • the input I and output O are part of a connection bus that allows for connection of the apparatus 101 to further components (e.g. to a transmitter or a display).
  • the processor 144 is a general purpose processor dedicated to executing/processing information received via the input I in accordance with instructions stored in the form of computer program code on the memory 145.
  • the output signalling generated by such operations from the processor 144 is provided onwards to further components via the output O.
  • the memory 145 (not necessarily a single memory unit) is a computer readable medium (solid state memory in this example, but may be other types of memory such as a hard drive, ROM, RAM, Flash or the like) that stores computer program code.
  • This computer program code stores instructions that are executable by the processor 144, when the program code is run on the processor 144.
  • the internal connections between the memory 145 and the processor 144 can be understood to provide, in one or more example embodiments, an active coupling between the processor 144 and the memory 145 to allow the processor 144 to access the computer program code stored on the memory 145.
  • the input I, output O, processor 144 and memory 145 are all electrically connected to one another internally to allow for electrical communication between the respective components I, O, 144, 145.
  • the components are all located proximate to one another so as to be formed together as an ASIC, in other words, so as to be integrated together as a single chip/circuit that can be installed into an electronic device.
  • one or more or all of the components may be located separately from one another.
  • Figure 2 depicts an apparatus 201 of a further example embodiment, such as a mobile phone.
  • the apparatus 201 may comprise a module for a mobile phone (or PDA or audio/video player), and may just comprise a suitably configured memory 245 and processor 244.
  • the apparatus in certain example embodiments could be a portable electronic device, a laptop computer, a mobile phone, a Smartphone, a tablet computer, a personal digital assistant, a digital camera, a watch, a server, a non-portable electronic device, a desktop computer, a monitor, a server, a wand, a pointing stick, a touchpad, a touch-screen, a mouse, a joystick or a module/circuitry for one or more of the same.
  • the example embodiment of figure 2 in this case, comprises a display device 204 such as, for example, a Liquid Crystal Display (LCD) or touch-screen user interface.
  • the apparatus 201 of figure 2 is configured such that it may receive, include, and/or otherwise access data.
  • this example embodiment 201 comprises a communications unit 203, such as a receiver, transmitter, and/or transceiver, in communication with an antenna 202 for connecting to a wireless network and/or a port (not shown) for accepting a physical connection to a network, such that data may be received via one or more types of networks.
  • This example embodiment comprises a memory 245 that stores data, possibly after being received via antenna 202 or port or after being generated at the user interface 205.
  • the processor 244 may receive data from the user interface 205, from the memory 245, or from the communication unit 203. It will be appreciated that, in certain example embodiments, the display device 204 may incorporate the user interface 205.
  • these data may be outputted to a user of apparatus 201 via the display device 204, and/or any other output devices provided with apparatus.
  • the processor 244 may also store the data for later use in the memory 245.
  • the memory 245 may store computer program code and/or applications which may be used to instruct/enable the processor 244 to perform functions (e.g. read, write, delete, edit or process data).
  • Figure 3 depicts a further example embodiment of an electronic device 301 , such as a tablet personal computer, a portable electronic device, a portable telecommunications device, a server or a module for such a device, the device comprising the apparatus 101 of figure 1 .
  • the apparatus 101 can be provided as a module for device 301 , or even as a processor/memory for the device 301 or a processor/memory for a module for such a device 301 .
  • the device 301 comprises a processor 344 and a storage medium 345, which are connected (e.g. electrically and/or wirelessly) by a data bus 380.
  • This data bus 380 can provide an active coupling between the processor 344 and the storage medium 345 to allow the processor 344 to access the computer program code.
  • the components (e.g. memory, processor) of the device/apparatus may be linked via cloud computing architecture.
  • the storage device may be a remote server accessed via the internet by the processor.
  • the apparatus 101 in figure 3 is connected (e.g. electrically and/or wirelessly) to an input/output interface 370 that receives the output from the apparatus 101 and transmits this to the device 301 via data bus 380.
  • Interface 370 can be connected via the data bus 380 to a display 304 (touch-sensitive or otherwise) that provides information from the apparatus 101 to a user.
  • Display 304 can be part of the device 301 or can be separate.
  • the device 301 also comprises a processor 344 configured for general control of the apparatus 101 as well as the device 301 by providing signalling to, and receiving signalling from, other device components to manage their operation.
  • the storage medium 345 is configured to store computer code configured to perform, control or enable the operation of the apparatus 101.
  • the storage medium 345 may be configured to store settings for the other device components.
  • the processor 344 may access the storage medium 345 to retrieve the component settings in order to manage the operation of the other device components.
  • the storage medium 345 may be a temporary storage medium such as a volatile random access memory.
  • the storage medium 345 may also be a permanent storage medium such as a hard disk drive, a flash memory, a remote server (such as cloud storage) or a non-volatile random access memory.
  • the storage medium 345 could be composed of different combinations of the same or different memory types.
  • Figures 4a - 4d depicts an example embodiment of the apparatus depicted in figure 2 comprising a portable electronic communications device 401 , e.g. such as a mobile phone, with a user interface comprising a touch-screen user interface 405, 404, a memory (not shown), a processor (not shown) and an antenna (not shown) for transmitting and/or receiving data (e.g. emails, textual messages, phone calls, information corresponding to web pages).
  • data e.g. emails, textual messages, phone calls, information corresponding to web pages.
  • the user is using a messaging application to send and receive messages from his friend.
  • the messaging application is running, the device is configured to display previously sent messages 41 1 , received messages 412 and messages which are being composed 413.
  • the user is composing a message by writing or drawing characters in a character entry region 414 using his finger (or other stylus).
  • the device is configured to recognise the hand written characters and enter standardised characters (e.g. in a standard font such as Unicode font) into the text entry field.
  • Figure 4a shows a series of strokes 421 , 422a entered into the recognition region 414 of the touch screen user interface. These strokes comprise a recognised stroke group 421 corresponding to the radical, 'i ( woman) and a further stroke 422a which has just been entered by the user.
  • the apparatus/device is configured to determine, based on receipt of a further inputted stroke 422a, whether the further stroke 422a combines with one or more previously inputted strokes of a previously determined stroke group 421 to form an updated stroke group, or forms a new stroke group wherein each stroke group comprises one or more strokes and corresponds to a radical. It will be appreciated that this determination may be based on, for example, whether the combination of the further inputted stroke and the previously determined stroke group forms at least part of a recognisable radical.
  • the new stroke 422a does not combine with the previously inputted strokes of the 'i stroke group 421 to form an updated stroke group, as there are no radicals which comprise the strokes of the previously entered stroke group 421 and the further inputted stroke 422a. Therefore, in this case, the new stroke forms 422a a new stroke group.
  • the apparatus is configured to provide a limited list 415a of possible character matches for selection, each of the possible character matches comprising the radicals which have been recognised as comprising the entered stroke groups.
  • the character 'i is recognised as comprising the previously inputted stroke group, so this character is provided as a possible match. Because a large number of radicals may comprise the entered stroke of the newly formed stroke group, no possible matches are automatically selected.
  • the apparatus/device is configured to determine whether the newly entered stroke combines with the stroke of the previous stroke group to form an updated stroke group. Unlike the previous case, the stroke of the previous stroke group and the new stroke do combine to form an updated stroke group as there are a number of radicals which comprise these two strokes, including the '7' and the '7' radicals.
  • the apparatus/device is configured to, based on the determination, provide for output of one or more graphical characters comprising radicals corresponding to the determined new stroke group or updated stoke group.
  • the device is configured to provide possible characters 415c and character combinations 415b, 415d comprising the determined stroke groups including the new stroke group or the updated stroke group.
  • the character ' ' recognised as comprising the previously inputted stroke group is provided as a possible match for the previously inputted stroke group.
  • the second stroke group is recognised as forming at least part of the radicals '7' or '7'.
  • These radicals may form part of a separate character or combine with the previously entered radical to form a composite character.
  • the radicals 'i and '7' do not combine to form a composite character but the radicals 'i and '7' can combine to form the composite character Therefore, in this case the device is configured to provide the possible matches for all of the entered strokes as ' 7' 415d, ' T' 415b and 415c.
  • the apparatus/device provides for output of one or more graphical characters comprising radicals corresponding to the determined new stroke group or updated stoke group.
  • the user continues to enter strokes, as shown in figure 4c.
  • the apparatus/device is configured to determine whether the newly entered stroke combines with the stroke of the previous stroke group to form an updated stroke group.
  • the strokes of the previous stroke group and the new stroke do combine to form an updated stroke group as the radical comprises these the two strokes of the previously determined stroke group and the further inputted stroke.
  • the character 'i previously recognised as comprising the previously inputted stroke group is provided as a possible match for the previously inputted stroke group.
  • the second stroke group is recognised as forming at least part of the radical i f
  • These radicals may form part of a separate character or combine with the previously entered radical to form a composite character.
  • the radicals 'i and i f' can combine to form the character Therefore, in this case the device is configured to provide the possible matches for all of the entered strokes as ' 1 ' 415f and 415e. In this way, the apparatus/device provides for output of one or more graphical characters comprising radicals corresponding to the determined new stroke group or updated stoke group.
  • the possible matches may be assigned a probability based on, for example, a combination of one or more of the previously entered characters, the frequency of use, and the number of additional strokes present in the character as compared to the inputted strokes. For example, in this case, as the previously entered character in the compose message field is I' (very), the probability of the next character being (good) may be determined to be higher than the probability of the next character being 'iC ( woman).
  • the apparatus/device may be configured to display the candidate characters based on a determined probability.
  • Figures 5a-5b shows a further example embodiment configured to recognise handwriting input.
  • Figure 5a depicts the example embodiment of the apparatus depicted in figure 2 comprising a portable electronic communications device 501 , e.g. such as a mobile phone, with a user interface comprising a touch-screen user interface 505, 504, a memory (not shown), a processor (not shown) and an antenna (not shown) for transmitting and/or receiving data (e.g. emails, textual messages, phone calls, information corresponding to web pages).
  • data e.g. emails, textual messages, phone calls, information corresponding to web pages.
  • the user is using an email application to compose a message to his friend.
  • the device is configured to display a sender field 514, a recipient field 515 a subject field 516 and a message field 517.
  • the user is entering characters into the subject field 516 by writing or drawing characters in a character entry region 514 using his finger (or other stylus).
  • the device is configured to recognise the hand written characters and enter standardised characters (e.g. in a standard font such as Unicode font) into the compose message field.
  • this embodiment is configured to, based on receipt of a further inputted stroke, determine whether the further stroke combines with one or more previously inputted strokes of a previously determined stroke group to form an updated stroke group, or forms a new stroke group wherein each stroke group comprises one or more strokes and corresponds to a radical; and based on the determination, provide for output of one or more graphical characters comprising radicals corresponding to the determined new stroke group or updated stoke group.
  • the embodiment is configured to recognize a series of overlapping characters entered into a user input region of the user interface device. Recognition of overlapped handwritings can be considered as a searching process to find the best stroke combination scheme, whose corresponding character list is most frequently used in daily life based on the given strokes.
  • Overlapped handwriting may include when a user writes, for example, successive words, word components, radicals or characters on top of each other. For example, if the portion of a user interface is limited in extent, when the user completes one line of text within the limited extent, the user may start again at the start of the line to enter a further line of text. These successive lines of text may overlap each other as they are entered in the same space within the limited user interface.
  • the recognition is divided into two phases, pre-segmentation and fine segmentation. Pre-segmentation is performed first, to assign each stroke to a stroke group, which can be a whole character or a part of a character. Usually the pre- segmentation is based on the spatial features of strokes and statistical classification methods. This stage is generally simple and fast.
  • Fine segmentation is performed after pre-segmentation, to find the best combination scheme for pre-segmented groups which have the highest probability by going through a combination scheme list with the help of a probability matrix.
  • Each element of the probability matrix represents the probability of a set of pre-segmented groups to be one isolated character.
  • Each matrix element M (/th, /th) represents the probability of a group set containing the pre-segmented groups from the /th to the /th. The value is usually calculated based on the similarities of the candidates given out by an isolated character handwriting recognition engine.
  • the probability of a possible output character not only depends on the probability of all the constituent stroke groups (e.g. relating to the correspondence between the entered strokes and the possible output character per se), but also, for example, the possibility of the output character given the character preceding and/or following it.
  • the probability may be decided by a bigram language model.
  • the calculation of the step is complex and may have a high associated computation cost.
  • Figure 5b illustrates the calculations performed by the apparatus/device shown in figure 5a as successive strokes are entered into the input entry region.
  • the user is writing the word ' ⁇ M' (carnival) which is made up of three graphical characters.
  • the first character of the word has been entered and the (m th stroke shown in figure 5b represents the last stroke corresponding to the second character, ' C.
  • the character entry region 514 is limited in extent, the second written character ' C is written in the same position within the character entry region as the first written character ' ⁇ -'. In this way, successive handwritten characters overlaps previously input handwritten characters.
  • the device In response to the entry of the ⁇ m)Vr stroke, the device is configured to determine whether the (m)Vr stroke combines with the strokes of the previous stroke group to form an updated stroke group or whether the further strokes forms a new stroke group.
  • the pre-segmentation phase only the new added stroke is processed. The pre- segmentation results of other strokes are untouched. Thus there is only one updated or new generated pre-segmented group each time.
  • the ⁇ m)Vr is determined to combine with the previously determined stroke group to form an updated stroke group. Based on this, the device/apparatus recalculates stroke group combinations comprising the updated stroke group. These combinations represent the final column of a matrix giving the stroke group combinations of all of the entered stroke groups.
  • the stroke group combinations which do not comprise the new or updated stroke group (e.g. ⁇ ⁇ ) are left unchanged. This may provide significant processing reductions.
  • the apparatus/device is configured to determine the possible matrix entry combinations which comprise all of the determined stroke groups.
  • the output could correspond to the matrix entry M 1 2 , or to the matrix entry ⁇ ⁇ followed by the matrix entry M 2 ,2-
  • the probability of a combination scheme with n matrix entry radicals can be expressed as a product of three items:
  • the first item in the expression is the probability of the combination scheme with the first n-1 stroke groups, which has already been calculated and stored in the system.
  • the second part is the probability of the last stroke group being one isolated character, which can be checked from the possibility matrix.
  • the third part is the possibility of the identified stroke group following the previous stroke groups (which can be calculated, for example, using language modelling).
  • the third component of the probability for the character may be high given that the character ' f follows the character in the known word ' ⁇ & (carnival). Therefore, the character is provided as output. Unlike the previous case, the provided output is provided directly into the text entry field 51 6 which the user is entering text into. It will be appreciated that the provided output may be updated as further strokes are input. It will be appreciated that other example embodiments may be configured to calculate the sum of the logarithms of each term to provide an indication of the probability of a combination scheme with matrix entry
  • the process is repeated as shown in figure 5b.
  • the device In response to the entry of the (m+ 1)Vr ⁇ stroke, the device is configured to determine whether the (m+ 1)Vr ⁇ stroke combines with the strokes of the previously determined stroke group to form an updated stroke group or whether the further strokes forms a new stroke group. In this case, the stroke is determined not to combine with the previous stroke group to form an updated stroke group, but to form a new stroke group.
  • the device/apparatus recalculates the stroke group combinations comprising the new stroke group.
  • the stroke group combinations which do not comprise the new or updated stroke group are left unchanged.
  • This newly calculated row (535:m+1 ) represents the possible combinations of stroke groups which comprise the newly added stroke group.
  • the apparatus/device is configured to determine the possible matrix entry combinations which comprise all of the determined stroke groups.
  • the possible combinations relating to the previously determined stroke groups are unchanged. Only combinations comprising the new stroke group are recalculated (536:m+1 ).
  • the output could correspond to the matrix entry M 3,3 ; to the matrix entry followed by the matrix entry M 2,3 ; to the matrix entry M 1 2 followed by the matrix entry M 3 3 ; or to the matrix entry ⁇ ⁇ followed by the matrix entry M 2,2 followed by the matrix entry M 3,3 .
  • the matrix entry ⁇ ⁇ and the matrix entry M 2,3 correspond to known characters so the these characters ('- ⁇ ') are provided as output to the user.
  • the probability of ' ⁇ ' following may be lower than ' f following (the third term in the above equation).
  • the probability of the ' ⁇ ' character corresponding to the entered strokes may be higher than for ' C because the ' ⁇ ' has a stroke which corresponds to the further inputted (m+ 1)Vr ⁇ stroke whereas ' C does not (the second term in the above equation).
  • the process is repeated as shown in figure 5b.
  • the device is configured to determine whether the (m+2)Vr ⁇ stroke combines with the strokes of the previous stroke group to form an updated stroke group or whether the further strokes forms a new stroke group. In this case, the stroke is determined to combine with the previous stroke group to form an updated stroke group(533:m+2).
  • the device/apparatus recalculates the stroke group combinations comprising the new stroke group (535:m+2).
  • the stroke group combinations which do not comprise the updated stroke group (533:m+2) are left unchanged.
  • the size of the matrix remains unchanged, although the final column (535:m+2) of the probability matrix is updated to reflect the updated stroke group.
  • This updated row (535:m+2) represents the possible combinations of stroke groups which comprise the updated stroke group.
  • the apparatus/device is configured to determine the possible matrix entry combinations which comprise all of the determined stroke groups. As the size of the matrix has not changed the possible combinations of matrix entries remains unchanged.
  • the previously determined combinations comprising the last stroke group (536:m+2) are updated to reflect the updated stroke group.
  • the output could correspond to the matrix entry M 3 3 ; to the matrix entry ⁇ ⁇ followed by the matrix entry M 2,3 ; to the matrix entry M 1 2 followed by the matrix entry M 3,3 ; or to the matrix entry followed by the matrix entry M 2,2 followed by the matrix entry M 3 3 .
  • the apparatus determines that the matrix entries ⁇ ⁇ , M 2,2 and M 3 3 represents the most likely combination of known characters so the these characters ('-n CX') are provided as output to the user. The procedure continues as the user enters the further strokes of the last character until the desired word ' ⁇ M' (carnival) is entered.
  • the recognition process comprises several stages, these stages need not all be executed in response to each entered stroke. That is, other example embodiments may carry out the recognition process in several intervals (each interval corresponding to entry of a single stroke). This may further reduce the processing power required whilst providing output characters in real time. Since the processing of one new stroke may take some time, there may be several strokes or even several pre-segmented groups waiting for recognition after the processing of one stroke is finished. However, since the pre-segmented groups usually have multiple strokes, the processing of each stroke may be spread over multiple stroke inputs without causing a significant or perceptible delay to the user.
  • Figure 6a shows a series of calculations performed by another example embodiment configured to perform the recognition process over two intervals. For comparison, the user is entering the same word as that entered using the embodiment of figures 5a and 5b - '- ⁇ - ⁇ ' (carnival).
  • the apparatus/device determines whether the new stroke forms an updated stroke group in combination with the previous stroke group or a new stroke group (pre-segmentation); and whether the new or updated stroke group combines with the previously determined stroke groups to provide recognisable characters (fine segmentation). In this case, however, different stages of the calculation are performed for each successive stroke.
  • the first character of the word has been entered and the mth stroke shown in figure 6a represents the last stroke corresponding to the second character, ' C.
  • the device in response to the entry of the mth stroke, the device is configured to determine whether the mth stroke combines with the strokes of the previous stroke group to form an updated stroke group or whether the further strokes forms a new stroke group.
  • the mth stroke is determined to form part of the previously determined stroke group (633:m).
  • the device/apparatus recalculates the stroke group combinations comprising the new or updated stroke group (635:m). That is, the device/apparatus recalculates the stroke group combinations in the possibility matrix comprising the updated stroke group.
  • the stroke group combinations which do not comprise the new or updated stroke group are left unchanged. As there is no new stroke group the size of the matrix remains unchanged, although the final column (635:m) is updated to reflect the updated stroke group.
  • This updated row represents the possible combinations of stroke groups which comprise the updated stroke group. Leaving stroke group combinations which do not comprise the new or updated stroke group unchanged may provide significant processing reductions.
  • the apparatus/device is not configured to determine the possible matrix entry combinations which comprise all of the determined stroke groups.
  • the output text remains as it was for the (m- 1)Vr stroke.
  • the process is continued as shown in figure 6a.
  • the apparatus/device determines that the ⁇ m+ 1)Vr ⁇ stroke forms a new stroke group 634:m+1 ), the possibility matrix is not updated to reflect the entry of the ⁇ m+ 1)Vr ⁇ stroke.
  • the apparatus/device is configured to determine the possible matrix entry combinations which comprise all of the determined stroke groups based on the matrix determined in the previous interval (in response to the inputting of the mth stroke).
  • the output could correspond to the matrix entry M 1 2 ; or to the matrix entry followed by the matrix entry M 2 ,2-
  • the steps performed for the mth stroke are repeated as shown in figure 6a. That is, in response to the entry of the ⁇ m+2)Vr ⁇ stroke, the device is configured to determine whether the (m+2)th stroke combines with the stroke of the previous stroke group (determined in the (m+ 7)th interval) to form an updated stroke group or whether the further strokes forms a new stroke group. In this case, the stroke is determined to combine with the previous stroke group to form an updated stroke group. Based on this, the device/apparatus recalculates the stroke group combinations comprising the new stroke group. The stroke group combinations which do not comprise the new or updated stroke group are left unchanged. As the updated stroke group was not determined when the possibility matrix was last determined (in response to the (m)Vr stroke), the a new column for the updated stroke group is provided. This new row represents the possible combinations of stroke groups which comprise the updated stroke group.
  • the apparatus/device is configured to determine the possible matrix entry combinations which comprise all of the determined matrix entries.
  • the output could correspond to the matrix entry M 1 3 ; to the matrix entry ⁇ ⁇ followed by the matrix entry M 2,3 ; to the matrix entry M 1 2 followed by the matrix entry M 3 3 ; or to the matrix entry followed by the matrix entry M 2,2 followed by the matrix entry M 3 3 .
  • the apparatus determines that the matrix entries ⁇ ⁇ , M 2,2 and M 3 3 represents the most likely combination of known characters so the these characters (' n " CX') are provided as output to the user.
  • the device In response to the ⁇ m+4)Vr ⁇ stroke, the first part of the process is repeated as shown in figure 6b.
  • the device In response to the entry of the ⁇ m+4)h stroke, the device is configured to determine whether the (m+4)th stroke combines with the strokes of the previous stroke group to form an updated stroke group or whether the further strokes forms a new stroke group. In this case, the stroke is determined to combine with the previous stroke group to form an updated stroke group.
  • the device/apparatus recalculates the stroke group combinations comprising the new stroke group.
  • the stroke group combinations which do not comprise the new or updated stroke group are left unchanged.
  • the updated stroke group was not determined when the possibility matrix was last determined (in response to the ⁇ m+2)Vr ⁇ stroke)
  • the a new column for the updated stroke group is provided. This new row represents the possible combinations of stroke groups which comprise the updated stroke group.
  • the process does not continue to calculate the combinations of the possibility matrix entries.
  • the apparatus/device In response to the (m+5)th stroke, the apparatus/device is configured to determine the possible matrix entry combinations which comprise all of the determined stroke groups. In this case, the apparatus determines that the matrix entries ⁇ ⁇ , M 2,2 , M 3,3 and M 4,4 represents the most likely combination of known characters so the these characters (' n " ') are provided as output to the user.
  • the apparatus determines that the matrix entries ⁇ ⁇ , M 2,2 , M 3,3 and M 4,4 represents the most likely combination of known characters so the these characters (' n " ') are provided as output to the user.
  • the apparatus determines that the matrix entries ⁇ ⁇ , M 2,2 , M 3,3 and M 4,4 represents the most likely combination of known characters so the these characters (' n " ') are provided as output to the user.
  • the apparatus determines that the matrix entries ⁇ ⁇ , M 2,2 , M 3,3 and M 4,4 represents the most likely combination of known characters so the these characters (' n "
  • the (m+5)th stroke is the last stroke that the user wishes to enter into the subject line of an email.
  • the (m+5)th stroke is not fully processed in response to the entry of the (m+5)th stroke.
  • the device/apparatus when the user has not entered a stroke for a predetermined threshold period of time, the device/apparatus is configured to complete the processing of any strokes which have not yet been fully processed. This is shown in figure 5b.
  • the device/apparatus is configured to recalculate the group combinations comprising the updated stroke group. The stroke group combinations which do not comprise the new or updated stroke group are left unchanged.
  • the final column is updated to reflect the updated stroke group.
  • This updated row represents the possible combinations of stroke groups which comprise the updated stroke group. Unlike previously when the processing is in response to the time period threshold being exceeded, the process continues to calculate the combinations of the possibility matrix entries.
  • the apparatus/device is configured to determine the possible matrix entry combinations which comprise all of the determined stroke groups. In this case, the apparatus determines that the matrix entries ⁇ ⁇ , M 2,2 , M 3,4 represents the most likely combination of known characters so the these characters (' i ⁇ M- .') are provided as output to the user.
  • the method may work for other written languages, for example, languages which use alphabetic characters such as English or Greek.
  • the method may be used to recognise words or word components which have been written to overlap each other.
  • Figure 7 illustrates the calculations performed by the apparatus/device shown in figure 5a as successive strokes corresponding to Roman alphabetic characters are entered into the input entry region.
  • the user is writing the phrase ⁇ love Nokia' which is made up of three words, each word comprising one or more alphabetic characters.
  • the first word T of the phrase has been entered and the ⁇ m)Vr stroke (corresponding to the letter V) shown in figure 7 represents the last stroke corresponding to the second word component, ⁇ '.
  • the handwriting is overlapped as when the user completes one line of text, they continue to write the next line of text in the same position as the previous line.
  • the device In response to the entry of the ⁇ m)Vr stroke, the device is configured to determine whether the (m)Vr stroke combines with the strokes of the previous stroke group to form an updated stroke group or whether the further strokes forms a new stroke group.
  • the pre-segmentation phase only the new added stroke is processed. The pre- segmentation results of other strokes are untouched. Thus there is only one updated or new generated pre-segmented group each time. In this case, the ⁇ m)Vr is determined to combine with the previously determined stroke group to form an updated stroke group ⁇ '.
  • the device/apparatus recalculates stroke group combinations comprising the updated stroke group. These combinations represent the final column of a matrix giving the stroke group combinations of all of the entered stroke groups.
  • the stroke group combinations which do not comprise the new or updated stroke group e.g. ⁇ ⁇ ) are left unchanged. This may provide significant processing reductions.
  • the stroke group combinations are shown in a non-overlapped configuration. That is, in figure 7, the successive stroke groups making up the combination are shown side by side.
  • the apparatus/device is configured to determine the possible matrix entry combinations which comprise all of the determined stroke groups.
  • the output could correspond to the matrix entry M 1 2 , or to the matrix entry ⁇ ⁇ followed by the matrix entry M 2 ,2-
  • the probability of a combination scheme with n matrix entry words or word components can be expressed as a product of three items:
  • the first item in the expression is the probability of the combination scheme with the first n-1 stroke groups, which has already been calculated and stored in the system.
  • the second part is the probability of the last stroke group being one isolated word, which can be checked from the possibility matrix.
  • the third part is the possibility of the identified stroke group following the previous stroke groups (which can be calculated, for example, using language modelling). As noted previously, other example embodiments may calculate the sum of the logarithms of each term to provide an indication of the probability of a combination scheme with n matrix entry words or word components.
  • the character string 'Nov' is provided as output.
  • the provided output is provided directly into the text entry field 516 which the user is entering text into. It will be appreciated that the provided output may be updated as further strokes are input. It will be appreciated that other example embodiment may be configured to calculate the sum of the logarithms of each term. This may provide a faster calculation.
  • the process is repeated as shown in figure 7.
  • the device In response to the entry of the (m+ 1)Vr ⁇ stroke, the device is configured to determine whether the (m+ 1)Vr ⁇ stroke combines with the strokes of the previously determined stroke group to form an updated stroke group or whether the further strokes forms a new stroke group. In this case, the stroke is determined not to combine with the previous stroke group to form an updated stroke group, but to form a new stroke group.
  • the device/apparatus recalculates the stroke group combinations comprising the new stroke group.
  • the stroke group combinations which do not comprise the new or updated stroke group are left unchanged.
  • the apparatus/device is configured to determine the possible matrix entry combinations which comprise all of the determined stroke groups.
  • the possible combinations relating to the previously determined stroke groups are unchanged. Only combinations comprising the new stroke group are recalculated (736:m+1 ).
  • the output could correspond to the matrix entry M 3,3 ; to the matrix entry followed by the matrix entry M 2,3 ; to the matrix entry M 1 2 followed by the matrix entry M 3,3 ; or to the matrix entry ⁇ ⁇ followed by the matrix entry M 2,2 followed by the matrix entry M 3,3 .
  • the matrix entry ⁇ ⁇ and the matrix entry M 2,3 correspond to known words so the these words ( ⁇ love') are provided as output to the user.
  • the probability of T following 'love' may be high (the third term in the above equation) because a verb (e.g. 'love') would be expected to follow a pronoun (e.g. T).
  • the apparatus may be configured to determine a lower value for the third term in the above equation if the pronoun were followed by a noun (e.g. ⁇ log').
  • N-gram language model such as a bigram or trigram language model.
  • the language model may take into account the start and end of a sentence.
  • a bigram model might take into account the probability that the first word is the start of the sentence and that the last word is the end of the sentence. Without these beginning-of-sentence and end-of-sentence markers, the probability of an ungrammatical sequence such as "/ love my" would always be higher than that of the longer, but grammatically correct, sentence "I love my phone”.
  • the recognition process comprises several stages, these stages need not all be executed in response to each entered stroke. That is, other example embodiments may carry out the recognition process in several intervals (each interval corresponding to entry of a single stroke). This may further reduce the processing power required whilst providing output characters in real time. Since the processing of one new stroke may take some time, there may be several strokes or even several pre-segmented groups waiting for recognition after the processing of one stroke is finished. However, since the pre-segmented groups usually have multiple strokes, the processing of each stroke may be spread over multiple stroke inputs without causing a significant or perceptible delay to the user.
  • Figure 6a shows a series of calculations performed by another example embodiment configured to perform the recognition process over two intervals.
  • the user is entering the same word as that entered using the example embodiment of figures 7 - ⁇ love Nokia'.
  • the apparatus/device determines whether the new stroke forms an updated stroke group in combination with the previous stroke group or a new stroke group (pre-segmentation); and whether the new or updated stroke group combines with the previously determined stroke groups to provide recognisable words (fine segmentation).
  • pre-segmentation the last stroke corresponding to the second word component
  • fine segmentation the last stroke corresponding to the second word component
  • the device in response to the entry of the mth stroke, is configured to determine whether the mth stroke combines with the strokes of the previous stroke group to form an updated stroke group or whether the further strokes forms a new stroke group.
  • the mth stroke is determined to form part of the previously determined stroke group (833:m).
  • the device/apparatus recalculates the stroke group combinations comprising the new or updated stroke group (835:m). That is, the device/apparatus recalculates the stroke group combinations in the possibility matrix comprising the updated stroke group.
  • the stroke group combinations which do not comprise the new or updated stroke group are left unchanged.
  • the apparatus/device when the possibility matrix has been updated, the apparatus/device is not configured to determine the possible matrix entry combinations which comprise all of the determined stroke groups. Therefore the output text remains as it was for the (m- 1)Vr stroke.
  • the process is continued as shown in figure 8a.
  • the apparatus/device determines that the ⁇ m+ 1)Vr ⁇ stroke forms a new stroke group 834:m+1 ), the possibility matrix is not updated to reflect the entry of the ⁇ m+ 1)Vr ⁇ stroke.
  • the apparatus/device is configured to determine the possible matrix entry combinations which comprise all of the determined stroke groups based on the matrix determined in the previous interval (in response to the inputting of the mth stroke).
  • the output could correspond to the matrix entry M 1 i2 ; or to the matrix entry followed by the matrix entry M 2,2 -
  • the alphabetic characters corresponding to the matrix entry ⁇ 1 2 ( ⁇ ') are provided as output to the user.
  • the steps performed for the mth stroke are repeated as shown in figure 8a.
  • the device is configured to determine whether the (m+2)th stroke combines with the stroke of the previous stroke group (determined in the (m+ 7)th interval) to form an updated stroke group or whether the further strokes forms a new stroke group. In this case, the stroke is determined to form a new stroke group.
  • the device/apparatus recalculates the stroke group combinations comprising the stroke group comprising the (m+ 1)Vr ⁇ stroke, rather than the stroke group combinations comprising the (m+2)Vr ⁇ stroke.
  • the stroke group combinations which do not comprise the new or updated stroke group are left unchanged.
  • the updated stroke group was not determined when the possibility matrix was last determined (in response to the (m)Vr stroke)
  • the a new column for the updated stroke group is provided (to take into account the (m+ 1)Vr ⁇ stroke).
  • This new row represents the possible combinations of stroke groups which comprise the new stroke group.
  • the process does not continue to calculate the combinations of the possibility matrix entries.
  • the apparatus In response to the (m+3)Vr ⁇ stroke, the apparatus is configured to determine whether the stroke forms a new stroke group or combines with the last stroke group to form an updated stroke group. In this case, the (m+3)Vr ⁇ stroke (corresponding to the character ' ⁇ ') forms an updated stroke group with the last stroke group.
  • the apparatus/device is also configured to determine the possible matrix entry combinations which comprise all of the determined matrix entries.
  • the output could correspond to the matrix entry M 1 3 ; to the matrix entry followed by the matrix entry M 2,3 ; to the matrix entry M 1 2 followed by the matrix entry M 3,3 ; or to the matrix entry ⁇ ⁇ followed by the matrix entry M 2,2 followed by the matrix entry M 3 3 .
  • the apparatus determines that the matrix entries ⁇ ⁇ and M 2,3 represents the most likely combination of known words so the these words ( ⁇ love') are provided as output to the user.
  • the updated stroke group comprising to the word component 'No' will begin to be processed in response to the (m+4)Vr ⁇ stroke.
  • the device/apparatus when the user has not entered a stroke for a predetermined threshold period of time, the device/apparatus is configured to complete the processing of any strokes which have not yet been fully processed. This is shown in figure 8b.
  • the device/apparatus When the predetermined threshold of time is exceeded the device/apparatus is configured to recalculate the group combinations comprising the updated stroke group.
  • the stroke group combinations which do not comprise the new or updated stroke group are left unchanged.
  • the last stroke forms part of an updated stroke group, so the final column of the possibility matrix is updated to reflect the updated stroke group.
  • This updated row represents the possible combinations of stroke groups which comprise the updated stroke group.
  • the process continues to calculate the combinations of the possibility matrix entries.
  • the apparatus/device is configured to determine the possible matrix entry combinations which comprise all of the determined stroke groups. In this case, the apparatus determines that the matrix entries ⁇ ⁇ , M 2,3 , M 4,5 represents the most likely combination of known characters so the these characters ( ⁇ love Nokia') are provided as output to the user.
  • Figure 9a shows that an example embodiment of an apparatus in communication with a remote server.
  • Figure 9b shows that an example embodiment of an apparatus in communication with a "cloud" for cloud computing.
  • apparatus 901 (which may be apparatus 101 , 201 or 301 is in communication with a display 904).
  • the apparatus 901 and display 904 may form part of the same apparatus/device, although they may be separate as shown in the figures.
  • the apparatus 901 is also in communication with a remote computing element. Such communication may be via a communications unit, for example.
  • Figure 9a shows the remote computing element to be a remote server 995, with which the apparatus may be in wired or wireless communication (e.g.
  • the apparatus 901 is in communication with a remote cloud 996 (which may, for example, by the Internet, or a system of remote computers configured for cloud computing). It may be that the functions associated with the user interface elements are stored at the remote computing element 995, 996) and accessed by the apparatus 901 for display 904. The determining and/or providing may be performed at the remote computing element 995, 996. The apparatus 901 may actually form part of the remote sever 995 or remote cloud 996.
  • Figure 10 illustrates the process flow according to an example embodiment of the present disclosure.
  • the process comprises based on receipt of a further inputted stroke, determining (1081 ) whether the further stroke combines with one or more previously inputted strokes of a previously determined stroke group to form an updated stroke group, or forms a new stroke group, wherein each stroke group comprises one or more strokes and corresponds to a radical; and, based on the determination, providing (1082) for output of one or more graphical characters comprising radicals corresponding to the determined new stroke group or updated stoke group.
  • Figure 1 1 illustrates the process flow according to an example embodiment of the present disclosure.
  • the process comprises based on receipt of a further inputted stroke, determining (1 181 ) whether the further stroke combines with one or more previously inputted strokes of a previously determined stroke group to form an updated stroke group, or forms a new stroke group, wherein each stroke group comprises one or more strokes and corresponds to a word or word component; and, based on the determination, providing (1 182) for output of one or more words comprising words or word components corresponding to the determined new stroke group or updated stoke group.
  • Figure 12 illustrates schematically a computer/processor readable medium 1200 providing a computer program according to one example embodiment.
  • the computer/processor readable medium 1200 is a disc such as a Digital Versatile Disc (DVD) or a Compact Disc (CD).
  • the computer/processor readable medium 1200 may be any medium that has been programmed in such a way as to carry out an inventive function.
  • the computer/processor readable medium 1200 may be a removable memory device such as a memory stick or memory card (e.g. SD, mini SD or micro SD).
  • the computer program may comprise computer code configured to perform, control or enable one or more of the method steps 881 , 882 of Figure 8.
  • the computer program may be stored on the storage medium of the scanning/initiating device, the storage medium of the advertising device or the storage media of both devices.
  • any mentioned apparatus/device and/or other features of particular mentioned apparatus/device may be provided by apparatus arranged such that they become configured to carry out the desired operations only when enabled, e.g. switched on, or the like. In such cases, they may not necessarily have the appropriate software loaded into the active memory in the non-enabled (e.g. switched off state) and only load the appropriate software in the enabled (e.g. on state).
  • the apparatus may comprise hardware circuitry and/or firmware.
  • the apparatus may comprise software loaded onto memory.
  • Such software/computer programs may be recorded on the same memory/processor/functional units and/or on one or more memories/processors/functional units.
  • a particular mentioned apparatus/device may be preprogrammed with the appropriate software to carry out desired operations, and wherein the appropriate software can be enabled for use by a user downloading a "key", for example, to unlock/enable the software and its associated functionality.
  • Advantages associated with such example embodiments can include a reduced requirement to download data when further functionality is required for a device, and this can be useful in examples where a device is perceived to have sufficient capacity to store such preprogrammed software for functionality that may not be enabled by a user.
  • any mentioned apparatus/circuitry/elements/processor may have other functions in addition to the mentioned functions, and that these functions may be performed by the same apparatus/circuitry/elements/processor.
  • One or more disclosed aspects may encompass the electronic distribution of associated computer programs and computer programs (which may be source/transport encoded) recorded on an appropriate carrier (e.g. memory, signal).
  • an appropriate carrier e.g. memory, signal.
  • any "computer” described herein can comprise a collection of one or more individual processors/processing elements that may or may not be located on the same circuit board, or the same region/position of a circuit board or even the same device.
  • one or more of any mentioned processors may be distributed over a plurality of devices. The same or different processor/processing elements may perform one or more functions described herein.
  • signal may refer to one or more signals transmitted as a series of transmitted and/or received signals.
  • the series of signals may comprise one, two, three, four or even more individual signal components or distinct signals to make up said signalling. Some or all of these individual signals may be transmitted/received simultaneously, in sequence, and/or such that they temporally overlap one another.
  • any mentioned computer and/or processor and memory may comprise a computer processor, Application Specific Integrated Circuit (ASIC), Field-Programmable Gate Array (FPGA), and/or other hardware components that have been programmed in such a way to carry out the inventive function.
  • ASIC Application Specific Integrated Circuit
  • FPGA Field-Programmable Gate Array
  • the applicant hereby discloses in isolation each individual feature described herein and any combination of two or more such features, to the extent that such features or combinations are capable of being carried out based on the present specification as a whole, in the light of the common general knowledge of a person skilled in the art, irrespective of whether such features or combinations of features solve any problems disclosed herein, and without limitation to the scope of the claims.
  • the applicant indicates that the disclosed example aspects/embodiments may consist of any such individual feature or combination of features.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Character Discrimination (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

An apparatus comprising: at least one processor; and at least one memory including computer program code, the at least one memory and the computer program code configured, with the at least one processor, to cause the apparatus to perform at least the following: based on receipt of a further inputted stroke, determine whether the further stroke combines with one or more previously inputted strokes of a previously determined stroke group to form an updated stroke group, or forms a new stroke group wherein each stroke group comprises one or more strokes and corresponds to a radical; and based on the determination, provide for output of one or more graphical characters comprising radicals corresponding to the determined new stroke group or updated stoke group.

Description

AN APPARATUS FOR TEXT ENTRY AND ASSOCIATED
METHODS
Technical Field
The present disclosure relates to the field of text entry, associated methods and apparatus. Certain disclosed example aspects/embodiments relate to portable electronic devices, which may include so-called hand-portable electronic devices which may be hand-held in use (although they may be placed in a cradle in use). Such hand-portable electronic devices may include mobile telephones, so-called Personal Digital Assistants (PDAs) and tablet PCs.
Portable electronic devices/apparatus according to one or more disclosed example aspects/embodiments may provide one or more audio/text/video communication functions (e.g. tele-communication, video-communication, and/or text transmission, Short Message Service (SMS)/ Multimedia Message Service (MMS)/emailing functions, interactive/non-interactive viewing functions (e.g. web-browsing, navigation, TV/program viewing functions), music recording/playing functions (e.g. MP3 or other format and/or (FM/AM) radio broadcast recording/playing), downloading/sending of data functions, image capture function (e.g. using a (e.g. in-built) digital camera), and gaming functions.
Background
It is common for electronic devices to provide a user interface (e.g. a graphical user interface). A user interface may enable a user to interact with an electronic device, for example, to open applications using application icons, enter commands, to select menu items from a menu, or to enter characters using a virtual keypad. To enter text strings, the user may be provided with a physical or virtual keyboard. The listing or discussion of a prior-published document or any background in this specification should not necessarily be taken as an acknowledgement that the document or background is part of the state of the art or is common general knowledge. One or more example aspects/embodiments of the present disclosure may or may not address one or more of the background issues. Summary
According to a first aspect, there is provided an apparatus comprising:
at least one processor; and
at least one memory including computer program code,
the at least one memory and the computer program code configured, with the at least one processor, to cause the apparatus to perform at least the following:
based on receipt of a further inputted stroke, determine whether the further stroke combines with one or more previously inputted strokes of a previously determined stroke group to form an updated stroke group, or
forms a new stroke group
wherein each stroke group comprises one or more strokes and corresponds to a radical; and
based on the determination, provide for output of one or more graphical characters comprising radicals corresponding to the determined new stroke group or updated stoke group.
A radical may be a whole or a part of a graphical character. For example, the character consists of the radical (i.e. the character itself); whereas the character ' (¾' comprises the radicals ' Π ' and Έ'. A radical may relate to a semantic or phonetic element of a character, or even an element which is recognisable by the apparatus. A radical may be a group of one or more strokes which do not overlap any other strokes (e.g. each stroke of a given radical may overlap with another stroke of the same radical but may not interact with any other strokes).
The graphical characters may be standardised characters, for example, textual characters in a particular font (e.g. Unicode font).
A stroke may comprise a continuous input gesture. For example, a stroke may be input using a touch screen by touching the screen with a finger and stylus, providing a continuous input gesture, and then ceasing contact with the screen. It will be appreciated that different example embodiments may delimit strokes using other parameters (e.g. velocity of input, direction changes). The apparatus may be configured to based on the determined new or updated stroke group, determine whether the new or updated stroke group
combines with one or more previously inputted stroke groups to form an updated graphical character; or
forms a new graphical character.
The apparatus may be configured to determine a possibility matrix comprising all of the possible permutations of the determined stroke groups. The possibility matrix may be updated, based on a said determined new stroke group by adding entries to the matrix representing combinations comprising the determined new stroke group.
The possibility matrix may be updated, based on a said determined updated stroke group, by updating entries to the matrix representing combinations comprising the determined updated stroke group.
The combinations of strokes to form stroke groups may be based on one or more of: the spatial features of the strokes; and statistical classification methods. Spatial features may include an endpoint of the current stroke, a geometric centre of the current stroke, a beginning point of the next stroke, a geometric centre of the next stroke, a smallest rectangle containing the current stroke, a smallest rectangle containing the next stroke and a smallest rectangle containing an immediately prior stroke. Statistical classifications methods may include using a support vector machine or an artificial neural network (or other learning model).
Providing for output of one or more characters may be based on a probability determined for one or more of:
the previously determined stroke group combinations forming a graphical character string;
the matrix elements comprising the further inputted stroke group forming an isolated graphical character; and
an isolated character comprising the further inputted stroke group forming a character string with other determined characters.
A probability determined for a character corresponding to the last combination of stroke groups given the other determined characters may be based on a language model. At least a portion of the determinations may be performed in response to at least one of: receiving a stroke after the further inputted stroke; and.
a pre-determined time period threshold since the further inputted stroke being exceeded.
The apparatus may be an electronic device, a portable electronic device, a laptop computer, a mobile phone, a Smartphone, a tablet computer, a personal digital assistant, a digital camera, a watch, a server, a non-portable electronic device, a desktop computer, a monitor, a server, a wand, a pointing stick, a touchpad, a touch-screen, a mouse, a joystick or a module/circuitry for one or more of the same.
According to a further aspect, there is provided a method, the method comprising,
based on receipt of a further inputted stroke, determining whether the further stroke
combines with one or more previously inputted strokes of a previously determined stroke group to form an updated stroke group, or
forms a new stroke group
wherein each stroke group comprises one or more strokes and corresponds to a radical; and
based on the determination, providing for output of one or more graphical characters comprising radicals corresponding to the determined new stroke group or updated stoke group. According to a further aspect, there is provided a computer program comprising computer program code, the computer program code being configured to perform at least the following:
based on receipt of a further inputted stroke, determine whether the further stroke combines with one or more previously inputted strokes of a previously determined stroke group to form an updated stroke group, or
forms a new stroke group
wherein each stroke group comprises one or more strokes and corresponds to a radical; and
based on the determination, provide for output of one or more graphical characters comprising radicals corresponding to the determined new stroke group or updated stoke group. According to a further aspect, there is provided a apparatus, the apparatus comprising, a means for determining configured to determine, based on receipt of a further inputted stroke, whether the further stroke
combines with one or more previously inputted strokes of a previously determined stroke group to form an updated stroke group, or
forms a new stroke group
wherein each stroke group comprises one or more strokes and corresponds to a radical; and
a means for providing configured to provide, based on the determination, for output of one or more graphical characters comprising radicals corresponding to the determined new stroke group or updated stoke group.
According to a further aspect, there is provided a apparatus, the apparatus comprising, a determiner configured to determine, based on receipt of a further inputted stroke, whether the further stroke
combines with one or more previously inputted strokes of a previously determined stroke group to form an updated stroke group, or
forms a new stroke group
wherein each stroke group comprises one or more strokes and corresponds to a radical; and
a provider configured to provide, based on the determination, for output of one or more graphical characters comprising radicals corresponding to the determined new stroke group or updated stoke group. According to a further aspect, there is provided an apparatus, the apparatus comprising, at least one processor; and
at least one memory including computer program code,
the at least one memory and the computer program code configured, with the at least one processor, to cause the apparatus to perform at least the following:
based on receipt of a further inputted stroke, determine whether the further stroke combines with one or more previously inputted strokes of a previously determined stroke group to form an updated stroke group, or
forms a new stroke group
wherein each stroke group comprises one or more strokes and corresponds to a word or word component; and based on the determination, provide for output of one or more words comprising the word or word component corresponding to the determined new stroke group or updated stoke group. A word or word component may comprise one or more characters. A character (e.g. of a word or word component) may comprise, for example, one or more of: an alphabetic character, a numeric character, a punctuation mark, an emoticon, and a diacritical mark.
The characters may be standardised characters, for example, textual characters in a particular font (e.g. Unicode font).
The apparatus may be configured to
based on the determined new or updated stroke group, determine whether the new or updated stroke group
combines with one or more previously inputted stroke groups to form an updated word or word component; or
forms a new word or word component.
Providing for output of one or more characters may be based on a probability determined for one or more of:
the previously determined stroke group combinations forming a word string comprising one or more words;
the matrix elements comprising the further inputted stroke group forming an isolated word; and
an isolated character comprising the further inputted stroke group forming a word string with other determined words.
According to a further aspect, there is provided a method, the method comprising,
based on receipt of a further inputted stroke, determining whether the further stroke
combines with one or more previously inputted strokes of a previously determined stroke group to form an updated stroke group, or
forms a new stroke group
wherein each stroke group comprises one or more strokes and corresponds to a word or word component; and based on the determination, providing for output of one or more words comprising the word or word component corresponding to the determined new stroke group or updated stoke group. According to a further aspect, there is provided a computer program comprising computer program code, the computer program code being configured to perform at least the following:
based on receipt of a further inputted stroke, determine whether the further stroke combines with one or more previously inputted strokes of a previously determined stroke group to form an updated stroke group, or
forms a new stroke group
wherein each stroke group comprises one or more strokes and corresponds to a word or word component; and
based on the determination, provide for output of one or more words comprising the word or word component corresponding to the determined new stroke group or updated stoke group.
The steps of any method disclosed herein do not have to be performed in the exact order disclosed, unless explicitly stated or understood by the skilled person.
Corresponding computer programs (which may or may not be recorded on a carrier, such as a CD or other non-transitory medium) for implementing one or more of the methods disclosed herein are also within the present disclosure and encompassed by one or more of the described example embodiments.
The present disclosure includes one or more corresponding aspects, example embodiments or features in isolation or in various combinations whether or not specifically stated (including claimed) in that combination or in isolation. Corresponding means and corresponding function units (e.g. a determiner, a provider) for performing one or more of the discussed functions are also within the present disclosure.
The above summary is intended to be merely exemplary and non-limiting.
Brief Description of the Figures
A description is now given, by way of example only, with reference to the accompanying drawings, in which:- Figure 1 depicts an example apparatus embodiment according to the present disclosure comprising a number of electronic components, including memory and a processor; Figure 2 depicts an example apparatus embodiment according to the present disclosure comprising a number of electronic components, including memory, a processor and a communication unit;
Figure 3 depicts an example apparatus embodiment according to the present disclosure comprising a number of electronic components, including memory, a processor and a communication unit;
Figures 4a-4d illustrate a first embodiment comprising a portable electronic device;
Figures 5a-5b illustrate a further embodiment comprising a portable electronic device;
Figures 6a-6b illustrates calculations performed by a further embodiment;
Figures 7 illustrate calculations performed for alphabetic characters;
Figures 8a-8b illustrates calculations performed for alphabetic characters;
Figures 9a-9b illustrate an example apparatus according to the present disclosure in communication with a remote server/cloud;
Figure 10 shows the main steps of a method of recognising graphical characters;
Figure 1 1 shows the main steps of a method of recognising words; and
Figure 12 a computer-readable medium comprising a computer program. Description of Specific Example Embodiments
It is common for an electronic device to have a user interface (which may or may not be graphically based) to allow a user to interact with the device to enter and/or interact with information. For example, the user may use a keyboard user interface to enter text, or icons to open applications.
For example, a user interface may provide a keyboard to facilitate character entry. However, particularly where a language (such as Chinese) has a large number of available characters, it may not be possible to represent each of the available character on the keyboard.
Other devices may facilitate handwriting recognition. However significant processing power may be required to recognise strokes provided during handwriting recognition. This is particularly important for portable electronic devices with limited processing power and/or battery life. The present disclosure relates to enabling handwriting recognition which, based on receipt of a further inputted stroke (e.g. using a touch interface or a peripheral device, such as a mouse), determines whether the further stroke combines with one or more previously inputted strokes of a previously determined stroke group to form an updated stroke group, or forms a new stroke group, wherein each stroke group comprises one or more strokes and corresponds to a radical; and based on the determination, provides for output of one or more graphical characters comprising radicals corresponding to the determined new stroke group or updated stoke group. Other example embodiments depicted in the figures have been provided with reference numerals that correspond to similar features of earlier described example embodiments. For example, feature number 1 can also correspond to numbers 101 , 201 , 301 etc. These numbered features may appear in the figures but may not have been directly referred to within the description of these particular example embodiments. These have still been provided in the figures to aid understanding of the further example embodiments, particularly in relation to the features of similar earlier described example embodiments.
Figure 1 shows an apparatus 101 comprising memory 145, a processor 144, input I and output O. In this example embodiment only one processor and one memory are shown but it will be appreciated that other example embodiments may utilise more than one processor and/or more than one memory (e.g. same or different processor/memory types). In this example embodiment the apparatus 101 is an Application Specific Integrated Circuit (ASIC) for a portable electronic device. In other example embodiments the apparatus 101 can be a module for such a device, or may be the device itself, wherein the processor 144 is a general purpose CPU of the device and the memory 145 is general purpose memory comprised by the device.
The input I allows for receipt of signalling to the apparatus 101 from further components (e.g. from a receiver), such as components of a portable electronic device (like a touch- sensitive display) or the like. The output O allows for onward provision of signalling from within the apparatus 101 to further components. In this example embodiment the input I and output O are part of a connection bus that allows for connection of the apparatus 101 to further components (e.g. to a transmitter or a display). The processor 144 is a general purpose processor dedicated to executing/processing information received via the input I in accordance with instructions stored in the form of computer program code on the memory 145. The output signalling generated by such operations from the processor 144 is provided onwards to further components via the output O.
The memory 145 (not necessarily a single memory unit) is a computer readable medium (solid state memory in this example, but may be other types of memory such as a hard drive, ROM, RAM, Flash or the like) that stores computer program code. This computer program code stores instructions that are executable by the processor 144, when the program code is run on the processor 144. The internal connections between the memory 145 and the processor 144 can be understood to provide, in one or more example embodiments, an active coupling between the processor 144 and the memory 145 to allow the processor 144 to access the computer program code stored on the memory 145.
In this example the input I, output O, processor 144 and memory 145 are all electrically connected to one another internally to allow for electrical communication between the respective components I, O, 144, 145. In this example the components are all located proximate to one another so as to be formed together as an ASIC, in other words, so as to be integrated together as a single chip/circuit that can be installed into an electronic device. In other examples one or more or all of the components may be located separately from one another. Figure 2 depicts an apparatus 201 of a further example embodiment, such as a mobile phone. In other example embodiments, the apparatus 201 may comprise a module for a mobile phone (or PDA or audio/video player), and may just comprise a suitably configured memory 245 and processor 244. The apparatus in certain example embodiments could be a portable electronic device, a laptop computer, a mobile phone, a Smartphone, a tablet computer, a personal digital assistant, a digital camera, a watch, a server, a non-portable electronic device, a desktop computer, a monitor, a server, a wand, a pointing stick, a touchpad, a touch-screen, a mouse, a joystick or a module/circuitry for one or more of the same. The example embodiment of figure 2, in this case, comprises a display device 204 such as, for example, a Liquid Crystal Display (LCD) or touch-screen user interface. The apparatus 201 of figure 2 is configured such that it may receive, include, and/or otherwise access data. For example, this example embodiment 201 comprises a communications unit 203, such as a receiver, transmitter, and/or transceiver, in communication with an antenna 202 for connecting to a wireless network and/or a port (not shown) for accepting a physical connection to a network, such that data may be received via one or more types of networks. This example embodiment comprises a memory 245 that stores data, possibly after being received via antenna 202 or port or after being generated at the user interface 205. The processor 244 may receive data from the user interface 205, from the memory 245, or from the communication unit 203. It will be appreciated that, in certain example embodiments, the display device 204 may incorporate the user interface 205. Regardless of the origin of the data, these data may be outputted to a user of apparatus 201 via the display device 204, and/or any other output devices provided with apparatus. The processor 244 may also store the data for later use in the memory 245. The memory 245 may store computer program code and/or applications which may be used to instruct/enable the processor 244 to perform functions (e.g. read, write, delete, edit or process data).
Figure 3 depicts a further example embodiment of an electronic device 301 , such as a tablet personal computer, a portable electronic device, a portable telecommunications device, a server or a module for such a device, the device comprising the apparatus 101 of figure 1 . The apparatus 101 can be provided as a module for device 301 , or even as a processor/memory for the device 301 or a processor/memory for a module for such a device 301 . The device 301 comprises a processor 344 and a storage medium 345, which are connected (e.g. electrically and/or wirelessly) by a data bus 380. This data bus 380 can provide an active coupling between the processor 344 and the storage medium 345 to allow the processor 344 to access the computer program code. It will be appreciated that the components (e.g. memory, processor) of the device/apparatus may be linked via cloud computing architecture. For example, the storage device may be a remote server accessed via the internet by the processor. The apparatus 101 in figure 3 is connected (e.g. electrically and/or wirelessly) to an input/output interface 370 that receives the output from the apparatus 101 and transmits this to the device 301 via data bus 380. Interface 370 can be connected via the data bus 380 to a display 304 (touch-sensitive or otherwise) that provides information from the apparatus 101 to a user. Display 304 can be part of the device 301 or can be separate. The device 301 also comprises a processor 344 configured for general control of the apparatus 101 as well as the device 301 by providing signalling to, and receiving signalling from, other device components to manage their operation. The storage medium 345 is configured to store computer code configured to perform, control or enable the operation of the apparatus 101. The storage medium 345 may be configured to store settings for the other device components. The processor 344 may access the storage medium 345 to retrieve the component settings in order to manage the operation of the other device components. The storage medium 345 may be a temporary storage medium such as a volatile random access memory. The storage medium 345 may also be a permanent storage medium such as a hard disk drive, a flash memory, a remote server (such as cloud storage) or a non-volatile random access memory. The storage medium 345 could be composed of different combinations of the same or different memory types.
Figures 4a - 4d depicts an example embodiment of the apparatus depicted in figure 2 comprising a portable electronic communications device 401 , e.g. such as a mobile phone, with a user interface comprising a touch-screen user interface 405, 404, a memory (not shown), a processor (not shown) and an antenna (not shown) for transmitting and/or receiving data (e.g. emails, textual messages, phone calls, information corresponding to web pages). In this case, the user is using a messaging application to send and receive messages from his friend. When the messaging application is running, the device is configured to display previously sent messages 41 1 , received messages 412 and messages which are being composed 413. In this case, the user is composing a message by writing or drawing characters in a character entry region 414 using his finger (or other stylus). The device is configured to recognise the hand written characters and enter standardised characters (e.g. in a standard font such as Unicode font) into the text entry field.
Figure 4a shows a series of strokes 421 , 422a entered into the recognition region 414 of the touch screen user interface. These strokes comprise a recognised stroke group 421 corresponding to the radical, 'i (woman) and a further stroke 422a which has just been entered by the user. In this case, the apparatus/device is configured to determine, based on receipt of a further inputted stroke 422a, whether the further stroke 422a combines with one or more previously inputted strokes of a previously determined stroke group 421 to form an updated stroke group, or forms a new stroke group wherein each stroke group comprises one or more strokes and corresponds to a radical. It will be appreciated that this determination may be based on, for example, whether the combination of the further inputted stroke and the previously determined stroke group forms at least part of a recognisable radical.
In this case, the new stroke 422a does not combine with the previously inputted strokes of the 'i stroke group 421 to form an updated stroke group, as there are no radicals which comprise the strokes of the previously entered stroke group 421 and the further inputted stroke 422a. Therefore, in this case, the new stroke forms 422a a new stroke group. In this case, the apparatus is configured to provide a limited list 415a of possible character matches for selection, each of the possible character matches comprising the radicals which have been recognised as comprising the entered stroke groups.
In this case, the character 'i is recognised as comprising the previously inputted stroke group, so this character is provided as a possible match. Because a large number of radicals may comprise the entered stroke of the newly formed stroke group, no possible matches are automatically selected.
The user continues to enter strokes, as shown in figure 4b. As with the previous stroke, in this case, the apparatus/device is configured to determine whether the newly entered stroke combines with the stroke of the previous stroke group to form an updated stroke group. Unlike the previous case, the stroke of the previous stroke group and the new stroke do combine to form an updated stroke group as there are a number of radicals which comprise these two strokes, including the '7' and the '7' radicals. In this case, the apparatus/device is configured to, based on the determination, provide for output of one or more graphical characters comprising radicals corresponding to the determined new stroke group or updated stoke group. In this case, the device is configured to provide possible characters 415c and character combinations 415b, 415d comprising the determined stroke groups including the new stroke group or the updated stroke group.
As before, the character ' ' recognised as comprising the previously inputted stroke group is provided as a possible match for the previously inputted stroke group. In this case, the second stroke group is recognised as forming at least part of the radicals '7' or '7'. These radicals may form part of a separate character or combine with the previously entered radical to form a composite character. In this case the radicals 'i and '7' do not combine to form a composite character but the radicals 'i and '7' can combine to form the composite character Therefore, in this case the device is configured to provide the possible matches for all of the entered strokes as ' 7' 415d, ' T' 415b and 415c. In this way, the apparatus/device provides for output of one or more graphical characters comprising radicals corresponding to the determined new stroke group or updated stoke group. In this case, the user continues to enter strokes, as shown in figure 4c. As with the previous stroke, in this case, the apparatus/device is configured to determine whether the newly entered stroke combines with the stroke of the previous stroke group to form an updated stroke group. Like the previous case, the strokes of the previous stroke group and the new stroke do combine to form an updated stroke group as the radical comprises these the two strokes of the previously determined stroke group and the further inputted stroke.
As before, the character 'i previously recognised as comprising the previously inputted stroke group is provided as a possible match for the previously inputted stroke group. In this case, the second stroke group is recognised as forming at least part of the radical i f These radicals may form part of a separate character or combine with the previously entered radical to form a composite character. In this case the radicals 'i and i f' can combine to form the character Therefore, in this case the device is configured to provide the possible matches for all of the entered strokes as ' 1' 415f and 415e. In this way, the apparatus/device provides for output of one or more graphical characters comprising radicals corresponding to the determined new stroke group or updated stoke group.
It will be appreciated that the possible matches may be assigned a probability based on, for example, a combination of one or more of the previously entered characters, the frequency of use, and the number of additional strokes present in the character as compared to the inputted strokes. For example, in this case, as the previously entered character in the compose message field is I' (very), the probability of the next character being (good) may be determined to be higher than the probability of the next character being 'iC (woman). The apparatus/device may be configured to display the candidate characters based on a determined probability.
When the user has selected the possible match 415f, the corresponding character 431 is entered into the compose message text field 413. This is shown in figure 4d. Figures 5a-5b shows a further example embodiment configured to recognise handwriting input. Figure 5a depicts the example embodiment of the apparatus depicted in figure 2 comprising a portable electronic communications device 501 , e.g. such as a mobile phone, with a user interface comprising a touch-screen user interface 505, 504, a memory (not shown), a processor (not shown) and an antenna (not shown) for transmitting and/or receiving data (e.g. emails, textual messages, phone calls, information corresponding to web pages).
In this case, the user is using an email application to compose a message to his friend. When the messaging application is running, the device is configured to display a sender field 514, a recipient field 515 a subject field 516 and a message field 517. In this case, the user is entering characters into the subject field 516 by writing or drawing characters in a character entry region 514 using his finger (or other stylus). The device is configured to recognise the hand written characters and enter standardised characters (e.g. in a standard font such as Unicode font) into the compose message field.
As with the previous embodiment, this embodiment is configured to, based on receipt of a further inputted stroke, determine whether the further stroke combines with one or more previously inputted strokes of a previously determined stroke group to form an updated stroke group, or forms a new stroke group wherein each stroke group comprises one or more strokes and corresponds to a radical; and based on the determination, provide for output of one or more graphical characters comprising radicals corresponding to the determined new stroke group or updated stoke group. In this case, the embodiment is configured to recognize a series of overlapping characters entered into a user input region of the user interface device. Recognition of overlapped handwritings can be considered as a searching process to find the best stroke combination scheme, whose corresponding character list is most frequently used in daily life based on the given strokes. Overlapped handwriting may include when a user writes, for example, successive words, word components, radicals or characters on top of each other. For example, if the portion of a user interface is limited in extent, when the user completes one line of text within the limited extent, the user may start again at the start of the line to enter a further line of text. These successive lines of text may overlap each other as they are entered in the same space within the limited user interface. In this case the recognition is divided into two phases, pre-segmentation and fine segmentation. Pre-segmentation is performed first, to assign each stroke to a stroke group, which can be a whole character or a part of a character. Usually the pre- segmentation is based on the spatial features of strokes and statistical classification methods. This stage is generally simple and fast.
Fine segmentation is performed after pre-segmentation, to find the best combination scheme for pre-segmented groups which have the highest probability by going through a combination scheme list with the help of a probability matrix. Each element of the probability matrix represents the probability of a set of pre-segmented groups to be one isolated character. Each matrix element M (/th, /th) represents the probability of a group set containing the pre-segmented groups from the /th to the /th. The value is usually calculated based on the similarities of the candidates given out by an isolated character handwriting recognition engine.
The probability of a possible output character not only depends on the probability of all the constituent stroke groups (e.g. relating to the correspondence between the entered strokes and the possible output character per se), but also, for example, the possibility of the output character given the character preceding and/or following it. The probability may be decided by a bigram language model. The calculation of the step is complex and may have a high associated computation cost.
Since strokes are added one by one, the recognition results relating to the possible combinations of stroke groups to form characters, and to combinations of characters for all the entered strokes should be determined. However, when a new stroke is entered, embodiments may only need to calculate the changes caused by the new entered strokes. The required processing power may therefore be smaller than recognising the whole stroke set again. It will be appreciated that by only calculating the new or updated elements, the scaling may be different than for recalculating the stoke combinations again. Therefore, the processing power savings may become more pronounced the as more strokes are being recognised.
Figure 5b illustrates the calculations performed by the apparatus/device shown in figure 5a as successive strokes are entered into the input entry region. In this case, the user is writing the word ' ^ M' (carnival) which is made up of three graphical characters. In this case, the first character of the word has been entered and the (m th stroke shown in figure 5b represents the last stroke corresponding to the second character, ' C. Because the character entry region 514 is limited in extent, the second written character ' C is written in the same position within the character entry region as the first written character '^-'. In this way, successive handwritten characters overlaps previously input handwritten characters.
In response to the entry of the {m)Vr stroke, the device is configured to determine whether the (m)Vr stroke combines with the strokes of the previous stroke group to form an updated stroke group or whether the further strokes forms a new stroke group. In the pre-segmentation phase, only the new added stroke is processed. The pre- segmentation results of other strokes are untouched. Thus there is only one updated or new generated pre-segmented group each time. In this case, the {m)Vr is determined to combine with the previously determined stroke group to form an updated stroke group. Based on this, the device/apparatus recalculates stroke group combinations comprising the updated stroke group. These combinations represent the final column of a matrix giving the stroke group combinations of all of the entered stroke groups. The stroke group combinations which do not comprise the new or updated stroke group (e.g. Μυ) are left unchanged. This may provide significant processing reductions.
When the possibility matrix M. j has been updated, the apparatus/device is configured to determine the possible matrix entry combinations which comprise all of the determined stroke groups. In this case, the output could correspond to the matrix entry M1 2, or to the matrix entry Μυ followed by the matrix entry M2,2-
The probability of a combination scheme with n matrix entry radicals can be expressed as a product of three items:
P(S Sn_t , Sn ) = P(S1 , . . . , Sn_t ) x P(Sn ) x P(Sn \ Sn_t ) The first item in the expression is the probability of the combination scheme with the first n-1 stroke groups, which has already been calculated and stored in the system. The second part is the probability of the last stroke group being one isolated character, which can be checked from the possibility matrix. The third part is the possibility of the identified stroke group following the previous stroke groups (which can be calculated, for example, using language modelling). For example, the third component of the probability for the character may be high given that the character ' f follows the character in the known word ' ^Μ & (carnival). Therefore, the character is provided as output. Unlike the previous case, the provided output is provided directly into the text entry field 51 6 which the user is entering text into. It will be appreciated that the provided output may be updated as further strokes are input. It will be appreciated that other example embodiments may be configured to calculate the sum of the logarithms of each term to provide an indication of the probability of a combination scheme with matrix entry
Figure imgf000020_0001
= loge[P(51 ,... , 5„_1) x P(5„) x P(5„ l 5„_1 )]
= loge [P(S1 , ... , Sn_t )] + log, [P(Sn )] + log, [P(Sn I Sn_t )]
As sums may be more quickly calculated than products, calculating may provide a quicker calculation.
In response to the (m+ 1)Vr\ stroke, the process is repeated as shown in figure 5b. In response to the entry of the (m+ 1)Vr\ stroke, the device is configured to determine whether the (m+ 1)Vr\ stroke combines with the strokes of the previously determined stroke group to form an updated stroke group or whether the further strokes forms a new stroke group. In this case, the stroke is determined not to combine with the previous stroke group to form an updated stroke group, but to form a new stroke group.
Based on this, the device/apparatus recalculates the stroke group combinations comprising the new stroke group. The stroke group combinations which do not comprise the new or updated stroke group are left unchanged. As there is a new stroke group, a new column (Mu=3 535:m+1 ) is added onto the possibility matrix. This newly calculated row (535:m+1 ) represents the possible combinations of stroke groups which comprise the newly added stroke group.
When the possibility matrix has been updated, the apparatus/device is configured to determine the possible matrix entry combinations which comprise all of the determined stroke groups. In this case, the possible combinations relating to the previously determined stroke groups are unchanged. Only combinations comprising the new stroke group are recalculated (536:m+1 ). In this case, the output could correspond to the matrix entry M3,3; to the matrix entry followed by the matrix entry M2,3; to the matrix entry M1 2 followed by the matrix entry M3 3; or to the matrix entry Μυ followed by the matrix entry M2,2 followed by the matrix entry M3,3. In this case, the matrix entry Μυ and the matrix entry M2,3 correspond to known characters so the these characters ('-π ') are provided as output to the user.
It will be appreciated that, in this case, the probability of '§ ' following may be lower than ' f following (the third term in the above equation). However, the probability of the ' § ' character corresponding to the entered strokes may be higher than for ' C because the '§ ' has a stroke which corresponds to the further inputted (m+ 1)Vr\ stroke whereas ' C does not (the second term in the above equation). In response to the (m+2)h stroke, the process is repeated as shown in figure 5b. In response to the entry of the (m+2)Vr\ stroke, the device is configured to determine whether the (m+2)Vr\ stroke combines with the strokes of the previous stroke group to form an updated stroke group or whether the further strokes forms a new stroke group. In this case, the stroke is determined to combine with the previous stroke group to form an updated stroke group(533:m+2).
Based on this, the device/apparatus recalculates the stroke group combinations comprising the new stroke group (535:m+2). The stroke group combinations which do not comprise the updated stroke group (533:m+2) are left unchanged. As there is no new stroke group the size of the matrix remains unchanged, although the final column (535:m+2) of the probability matrix is updated to reflect the updated stroke group. This updated row (535:m+2) represents the possible combinations of stroke groups which comprise the updated stroke group. When the possibility matrix has been updated, the apparatus/device is configured to determine the possible matrix entry combinations which comprise all of the determined stroke groups. As the size of the matrix has not changed the possible combinations of matrix entries remains unchanged. The previously determined combinations comprising the last stroke group (536:m+2) are updated to reflect the updated stroke group.
That is, the output could correspond to the matrix entry M3 3; to the matrix entry Μυ followed by the matrix entry M2,3; to the matrix entry M1 2 followed by the matrix entry M3,3; or to the matrix entry followed by the matrix entry M2,2 followed by the matrix entry M3 3. In contrast to the previous situation, when this stroke is included the apparatus determines that the matrix entries Μυ , M2,2 and M3 3 represents the most likely combination of known characters so the these characters ('-n CX') are provided as output to the user. The procedure continues as the user enters the further strokes of the last character until the desired word '^M' (carnival) is entered.
Because the recognition process comprises several stages, these stages need not all be executed in response to each entered stroke. That is, other example embodiments may carry out the recognition process in several intervals (each interval corresponding to entry of a single stroke). This may further reduce the processing power required whilst providing output characters in real time. Since the processing of one new stroke may take some time, there may be several strokes or even several pre-segmented groups waiting for recognition after the processing of one stroke is finished. However, since the pre-segmented groups usually have multiple strokes, the processing of each stroke may be spread over multiple stroke inputs without causing a significant or perceptible delay to the user.
Figure 6a shows a series of calculations performed by another example embodiment configured to perform the recognition process over two intervals. For comparison, the user is entering the same word as that entered using the embodiment of figures 5a and 5b - '-π-^Ο ' (carnival).
In this case, the same calculations are performed to provide the output characters, namely in response to receiving a new stroke, the apparatus/device determines whether the new stroke forms an updated stroke group in combination with the previous stroke group or a new stroke group (pre-segmentation); and whether the new or updated stroke group combines with the previously determined stroke groups to provide recognisable characters (fine segmentation). In this case, however, different stages of the calculation are performed for each successive stroke.
As in the example illustrated in figure 5b, the first character of the word has been entered and the mth stroke shown in figure 6a represents the last stroke corresponding to the second character, ' C.
At this stage, like the example embodiment of figure 5b, in response to the entry of the mth stroke, the device is configured to determine whether the mth stroke combines with the strokes of the previous stroke group to form an updated stroke group or whether the further strokes forms a new stroke group. In this case, the mth stroke is determined to form part of the previously determined stroke group (633:m).
Based on this, the device/apparatus recalculates the stroke group combinations comprising the new or updated stroke group (635:m). That is, the device/apparatus recalculates the stroke group combinations in the possibility matrix comprising the updated stroke group. The stroke group combinations which do not comprise the new or updated stroke group are left unchanged. As there is no new stroke group the size of the matrix remains unchanged, although the final column (635:m) is updated to reflect the updated stroke group. This updated row represents the possible combinations of stroke groups which comprise the updated stroke group. Leaving stroke group combinations which do not comprise the new or updated stroke group unchanged may provide significant processing reductions. In contrast to the previous example embodiment, when the possibility matrix has been updated, the apparatus/device is not configured to determine the possible matrix entry combinations which comprise all of the determined stroke groups. Therefore the output text remains as it was for the (m- 1)Vr stroke. In response to the {m+ 1)Vr\ stroke, the process is continued as shown in figure 6a. In this case, although the apparatus/device determines that the {m+ 1)Vr\ stroke forms a new stroke group 634:m+1 ), the possibility matrix is not updated to reflect the entry of the {m+ 1)Vr\ stroke. However, the apparatus/device is configured to determine the possible matrix entry combinations which comprise all of the determined stroke groups based on the matrix determined in the previous interval (in response to the inputting of the mth stroke). In this case, the output could correspond to the matrix entry M1 2; or to the matrix entry followed by the matrix entry M2,2- In this case, the matrix entry Μυ and the matrix entry M2,2 correspond to known characters so the these characters (' -n =f ') are provided as output to the user.
In response to the {m+2)h stroke, the steps performed for the mth stroke are repeated as shown in figure 6a. That is, in response to the entry of the {m+2)Vr\ stroke, the device is configured to determine whether the (m+2)th stroke combines with the stroke of the previous stroke group (determined in the (m+ 7)th interval) to form an updated stroke group or whether the further strokes forms a new stroke group. In this case, the stroke is determined to combine with the previous stroke group to form an updated stroke group. Based on this, the device/apparatus recalculates the stroke group combinations comprising the new stroke group. The stroke group combinations which do not comprise the new or updated stroke group are left unchanged. As the updated stroke group was not determined when the possibility matrix was last determined (in response to the (m)Vr stroke), the a new column for the updated stroke group is provided. This new row represents the possible combinations of stroke groups which comprise the updated stroke group.
As for the (m)h stroke group, at this stage, the process does not continue to calculate the combinations of the possibility matrix entries.
In response to the (m+3)th stroke, the apparatus/device is configured to determine the possible matrix entry combinations which comprise all of the determined matrix entries. In this case, the output could correspond to the matrix entry M1 3; to the matrix entry Μυ followed by the matrix entry M2,3; to the matrix entry M1 2 followed by the matrix entry M3 3; or to the matrix entry followed by the matrix entry M2,2 followed by the matrix entry M3 3. In this case, the apparatus determines that the matrix entries Μυ , M2,2 and M3 3 represents the most likely combination of known characters so the these characters (' n" CX') are provided as output to the user.
In response to the {m+4)Vr\ stroke, the first part of the process is repeated as shown in figure 6b. In response to the entry of the {m+4)h stroke, the device is configured to determine whether the (m+4)th stroke combines with the strokes of the previous stroke group to form an updated stroke group or whether the further strokes forms a new stroke group. In this case, the stroke is determined to combine with the previous stroke group to form an updated stroke group.
Based on this, the device/apparatus recalculates the stroke group combinations comprising the new stroke group. The stroke group combinations which do not comprise the new or updated stroke group are left unchanged. As the updated stroke group was not determined when the possibility matrix was last determined (in response to the {m+2)Vr\ stroke), the a new column for the updated stroke group is provided. This new row represents the possible combinations of stroke groups which comprise the updated stroke group. As for the (m+2)th stroke group, at this stage, the process does not continue to calculate the combinations of the possibility matrix entries.
In response to the (m+5)th stroke, the apparatus/device is configured to determine the possible matrix entry combinations which comprise all of the determined stroke groups. In this case, the apparatus determines that the matrix entries Μυ , M2,2 , M3,3 and M4,4 represents the most likely combination of known characters so the these characters (' n" ') are provided as output to the user. When a user finished writing, there may be some strokes which are still not processed. These strokes can be processed after the input method's timeout. The user can then be provided with all of the content he has written. It will be appreciated that because the calculations required for is reduced, the calculations may be performed between the user providing one stroke and the user providing the subsequent stroke.
In this case, the (m+5)th stroke is the last stroke that the user wishes to enter into the subject line of an email. However, in this example, the (m+5)th stroke is not fully processed in response to the entry of the (m+5)th stroke. In this example, when the user has not entered a stroke for a predetermined threshold period of time, the device/apparatus is configured to complete the processing of any strokes which have not yet been fully processed. This is shown in figure 5b. When the predetermined threshold of time is exceeded the device/apparatus is configured to recalculate the group combinations comprising the updated stroke group. The stroke group combinations which do not comprise the new or updated stroke group are left unchanged. As the updated stroke group was determined when the possibility matrix was last determined (in response to the {m+4)Vr\ stroke), the final column is updated to reflect the updated stroke group. This updated row represents the possible combinations of stroke groups which comprise the updated stroke group. Unlike previously when the processing is in response to the time period threshold being exceeded, the process continues to calculate the combinations of the possibility matrix entries.
In this case, the apparatus/device is configured to determine the possible matrix entry combinations which comprise all of the determined stroke groups. In this case, the apparatus determines that the matrix entries Μυ , M2,2 , M3,4 represents the most likely combination of known characters so the these characters (' i^M- .') are provided as output to the user.
It will be appreciated that the method may work for other written languages, for example, languages which use alphabetic characters such as English or Greek. In particular, the method may be used to recognise words or word components which have been written to overlap each other.
Figure 7 illustrates the calculations performed by the apparatus/device shown in figure 5a as successive strokes corresponding to Roman alphabetic characters are entered into the input entry region. In this case, the user is writing the phrase Ί love Nokia' which is made up of three words, each word comprising one or more alphabetic characters. In this case, the first word T of the phrase has been entered and the {m)Vr stroke (corresponding to the letter V) shown in figure 7 represents the last stroke corresponding to the second word component, Ίον'. In this case, the handwriting is overlapped as when the user completes one line of text, they continue to write the next line of text in the same position as the previous line.
In response to the entry of the {m)Vr stroke, the device is configured to determine whether the (m)Vr stroke combines with the strokes of the previous stroke group to form an updated stroke group or whether the further strokes forms a new stroke group. In the pre-segmentation phase, only the new added stroke is processed. The pre- segmentation results of other strokes are untouched. Thus there is only one updated or new generated pre-segmented group each time. In this case, the {m)Vr is determined to combine with the previously determined stroke group to form an updated stroke group Ίον'.
Based on this, the device/apparatus recalculates stroke group combinations comprising the updated stroke group. These combinations represent the final column of a matrix giving the stroke group combinations of all of the entered stroke groups. The stroke group combinations which do not comprise the new or updated stroke group (e.g. Μυ) are left unchanged. This may provide significant processing reductions.
In this case, the stroke group combinations are shown in a non-overlapped configuration. That is, in figure 7, the successive stroke groups making up the combination are shown side by side. When the possibility matrix M,,, has been updated, the apparatus/device is configured to determine the possible matrix entry combinations which comprise all of the determined stroke groups. In this case, the output could correspond to the matrix entry M1 2, or to the matrix entry Μυ followed by the matrix entry M2,2-
Analogous to the graphical character recognition case, the probability of a combination scheme with n matrix entry words or word components can be expressed as a product of three items:
P(S Sn_x , S = P(S Sn_x ) x P(S x P(Sn \ Sn_x )
The first item in the expression is the probability of the combination scheme with the first n-1 stroke groups, which has already been calculated and stored in the system. The second part is the probability of the last stroke group being one isolated word, which can be checked from the possibility matrix. The third part is the possibility of the identified stroke group following the previous stroke groups (which can be calculated, for example, using language modelling). As noted previously, other example embodiments may calculate the sum of the logarithms of each term to provide an indication of the probability of a combination scheme with n matrix entry words or word components.
Therefore, the character string 'Nov' is provided as output. Unlike the previous case, the provided output is provided directly into the text entry field 516 which the user is entering text into. It will be appreciated that the provided output may be updated as further strokes are input. It will be appreciated that other example embodiment may be configured to calculate the sum of the logarithms of each term. This may provide a faster calculation.
In response to the (m+ 1)Vr\ stroke, the process is repeated as shown in figure 7. In response to the entry of the (m+ 1)Vr\ stroke, the device is configured to determine whether the (m+ 1)Vr\ stroke combines with the strokes of the previously determined stroke group to form an updated stroke group or whether the further strokes forms a new stroke group. In this case, the stroke is determined not to combine with the previous stroke group to form an updated stroke group, but to form a new stroke group.
Based on this, the device/apparatus recalculates the stroke group combinations comprising the new stroke group. The stroke group combinations which do not comprise the new or updated stroke group are left unchanged. As there is a new stroke group, a new column (M =3 735:m+1 ) is added onto the possibility matrix. This newly calculated row (735:m+1 ) represents the possible combinations of stroke groups which comprise the newly added stroke group.
When the possibility matrix has been updated, the apparatus/device is configured to determine the possible matrix entry combinations which comprise all of the determined stroke groups. In this case, the possible combinations relating to the previously determined stroke groups are unchanged. Only combinations comprising the new stroke group are recalculated (736:m+1 ). In this case, the output could correspond to the matrix entry M3,3; to the matrix entry followed by the matrix entry M2,3; to the matrix entry M1 2 followed by the matrix entry M3,3; or to the matrix entry Μυ followed by the matrix entry M2,2 followed by the matrix entry M3,3. In this case, the matrix entry Μυ and the matrix entry M2,3 correspond to known words so the these words (Ί love') are provided as output to the user. It will be appreciated that, in this case, the probability of T following 'love' may be high (the third term in the above equation) because a verb (e.g. 'love') would be expected to follow a pronoun (e.g. T). The apparatus may be configured to determine a lower value for the third term in the above equation if the pronoun were followed by a noun (e.g. Ί log'). These values may be calculated using an N-gram language model, such as a bigram or trigram language model. When using a language model, it will be appreciated that the language model may take into account the start and end of a sentence. For example, a bigram model might take into account the probability that the first word is the start of the sentence and that the last word is the end of the sentence. Without these beginning-of-sentence and end-of-sentence markers, the probability of an ungrammatical sequence such as "/ love my" would always be higher than that of the longer, but grammatically correct, sentence "I love my phone".
In this case, the procedure continues as the user enters the further strokes of the last word until the desired sentence phrase Ί love Nokia' is entered.
Because the recognition process comprises several stages, these stages need not all be executed in response to each entered stroke. That is, other example embodiments may carry out the recognition process in several intervals (each interval corresponding to entry of a single stroke). This may further reduce the processing power required whilst providing output characters in real time. Since the processing of one new stroke may take some time, there may be several strokes or even several pre-segmented groups waiting for recognition after the processing of one stroke is finished. However, since the pre-segmented groups usually have multiple strokes, the processing of each stroke may be spread over multiple stroke inputs without causing a significant or perceptible delay to the user.
Figure 6a shows a series of calculations performed by another example embodiment configured to perform the recognition process over two intervals. For comparison, the user is entering the same word as that entered using the example embodiment of figures 7 - Ί love Nokia'.
In this case, the same calculations are performed to provide the output words, namely in response to receiving a new stroke, the apparatus/device determines whether the new stroke forms an updated stroke group in combination with the previous stroke group or a new stroke group (pre-segmentation); and whether the new or updated stroke group combines with the previously determined stroke groups to provide recognisable words (fine segmentation). In this case, however, different stages of the calculation are performed for each successive stroke. As in the example illustrated in figure 7, the first word T of the word has been entered and the mth stroke shown in figure 8a represents the last stroke corresponding to the second word component, Ίον'.
At this stage, like the example embodiment of figure 7, in response to the entry of the mth stroke, the device is configured to determine whether the mth stroke combines with the strokes of the previous stroke group to form an updated stroke group or whether the further strokes forms a new stroke group. In this case, the mth stroke is determined to form part of the previously determined stroke group (833:m). Based on this, the device/apparatus recalculates the stroke group combinations comprising the new or updated stroke group (835:m). That is, the device/apparatus recalculates the stroke group combinations in the possibility matrix comprising the updated stroke group. The stroke group combinations which do not comprise the new or updated stroke group are left unchanged. As there is no new stroke group the size of the matrix remains unchanged, although the final column (835:m) is updated to reflect the updated stroke group. This updated row represents the possible combinations of stroke groups which comprise the updated stroke group. Leaving stroke group combinations which do not comprise the new or updated stroke group unchanged may provide significant processing reductions.
In contrast to the previous example embodiment, when the possibility matrix has been updated, the apparatus/device is not configured to determine the possible matrix entry combinations which comprise all of the determined stroke groups. Therefore the output text remains as it was for the (m- 1)Vr stroke.
In response to the {m+ 1)Vr\ stroke (corresponding to the letter 'e'), the process is continued as shown in figure 8a. In this case, although the apparatus/device determines that the {m+ 1)Vr\ stroke forms a new stroke group 834:m+1 ), the possibility matrix is not updated to reflect the entry of the {m+ 1)Vr\ stroke. However, the apparatus/device is configured to determine the possible matrix entry combinations which comprise all of the determined stroke groups based on the matrix determined in the previous interval (in response to the inputting of the mth stroke). In this case, the output could correspond to the matrix entry M1 i2; or to the matrix entry followed by the matrix entry M2,2- In this case, the alphabetic characters corresponding to the matrix entry Μ1 2 (ΊΙον') are provided as output to the user. In response to the {m+2)Vr\ stroke, the steps performed for the mth stroke are repeated as shown in figure 8a. In response to the entry of the {m+2)Vr\ stroke, the device is configured to determine whether the (m+2)th stroke combines with the stroke of the previous stroke group (determined in the (m+ 7)th interval) to form an updated stroke group or whether the further strokes forms a new stroke group. In this case, the stroke is determined to form a new stroke group.
As the previous stroke (the (m+ 1)Vr\ stroke) has not been fully processed, the device/apparatus recalculates the stroke group combinations comprising the stroke group comprising the (m+ 1)Vr\ stroke, rather than the stroke group combinations comprising the (m+2)Vr\ stroke. The stroke group combinations which do not comprise the new or updated stroke group are left unchanged. As the updated stroke group was not determined when the possibility matrix was last determined (in response to the (m)Vr stroke), the a new column for the updated stroke group is provided (to take into account the (m+ 1)Vr\ stroke). This new row represents the possible combinations of stroke groups which comprise the new stroke group. As for the (m)t stroke group, at this stage, the process does not continue to calculate the combinations of the possibility matrix entries.
In response to the (m+3)Vr\ stroke, the apparatus is configured to determine whether the stroke forms a new stroke group or combines with the last stroke group to form an updated stroke group. In this case, the (m+3)Vr\ stroke (corresponding to the character 'ο') forms an updated stroke group with the last stroke group.
The apparatus/device is also configured to determine the possible matrix entry combinations which comprise all of the determined matrix entries. In this case, the output could correspond to the matrix entry M1 3; to the matrix entry followed by the matrix entry M2,3; to the matrix entry M1 2 followed by the matrix entry M3,3; or to the matrix entry Μυ followed by the matrix entry M2,2 followed by the matrix entry M3 3. In this case, the apparatus determines that the matrix entries Μυ and M2,3 represents the most likely combination of known words so the these words (Ί love') are provided as output to the user.
The updated stroke group, comprising to the word component 'No' will begin to be processed in response to the (m+4)Vr\ stroke.
When a user finished writing, there may be some strokes which are still not processed. These strokes can be processed after the input method's timeout. The user can then be provided with all of the content he has written. It will be appreciated that because the calculations required for is reduced, the calculations may be performed between the user providing one stroke and the user providing the subsequent stroke.
In this example, when the user has not entered a stroke for a predetermined threshold period of time, the device/apparatus is configured to complete the processing of any strokes which have not yet been fully processed. This is shown in figure 8b. When the predetermined threshold of time is exceeded the device/apparatus is configured to recalculate the group combinations comprising the updated stroke group. The stroke group combinations which do not comprise the new or updated stroke group are left unchanged. In this case, the last stroke forms part of an updated stroke group, so the final column of the possibility matrix is updated to reflect the updated stroke group. This updated row represents the possible combinations of stroke groups which comprise the updated stroke group. Unlike previously when the processing is in response to the time period threshold being exceeded, the process continues to calculate the combinations of the possibility matrix entries. In this case, the apparatus/device is configured to determine the possible matrix entry combinations which comprise all of the determined stroke groups. In this case, the apparatus determines that the matrix entries Μυ , M2,3 , M4,5 represents the most likely combination of known characters so the these characters (Ί love Nokia') are provided as output to the user.
Figure 9a shows that an example embodiment of an apparatus in communication with a remote server. Figure 9b shows that an example embodiment of an apparatus in communication with a "cloud" for cloud computing. In figures 9a and 9b, apparatus 901 (which may be apparatus 101 , 201 or 301 is in communication with a display 904). Of course, the apparatus 901 and display 904 may form part of the same apparatus/device, although they may be separate as shown in the figures. The apparatus 901 is also in communication with a remote computing element. Such communication may be via a communications unit, for example. Figure 9a shows the remote computing element to be a remote server 995, with which the apparatus may be in wired or wireless communication (e.g. via the internet, Bluetooth, a USB connection, or any other suitable connection as known to one skilled in the art). In figure 9b, the apparatus 901 is in communication with a remote cloud 996 (which may, for example, by the Internet, or a system of remote computers configured for cloud computing). It may be that the functions associated with the user interface elements are stored at the remote computing element 995, 996) and accessed by the apparatus 901 for display 904. The determining and/or providing may be performed at the remote computing element 995, 996. The apparatus 901 may actually form part of the remote sever 995 or remote cloud 996.
Figure 10 illustrates the process flow according to an example embodiment of the present disclosure. The process comprises based on receipt of a further inputted stroke, determining (1081 ) whether the further stroke combines with one or more previously inputted strokes of a previously determined stroke group to form an updated stroke group, or forms a new stroke group, wherein each stroke group comprises one or more strokes and corresponds to a radical; and, based on the determination, providing (1082) for output of one or more graphical characters comprising radicals corresponding to the determined new stroke group or updated stoke group. Figure 1 1 illustrates the process flow according to an example embodiment of the present disclosure. The process comprises based on receipt of a further inputted stroke, determining (1 181 ) whether the further stroke combines with one or more previously inputted strokes of a previously determined stroke group to form an updated stroke group, or forms a new stroke group, wherein each stroke group comprises one or more strokes and corresponds to a word or word component; and, based on the determination, providing (1 182) for output of one or more words comprising words or word components corresponding to the determined new stroke group or updated stoke group. Figure 12 illustrates schematically a computer/processor readable medium 1200 providing a computer program according to one example embodiment. In this example, the computer/processor readable medium 1200 is a disc such as a Digital Versatile Disc (DVD) or a Compact Disc (CD). In other example embodiments, the computer/processor readable medium 1200 may be any medium that has been programmed in such a way as to carry out an inventive function. The computer/processor readable medium 1200 may be a removable memory device such as a memory stick or memory card (e.g. SD, mini SD or micro SD).
The computer program may comprise computer code configured to perform, control or enable one or more of the method steps 881 , 882 of Figure 8. In this respect, the computer program may be stored on the storage medium of the scanning/initiating device, the storage medium of the advertising device or the storage media of both devices. It will be appreciated to the skilled reader that any mentioned apparatus/device and/or other features of particular mentioned apparatus/device may be provided by apparatus arranged such that they become configured to carry out the desired operations only when enabled, e.g. switched on, or the like. In such cases, they may not necessarily have the appropriate software loaded into the active memory in the non-enabled (e.g. switched off state) and only load the appropriate software in the enabled (e.g. on state). The apparatus may comprise hardware circuitry and/or firmware. The apparatus may comprise software loaded onto memory. Such software/computer programs may be recorded on the same memory/processor/functional units and/or on one or more memories/processors/functional units.
In some example embodiments, a particular mentioned apparatus/device may be preprogrammed with the appropriate software to carry out desired operations, and wherein the appropriate software can be enabled for use by a user downloading a "key", for example, to unlock/enable the software and its associated functionality. Advantages associated with such example embodiments can include a reduced requirement to download data when further functionality is required for a device, and this can be useful in examples where a device is perceived to have sufficient capacity to store such preprogrammed software for functionality that may not be enabled by a user.
It will be appreciated that any mentioned apparatus/circuitry/elements/processor may have other functions in addition to the mentioned functions, and that these functions may be performed by the same apparatus/circuitry/elements/processor. One or more disclosed aspects may encompass the electronic distribution of associated computer programs and computer programs (which may be source/transport encoded) recorded on an appropriate carrier (e.g. memory, signal). It will be appreciated that any "computer" described herein can comprise a collection of one or more individual processors/processing elements that may or may not be located on the same circuit board, or the same region/position of a circuit board or even the same device. In some example embodiments one or more of any mentioned processors may be distributed over a plurality of devices. The same or different processor/processing elements may perform one or more functions described herein.
It will be appreciated that the term "signalling" may refer to one or more signals transmitted as a series of transmitted and/or received signals. The series of signals may comprise one, two, three, four or even more individual signal components or distinct signals to make up said signalling. Some or all of these individual signals may be transmitted/received simultaneously, in sequence, and/or such that they temporally overlap one another.
With reference to any discussion of any mentioned computer and/or processor and memory (e.g. including ROM, CD-ROM etc), these may comprise a computer processor, Application Specific Integrated Circuit (ASIC), Field-Programmable Gate Array (FPGA), and/or other hardware components that have been programmed in such a way to carry out the inventive function. The applicant hereby discloses in isolation each individual feature described herein and any combination of two or more such features, to the extent that such features or combinations are capable of being carried out based on the present specification as a whole, in the light of the common general knowledge of a person skilled in the art, irrespective of whether such features or combinations of features solve any problems disclosed herein, and without limitation to the scope of the claims. The applicant indicates that the disclosed example aspects/embodiments may consist of any such individual feature or combination of features. In view of the foregoing description it will be evident to a person skilled in the art that various modifications may be made within the scope of the disclosure.
While there have been shown and described and pointed out fundamental novel features as applied to different example embodiments thereof, it will be understood that various omissions and substitutions and changes in the form and details of the devices and methods described may be made by those skilled in the art without departing from the spirit of the invention. For example, it is expressly intended that all combinations of those elements and/or method steps which perform substantially the same function in substantially the same way to achieve the same results are within the scope of the invention. Moreover, it should be recognized that structures and/or elements and/or method steps shown and/or described in connection with any disclosed form or example embodiment may be incorporated in any other disclosed or described or suggested form or example embodiment as a general matter of design choice.
Furthermore, in the claims means-plus-function clauses are intended to cover the structures described herein as performing the recited function and not only structural equivalents, but also equivalent structures. Thus although a nail and a screw may not be structural equivalents in that a nail employs a cylindrical surface to secure wooden parts together, whereas a screw employs a helical surface, in the environment of fastening wooden parts, a nail and a screw may be equivalent structures.

Claims

WHAT IS CLAIMED IS:
1 . An apparatus comprising:
at least one processor; and
at least one memory including computer program code,
the at least one memory and the computer program code configured, with the at least one processor, to cause the apparatus to perform at least the following:
based on receipt of a further inputted stroke, determine whether the further stroke combines with one or more previously inputted strokes of a previously determined stroke group to form an updated stroke group, or
forms a new stroke group
wherein each stroke group comprises one or more strokes and corresponds to a radical; and
based on the determination, provide for output of one or more graphical characters comprising radicals corresponding to the determined new stroke group or updated stoke group.
2. The apparatus of claim 1 , wherein the combinations of strokes to form stroke groups is based on one or more of: the spatial features of the strokes; and statistical classification methods.
3. The apparatus of any preceding claim, wherein the apparatus is configured to, based on the determined new or updated stroke group, determine whether the new or updated stroke group:
combines with one or more previously inputted stroke groups to form an updated graphical character; or
forms a new graphical character.
4. The apparatus of claim 3, wherein the apparatus is configured to determine a possibility matrix comprising all of the possible permutations of the determined stroke groups.
5. The apparatus of claim 4, wherein the possibility matrix is updated, based on a said determined new stroke group by adding entries to the matrix representing combinations comprising the determined new stroke group.
6. The apparatus of claim 4, wherein the possibility matrix is updated, based on a said determined updated stroke group, by updating entries to the matrix representing combinations comprising the determined updated stroke group.
7. The apparatus of claim 5, wherein the apparatus is configured to determine whether each permutation of the determined stroke groups corresponding to an isolated graphical character.
8. The apparatus of claim 7, wherein the determination of whether each permutation of the determined stroke groups corresponds to an isolated graphical character comprises:
determining the probability that each permutation of the determined stroke groups corresponds to an isolated graphical character.
9. The apparatus of claims 7 or 8, wherein the apparatus is configured to determine whether combinations of the matrix elements correspond to a graphical character string.
10. The apparatus of claim 9, wherein providing for output of one or more characters is based on a probability determined for one or more of:
the previously determined stroke group combinations forming a graphical character string;
the matrix elements comprising the further inputted stroke group forming an isolated graphical character; and
an isolated character comprising the further inputted stroke group forming a character string with other determined characters.
1 1 . The apparatus of claim 10, wherein the probability of an isolated character comprising the further inputted stroke group forming a character string with other determined characters is determined using a language model.
12. The apparatus of any preceding claim, wherein at least a portion of the determinations is performed in response to at least one of:
receiving a stroke after the further inputted stroke; and.
a pre-determined time period threshold since the further inputted stroke being exceeded.
13. The apparatus of any preceding claim wherein the apparatus is an electronic device, a portable electronic device, a laptop computer, a mobile phone, a Smartphone, a tablet computer, a personal digital assistant, a digital camera, a watch, a server, a nonportable electronic device, a desktop computer, a monitor, a server, a wand, a pointing stick, a touchpad, a touch-screen, a mouse, a joystick or a module/circuitry for one or more of the same.
14. A method, the method comprising,
based on receipt of a further inputted stroke, determining whether the further stroke
combines with one or more previously inputted strokes of a previously determined stroke group to form an updated stroke group, or
forms a new stroke group
wherein each stroke group comprises one or more strokes and corresponds to a radical; and
based on the determination, providing for output of one or more graphical characters comprising radicals corresponding to the determined new stroke group or updated stoke group.
15. A computer program comprising computer program code, the computer program code being configured to perform at least the following:
based on receipt of a further inputted stroke, determine whether the further stroke combines with one or more previously inputted strokes of a previously determined stroke group to form an updated stroke group, or
forms a new stroke group
wherein each stroke group comprises one or more strokes and corresponds to a radical; and
based on the determination, provide for output of one or more graphical characters comprising radicals corresponding to the determined new stroke group or updated stoke group.
16. An apparatus comprising:
at least one processor; and
at least one memory including computer program code,
the at least one memory and the computer program code configured, with the at least one processor, to cause the apparatus to perform at least the following:
based on receipt of a further inputted stroke, determine whether the further stroke combines with one or more previously inputted strokes of a previously determined stroke group to form an updated stroke group, or
forms a new stroke group
wherein each stroke group comprises one or more strokes and corresponds to a word or word component; and
based on the determination, provide for output of one or more words comprising the word or word component corresponding to the determined new stroke group or updated stoke group.
17. A method, the method comprising,
based on receipt of a further inputted stroke, determining whether the further stroke
combines with one or more previously inputted strokes of a previously determined stroke group to form an updated stroke group, or
forms a new stroke group
wherein each stroke group comprises one or more strokes and corresponds to a word or word component; and
based on the determination, providing for output of one or more words comprising the word or word component corresponding to the determined new stroke group or updated stoke group.
18. A computer program comprising computer program code, the computer program code being configured to perform at least the following:
based on receipt of a further inputted stroke, determine whether the further stroke combines with one or more previously inputted strokes of a previously determined stroke group to form an updated stroke group, or
forms a new stroke group
wherein each stroke group comprises one or more strokes and corresponds to a word or word component; and
based on the determination, provide for output of one or more words comprising the word or word component corresponding to the determined new stroke group or updated stoke group.
PCT/CN2013/074154 2013-04-12 2013-04-12 An apparatus for text entry and associated methods WO2014166114A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201380077229.9A CN105283882B (en) 2013-04-12 2013-04-12 Apparatus for text input and associated method
PCT/CN2013/074154 WO2014166114A1 (en) 2013-04-12 2013-04-12 An apparatus for text entry and associated methods

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2013/074154 WO2014166114A1 (en) 2013-04-12 2013-04-12 An apparatus for text entry and associated methods

Publications (1)

Publication Number Publication Date
WO2014166114A1 true WO2014166114A1 (en) 2014-10-16

Family

ID=51688884

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2013/074154 WO2014166114A1 (en) 2013-04-12 2013-04-12 An apparatus for text entry and associated methods

Country Status (2)

Country Link
CN (1) CN105283882B (en)
WO (1) WO2014166114A1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2020273352B2 (en) * 2016-06-12 2022-06-09 Apple Inc. Handwriting keyboard for small screens
US11416141B2 (en) 2007-01-05 2022-08-16 Apple Inc. Method, system, and graphical user interface for providing word recommendations
US11620046B2 (en) 2019-06-01 2023-04-04 Apple Inc. Keyboard management user interfaces
US11816326B2 (en) 2013-06-09 2023-11-14 Apple Inc. Managing real-time handwriting recognition

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10424086B2 (en) * 2017-11-16 2019-09-24 Adobe Inc. Oil painting stroke simulation using neural network
EP3772015B1 (en) * 2019-07-31 2023-11-08 MyScript Text line extraction

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008005304A2 (en) * 2006-07-06 2008-01-10 Synaptics Incorporated A method and apparatus for recognition of handwritten symbols
WO2010117505A2 (en) * 2009-03-30 2010-10-14 Synaptics Incorporated Recognizing handwritten words
WO2012024829A1 (en) * 2010-08-24 2012-03-01 Nokia Corporation Method and apparatus for segmenting strokes of overlapped handwriting into one or more groups
US8310461B2 (en) * 2010-05-13 2012-11-13 Nuance Communications Inc. Method and apparatus for on-top writing

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1356616A (en) * 2000-11-23 2002-07-03 林兵 Chinese-character writing input method
CN100492403C (en) * 2001-09-27 2009-05-27 佳能株式会社 Character image branching method and device, and character image recognition method and device
CN101105734A (en) * 2007-08-09 2008-01-16 上海合合信息科技发展有限公司 Input method of touch screen hand-writing and point-touch combination

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008005304A2 (en) * 2006-07-06 2008-01-10 Synaptics Incorporated A method and apparatus for recognition of handwritten symbols
WO2010117505A2 (en) * 2009-03-30 2010-10-14 Synaptics Incorporated Recognizing handwritten words
US8310461B2 (en) * 2010-05-13 2012-11-13 Nuance Communications Inc. Method and apparatus for on-top writing
WO2012024829A1 (en) * 2010-08-24 2012-03-01 Nokia Corporation Method and apparatus for segmenting strokes of overlapped handwriting into one or more groups

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11416141B2 (en) 2007-01-05 2022-08-16 Apple Inc. Method, system, and graphical user interface for providing word recommendations
US11816326B2 (en) 2013-06-09 2023-11-14 Apple Inc. Managing real-time handwriting recognition
AU2020273352B2 (en) * 2016-06-12 2022-06-09 Apple Inc. Handwriting keyboard for small screens
US11640237B2 (en) 2016-06-12 2023-05-02 Apple Inc. Handwriting keyboard for screens
US11941243B2 (en) 2016-06-12 2024-03-26 Apple Inc. Handwriting keyboard for screens
US12422979B2 (en) 2016-06-12 2025-09-23 Apple Inc. Handwriting keyboard for screens
US11620046B2 (en) 2019-06-01 2023-04-04 Apple Inc. Keyboard management user interfaces
US11842044B2 (en) 2019-06-01 2023-12-12 Apple Inc. Keyboard management user interfaces

Also Published As

Publication number Publication date
CN105283882A (en) 2016-01-27
CN105283882B (en) 2019-12-27

Similar Documents

Publication Publication Date Title
US10698604B2 (en) Typing assistance for editing
CN101526879B (en) Speech input interface on a device
CN105573503B (en) For receiving the method and system of the text input on touch-sensitive display device
CN103959283B (en) Method, system and device for interactive text editing
US20150160855A1 (en) Multiple character input with a single selection
US9841893B2 (en) Detection of a jolt during character entry
US20170270092A1 (en) System and method for predictive text entry using n-gram language model
CN105283882B (en) Apparatus for text input and associated method
US20150169212A1 (en) Character Recognition Using a Hybrid Text Display
WO2014055791A1 (en) Incremental feature-based gesture-keyboard decoding
US20140164981A1 (en) Text entry
EP2660699A1 (en) Touchscreen keyboard with correction of previously input text
US20110319139A1 (en) Mobile terminal, key display program, and key display method
US20090225034A1 (en) Japanese-Language Virtual Keyboard
US9733825B2 (en) East Asian character assist
CN109215660A (en) Text error correction method after speech recognition and mobile terminal
KR20140146785A (en) Electronic device and method for converting between audio and text
US20180300021A1 (en) Text input system with correction facility
US11886801B1 (en) System, method and device for multimodal text editing
CN104281560B (en) Display method, device and terminal of memory text information
CN106095128A (en) The character input method of a kind of mobile terminal and mobile terminal
US20180129300A1 (en) Input-based candidate word display method and apparatus
JP6420327B2 (en) Enter tone and diacritics by gesture
WO2014134769A1 (en) An apparatus and associated methods
US9952763B1 (en) Alternative gesture mapping for a graphical keyboard

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 201380077229.9

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 13882016

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 13882016

Country of ref document: EP

Kind code of ref document: A1