A computer-implemented method for optical character recognition of a language script, the method being executed by one or more processors, the method comprising: receiving, by the one or more processors, an image comprising a graphical representation of a word written in the language script, the image having an x-axis and a y-axis; segmenting, by the one or more processors, the word into two or more segments (206; 302; 304; 306), each segment (206; 302; 304; 306) being defined by a respective boundary of the segment (206; 302; 304; 306) and comprising at least one character of the word, wherein the segmenting comprises: applying segment markers (212; 214; 216) at a location along the x-axis of the word where the height of the word with respect to the y-axis changes less than a threshold amount, and inserting respective segments (206; 302; 304; 306) of the two or more segments (206; 302; 304; 306) between respective pairs of segment markers (212; 214; 216; 218), by the one or more processors, by providing a boundary for each segment (206; 302; 304; 306) of the two or more segments (206; 302; 304; 306), the boundary enclosing the at least one character of a respective segment (206; 302; 304; 306), each boundary having an edge with respect to the x-axis and/or the y-axis of the image; normalizing, by the one or more processors, boundaries of the two or more segments (206; 302; 304; 306) by aligning edges of the boundaries, wherein aligning edges of the boundaries comprises moving at least one edge of at least one boundary with respect to the x-axis of the image and/or with respect to the y-axis of the image; and labeling, by the one or more processors, each segment (206; 302; 304; 306) of the two or more segments (206; 302; 304; 306) with a respective label, the respective label indicating a language character within the respective boundary. receiving, by the one or more processors, an image comprising a graphical representation of a word written in the language script, the image having an x-axis and a y-axis; segmenting, by the one or more processors, the word into two or more segments (206; 302; 304; 306), each segment (206; 302; 304; 306) being defined by a respective boundary of the segment (206; 302; 304; 306) and comprising at least one character of the word, wherein the segmenting comprises: applying segment markers (212; 214; 216) at a location along the x-axis of the word where the height of the word with respect to the y-axis changes less than a threshold amount, and inserting respective segments (206; 302; 304; 306) of the two or more segments (206; 302; 304; 306) between respective pairs of segment markers (212; 214; 216; 218), by the one or more processors, by providing a boundary for each segment (206; 302; 304; 306) of the two or more segments (206; 302; 304; 306), the boundary enclosing the at least one character of a respective segment (206; 302; 304; 306), each boundary having an edge with respect to the x-axis and/or the y-axis of the image; applying segment markers (212; 214; 216) at a location along the x-axis of the word where the height of the word with respect to the y-axis changes less than a threshold amount, and inserting respective segments (206; 302; 304; 306) of the two or more segments (206; 302; 304; 306) between respective pairs of segment markers (212; 214; 216; 218), by the one or more processors, by providing a boundary for each segment (206; 302; 304; 306) of the two or more segments (206; 302; 304; 306), the boundary enclosing the at least one character of a respective segment (206; 302; 304; 306), each boundary having an edge with respect to the x-axis and/or the y-axis of the image; normalizing, by the one or more processors, boundaries of the two or more segments (206; 302; 304; 306) by aligning edges of the boundaries, wherein aligning edges of the boundaries comprises moving at least one edge of at least one boundary with respect to the x-axis of the image and/or with respect to the y-axis of the image; and labeling, by the one or more processors, each segment (206; 302; 304; 306) of the two or more segments (206; 302; 304; 306) with a respective label, the respective label indicating a language character within the respective boundary.