System for detecting and correcting broken words

The positioning of elements of a broken word can be corrected by receiving an optical character recognition (OCR) conversion of a printed publication and identifying multiple parts of the broken word from the OCR conversion to place in a graphical user interface (GUI). The multiple parts can be placed in the GUI using original positioning data for the printed publication. A user can make a selection in the GUI indicating that multiple parts from the OCR conversion are of the broken word and can automatically adjust bounds of the multiple parts to form a corrected word.

BACKGROUND

Generally, in language, a word is the smallest element with meaning. A written language is the representation of a language by means of a writing system. An alphanumeric writing system may use a set of symbols, letters, and/or numbers, to form a word. In a logographic writing system, a logogram, which is a single written character, is used to represent a complete grammatical word or morpheme. A morpheme is the smallest semantically meaningful unit in a language. For example, some Chinese characters are logograms.

Text is the representation of written language. Printed text can be scanned, for example, using optical character recognition (OCR), to create an electronic image of the text. OCR is the electronic conversion of scanned images into machine-encoded text. The converted machine-encoded text may then be electronically searched and/or used in various machine processes, such as text mining, machine translation, etc. When running an OCR application on a scanned image, boundary information for the text is created. In character recognition, boundaries can be a real or imaginary rectangle which serves as the delimiter between consecutive letters, numbers, and/or symbols in alphanumeric words and between lines in character words (e.g., Chinese character words). The boundary information can include the rectangular coordinates for the lines that make up Chinese character words, and letters, numbers, and/or symbols in alphanumeric words.

Typically, when a scanned image is of poor quality or if the scanned image contains logographic characters (e.g., Chinese characters), the OCR application may make mistakes in detecting the boundaries, and applications and processes, which may rely on the boundary information, may generate incorrect results. For example, a Chinese character word or an alphanumeric word may be split into multiple parts, causing typographical and grammatical errors. Editors may spend a significant amount of time in trying to detect and correct the errors.

DETAILED DESCRIPTION

Systems and methods in accordance with various implementations of the present disclosure provide the ability for users that edit electronic works (e.g., electronic books) to use a graphical user interface (GUI) to quickly and easily detect and correct broken words caused by inaccurate optical character recognition (OCR) boundary detection. Examples of words can include, and are not limited to, alphanumeric words, and logographic character words, such as, and not limited to, Chinese characters, Japanese characters, Korean characters, etc. The elements of alphanumeric words can include letters, numbers, and symbols. The elements of logographic character words can include the lines that make up the characters.

Incorrect OCR boundary information for the elements of words may create broken words. OCR boundary information is also hereinafter referred to as “bounds.” The bounds can include the rectangular coordinates for the lines in the logographic character words (e.g., Chinese character words, Japanese character words, etc.), and for the letters, numbers, and/or symbols in alphanumeric words. A broken word can be a word in which the OCR detected a single work as more than one word. For example, a broken word may be a word in which the positioning of the elements (e.g., letters, numbers, symbols, lines, etc.) of the words does not match the original positioning of the elements in a corresponding word in a physical work (e.g., physical book). A broken word may have multiple parts. For example, a word “ninety” may be broken into three parts “ni,” “ne,” and “ty.” When the positions of the elements of the parts of the broken word are corrected to match the original positioning of the elements in the corresponding word in the physical work, the broken word can become a correct word. For example, the positions of “ni,” “ne,” and “ty” can be fixed to form the correct word “ninety.”

In another example, the physical work may be written using other writing systems, such as logographic writing systems, syllabic writing systems, etc. For example, the physical book may be written using a logographic writing system. A logographic character, such as a Chinese character, is a word. A broken word can include a broken Chinese character where the elements (e.g., lines) of the character “” are separated because the OCR bounds have positioned the lines for the character “” incorrectly. The e-book editor user can provide user input to indicate the presence of the broken character word. Implementations of the present disclosure can correct the bounds of the lines for the broken character word to match the original positioning data that was collected from the physical book.

FIG. 1provides a more detailed illustration of detecting and correcting broken words using an organized structure (e.g., grid) in a GUI in accordance with various implementations. For example, an electronic work editor user102may use an editing device104to edit electronic works. Examples of electronic works include, and are not limited to, electronic books (e-books), electronic magazines, electronic newspapers, electronic journals, electronic comic books, etc. An electronic work may include a single work or a collection of works. For example, an electronic work may include a single book, or an anthology.

An editor user102may convert a physical book (e.g., printed publication) into an electronic work (e.g., electronic book (e-book)). The physical book108may be scanned and processed to produce an electronic work editing file106. The electronic work editing file106can include original positioning data for the elements (e.g., line, letter, number, symbol, etc.) for each word in the physical book108, the optical character recognition (OCR) machine-encoded text of the scanned image of the words in the physical book108, and the OCR boundary information (“bounds”) for the machine-encoded text. The bounds can include the rectangular coordinates for the lines in the logographic character words (e.g., Chinese character words, Japanese character words, etc.), and for the letters, numbers, and/or symbols in alphanumeric words.

The editor user102can use an editing device104, such as a computer system, to edit the e-book using the electronic work editing file106before the e-book is distributed to consumer users. The editing device104can host an electronic reader (e-reader) file editing application to allow the editor user102to edit the electronic work editing file106.

The e-reader file editing application can present a graphical user interface (GUI)118in a display on the editing device104to the editor user102. The GUI118can include an original scan mode representation126that displays a portion (e.g., paragraph, page, etc.) of the physical book108as seen in the physical book108. The original scan mode representation126can be created using the original positioning data, in the electronic work editing file106, for the elements (e.g., lines, letters, numbers, symbols, etc.) for each word in the physical book108.

The GUI118can also include a reflow mode representation124to present the elements of the words from the physical book108in positions as would be displayed in an electronic output device, such as an electronic reading device. Document reflow is the adjusting of a document for a graphical user interface for a particular device. In some implementations, the original scan mode representation126and the reflow mode representation124are in panes that are side-by-side in the GUI118. The reflow mode representation124is a preview pane that mimics how the words from the physical book108would be displayed in an electronic reading device. The positioning of the elements of the words for the electronic reading device can be based on the OCR bounds in the electronic work editing file106.

The OCR bounds may not be accurate, and the positioning of the elements of the words in the reflow mode representation124may not match the positioning of the elements of the corresponding words in the original scan mode representation126. For example, the original scan mode representation126may display what may appear to the user102to be twenty-five alphanumeric words. The reflow mode representation124may be using the incorrect bounds and may display what may appear to the user102to be twenty-eight words in the reflow mode representation124. The reflow mode representation124can include parts of broken words, such as “t”110, “hree”112“twe”114, “lve”116, “nine”122, and “ty”120.

The positioning of the broken words in the reflow mode representation124does not match the positioning of the elements of the corresponding words in the original scan mode representation126. For example, the reflow mode representation124may include a first part, “t”110, followed by a second part “hree”112of a broken word, whose elements do not match the original positioning of the elements of the corresponding word “three”142in the original scan mode representation126. In another example, the reflow mode representation124may include a first part, “twe”114, followed by another part “lve”116of a broken word, whose elements do not match the original positioning of the elements of the corresponding word “twelve”144in the original scan mode representation126.

A broken word can have one or more parts that reflow into different reflow lines. For example, the reflow mode representation124may include a first part “nine”122of a broken word in the reflow line123followed by a second part “ty”120of the broken word in another reflow line125. The positioning of the multiple parts “nine”122and “ty”120of the broken word do not match the original positioning of the elements of the corresponding word “ninety”146in the original scan mode representation126.

In one implementation, when the editor user102is reviewing the portions (e.g., paragraphs, pages) of the e-book using the original scan mode representation126and the reflow mode representation124, the e-reader file editing application can provide a window in the GUI118that shows the words, of the portion currently being reviewed, in an organized structure (e.g., grid, table, etc.). An organized structure can include sections, such as, and not limited to, cells, boxes, lists, etc. For brevity and simplicity, a grid is used as an example of an organized structure and a cell is used as an example of a section throughout this document.

The organized structure (e.g., grid130) can allow an editor user102to quickly identify and correct broken words. In some implementations, the organized structure (e.g., grid) is in a pop-up window over-laying the panes of the original scan mode representation126and the reflow mode representation124in the GUI118. The e-reader file editing application can use the bounds, which may not be correct, in the electronic work editing file106to identify the words to place in the cells in the grid130. For example, the bounds may indicate that “t”110is a word and that “hree”112is another word. The e-reader file editing application may operate on “t”110and “hree”112as two separate words when populating the cells in the grid130. For example, the e-reader file editing application may be configured to distribute two words in each cell in the grid130. The e-reader file editing application may place “t” and “hree” as two separate words in cell132, may place “twe” and “lve” as two separate words in cell134, and may place “nine” and “ty” as two separate words in cell136.

The e-reader file editing application can use the original positioning data in the electronic work editing file106to determine how to position the multiple parts of the broken words, for example, “t,” “hree,” “twe,” “lve,” “nine,” and “ty,” in the cells. For example, the original positioning data may indicate that there should be 0.1 mm distance between “t” and “hree,” and the e-reader file editing application may position the two words “t” and “hree” 0.1 mm from each other in cell132in the grid130, such that the editor user102may perceive that there is a single word “three” in the cell132.

The e-reader file editing application can use the grid130to identify which words in the reflow mode representation124are broken words and can automatically correct the incorrect positions of the parts (e.g., elements) of the broken words in the reflow mode representation124to match the original positions of the elements of the corresponding words in the physical book108. For example, the e-reader file editing application may be configured to place two words in each cell in the grid130. The e-reader file editing application can request the user102to select a first instance of a cell in the grid130that appears to the user102to contain two words. For example, the e-reader file editing application can receive user input of a selection of cell138in the grid130. The e-reader file editing application can identify that the cells (e.g., cell132, cell134, and cell136) that are preceding the selected cell (e.g., cell138) each have a broken word. The e-reader file editing application can correct the positioning of “t”110and “hree”112, “twe”114and “lve”116, and “nine”122and “ty”120in the reflow mode representation124to match the original positioning data that was collected from the physical book108to form the corresponding corrected words.

FIG. 2provides a more detailed illustration of detecting and correcting broken words using an original scan mode in a GUI in accordance with various implementations. For example, an editor user202may look at the reflow mode representation224and may see differences in the positioning of the elements of the words in the reflow mode representation224as compared to the positioning of the elements of the words in the original scan mode representation226. For example, the editor user202may see that positioning of the elements “t”210and “hree”212in the reflow mode representation224are different from the positioning of the elements in “three”242in the original scan mode representation226. The editor user202can use the GUI218to independently select words in the original scan mode representation226, which the user has identified to be broken words. For example, the editor user202can use the GUI218to draw a box around the word “three”242in the original scan mode representation226to identify the word “three”242is a broken word. In response to the user selection of the one or more words (e.g., three242), the e-reader editing file application can corrected the selected word formed by ensuring the element (e.g., letter) spacing from the original scan mode representation226for the selected word (e.g., three242) is followed for the corresponding word in the reflow mode representation224. For example, the user202may select the word “three”242and the e-reader editing file application can bring the positions of these elements (e.g., letters) together in the reflow mode representation224, such that “t” and “hree” no longer flow separately. One implementation of using an original scan mode to detect and correct broken words is described in greater detail below in conjunction withFIG. 8.

FIG. 3illustrates an example of detecting and correcting broken words in accordance with one or more implementations. Continuing with the example of converting a physical book to an e-book, a scanning device302can scan a physical book304to create a scanned work image308of the physical work304. The scanning device302may scan all of the pages in the physical book304. The scanned work image208may contain images of the text of the physical book304.

An optical character recognition (OCR) device310can host an OCR engine and can run the OCR engine on the scanned work image308to convert the images of text into machine-encoded text. When running the OCR engine, the OCR device310can create boundary information (bounds) for the machine-encoded text. The OCR device310can generate an OCR work image311that includes the machine-encoded text and the bounds for the physical book304.

A file generator device313can use the OCR work image311and the scanned work image308to create an electronic work editing file312. The electronic work editing file312is a file that can be used by an e-reader file editing application hosted on an editing device314for editing an electronic work (e.g., e-book) before the electronic work is publicly distributed. The file generator device313can capture the original positions of the elements of the words in the scanned work image308and create original positioning data for the elements of the words in the physical book304. The original positioning data can include x-y coordinates for each element (e.g., letter, number, symbol, line) in a word (e.g., alphanumeric word, logographic character word). The x-y coordinates may be rectangular coordinates. The file generator device313can include the original positioning data, the OCR machine-encoded text, and the OCR bounds in the electronic work editing file312. The electronic work editing file312can be stored in a data store350.

The editing device314can retrieve the electronic work editing file312from the data store350over the network306. The e-reader file editing application can provide the electronic work editing file312in a graphical user interface (GUI) to an editor user in a display in the editing device314. The e-reader file editing application can include windows and panes in the GUI that present the words from the physical work304. The e-reader file editing application can receive input from an editor user and can use the input to identify which words are broken words.

The e-reader file editing application can use the input received from the editor user to automatically correct the broken words. Implementations of correcting the broken words are described in greater detail below in conjunction withFIG. 4andFIG. 8. When the broken words are corrected, the e-reader file editing application can generate an electronic work distribution file315and store the electronic work distribution file315in the data store350. An electronic work distribution file315is a file that can be publicly distributed and used by electronic reading devices318to provide electronic versions of physical works to end users. An electronic work distribution system316can transmit the electronic work distribution file315to a reading device318. For example, the electronic work distribution file315is an e-book of a physical book. An end user may use the reading device318to purchase the e-book and the electronic work distribution system316may transmit the electronic work distribution file315for the e-book to the reading device318.

FIG. 4illustrates an example method400for identifying and correcting broken words using an organized structure in a graphical user interface that can be used in accordance with one or more implementations. The method400may be performed by processing logic that may comprise hardware (circuitry, dedicated logic, etc.), software (such as is run on a general purpose computer system or a dedicated device), or a combination of both. In some implementations, the method400is performed by a word positioning module (e.g., word positioning module1301ofFIG. 13).

At block401, processing logic receives an electronic work editing file for a physical work. The electronic work editing file can include original positioning data for the elements (e.g., lines, letters, numbers, symbols, etc.) for each word in the physical book, the OCR machine-encoded text for the words from the physical work, and the OCR boundary information (bounds) for the machine-encoded text.

At block403, processing logic identifies words as arranged by the OCR bounds. The words arranged from the OCR bounds may differ from words arranged by the original positioning data in the electronic work editing file. For example, the original positioning data may arrange “three” as a single word, whereas the OCR bounds may arrange two words “t” and “hree.” In one implementation, processing logic uses heuristics and/or user input to make use of an arrangement of a word to determine whether the word is broken or not.

At block405, processing logic determines the distances between the identified words (e.g., “t” and “hree”) as arranged by the OCR bounds. The OCR bounds can include x-y coordinates for the elements (e.g., letters, numbers, symbols, lines) in the words as determined from a scanned image of the physical work. A word can include a monogram. The elements of a monogram can include an image (e.g., raster) and a letter (e.g., vector) which can be combined to form a monogram. For each identified word, processing logic can locate the x-y coordinates for the elements of word and can calculate the distances between the identified words. For example, processing logic may determine that the x-y coordinates for “t” and the first letter “h” in “hree” and can use the x-y coordinates for “t” and “h” to determine the distance between the identified words “t” and “hree.” Processing logic can calculate a distance in terms of a measurement scale associated with the coordinates. For example, the distance may be calculated in terms of millimeters. For example, the bounds for the elements for “t” and “hree” may indicate that there should be 0.1 mm between “t” and “hree”.

At block407, processing logic sorts the words into an order based on the distances between adjacent words. For horizontal orientation text, the x-coordinates can be used for distance measurements. For vertical orientation text, the y-coordinates can be used for the distance measurements. For example, the order may be from the smallest distance to the largest distance. The parts of broken words, such as “t” and “hree,” may have distances in between them that are less than the distances between correct words, such as the distance between “one” and “two.” Processing logic may place the parts of the broken words, in the order, before the correct words.

At block409, processing logic creates an organized structure (e.g., grid, table, groups of lists, etc.) in a graphical user interface (GUI). At block411, processing logic identifies a portion of the work that is currently being reviewed. Examples of a portion can include, and are not limited to, a page, a paragraph, a chapter, a pre-determined number of words, a pre-determine number of sentences, a percentage of the work, etc. For example, an editor user may be currently reviewing a particular page of the work. Processing logic may identify the portion that is currently under review by identifying the content of a reflow mode representation and/or an original mode representation in the GUI.

At block413, processing logic populates each section of the organized structure with the same number words from the portion of the work that is currently under review. Examples of sections can include, and are not limited to, cells, boxes, lists in a group of lists, etc. The number of words can be a pre-determined and/or configurable number. For example, processing logic may distribute two words in each cell in a grid. In another example, processing logic may place two words in each box in a table. In another example, processing logic may allocate two words in each list in the group of lists.

At block415, processing logic requests a user selection of one or more sections, of the organized structure, that meet a criterion to indicate the presence of one or more broken words in the organized structure. Processing logic can create a message in the GUI requesting that the editor user to select one or more sections in the organized structure. In some implementations, the criterion is that the selected section is the first section that appears to contain the pre-determined number of words.

At block417, processing logic determines whether user input of the selected one or more sections are received. If user input is not received, processing logic can determine whether there is another portion (e.g., page, paragraph, etc.) of the work being reviewed. In some implementations, processing logic uses a timeout to determine when user input is not received. If another portion is being reviewed (block419), processing logic returns to block411to identify the portion under review. If another portion is not being reviewed (block419), processing logic removes the organized structure (e.g., grid) from the GUI at block423.

If user input of a selection of one or more sections is received (block417), processing logic identifies the broken words in the organized structure using the selected section(s) at block421. For example, if the criterion is to select is the first section that appears to contain the pre-determined number of words, processing logic may determine that the un-selected section(s) preceding the selected cell each contain a broken word.

At block423, processing logic removes the organized structure (e.g., grid) from the GUI. For example, processing logic may close the GUI window that contains the organized structure. At block425, processing logic corrects the positioning of the elements of the identified broken words in the reflow mode representation in the GUI to match the original positioning data of the elements of the corresponding words in the physical work. For example, processing logic may add the bounds of each of the multiple parts to each other in the reflow mode representation to form the corrected word. For example, processing logic may add the bounds of “t” to the bounds of “hree” in the reflow representation mode, such that an editor user may perceive a single word, such as “three.” Processing logic can add the bound for each of the multiple parts to change the distance between the multiple parts and merge the elements to form a single correct word. Processing logic may then use the corrected words in the reflow mode representation to create a distribution file for the election version of the physical work.

FIGS. 5-7illustrate example GUIs for detecting and correcting broken words in accordance with one or more implementations. The GUIs can be generated by an e-reader file editing application hosted by an editing device.FIG. 5illustrates an example GUI500that includes an original scan mode representation504and a reflow mode representation502, for example, in panes in the GUI500. The original scan mode representation504includes logographic character words, such as Japanese character words, positioned in the pane using the original positioning data (e.g., x-y coordinates) of the elements (e.g., lines) of the character words as placed in the physical work. The elements of the character words in the original scan mode representation504have corresponding bounds that were generated by an OCR device. The bounds (e.g., x-y coordinates) may be used to position the elements of the character words in the reflow mode representation502. The elements of the character words in the reflow mode representation502are positioned as would be seen in an electronic reading device.

Some of the bounds (e.g., x-y coordinates) for the elements of the character words may not be accurate. For example, the elements of two character words508that are displayed in the original scan mode representation504may have bounds that are incorrect. Since the elements of the character words in the original scan mode representation504are positioned using the original positioning data of the elements of the character words as placed in the physical work, an editor user may not easily detect from the original scan mode representation504that the elements of the two character words508have incorrect bounds.

The editor user may determine, from the reflow mode representation502, which character words have incorrect bounds. For example, the position of the elements of the two character words506in the reflow mode representation502should correspond to the positions of the elements of the two character words508in the original scan mode representation504, but the positions of the elements of the two character words506in the reflow mode representation502do not match the positions of the elements of the corresponding two character words508in the original scan mode representation504.

The e-reader file editing application can create an organized structure (e.g., grid, table, group of lists) in the GUI500to allow an editor user to quickly and easily identify broken character words in the reflow mode representation502.FIG. 6illustrates an example GUI600that includes an organized structure, such as grid610, in a window. In some implementations, the grid610is in a window that that overlays the pane for the original scan mode representation604and the pane for the reflow mode representation602. The e-reader file editing application can use user input, received from the editor user via the grid610, to determine which character words in the grid610are broken character words.

Each cell in the grid610can be configured to contain the same pre-determined number (e.g., two) of character words. In one implementation, the e-reader file editing application can request the editor user, for example, via a message in the GUI600, to select a first instance of a cell in the grid610that appears to the editor user to contain the pre-determined number (e.g., two) of character words. For example, the editor user may select cell616. The e-reader file editing application can identify the cells (e.g., cell612, cell614) that are preceding the selected cell (e.g., cell616) to contain a broken word.

In some implementations, the e-reader file editing application requests the editor user to select the one or more cells that appear to contain less than the pre-determined number (e.g., two) of characters. For example, the editor user may select cell612and cell614because the cells appear to contain one character word each. The e-reader file editing application can determine that each of the user-selected cells (e.g., cell612, cell614) contain a broken character word. In some implementations, the e-reader file editing application requests the editor user to select the one or more cells that appear to contain the pre-determined number (e.g., two) of character words. For example, the editor user may select all of the cells except for cell612and cell614. The e-reader file editing application can determine that the un-selected cells (e.g., cell612, cell614) each contain a broken character word.

The e-reader file editing application can remove the grid610from the GUI600and correct the positioning of the broken character word(s) in reflow mode representation602.FIG. 7illustrates an example GUI700that includes a reflow mode representation702where the elements of the character words718are now correctly positioned. For example, the e-reader file editing application can adjust the positions of the elements (e.g., lines) of the character words to match the original positioning data to form the correct character words. For example, the e-reader file editing application can add the bounds of the elements (e.g., lines) to each other to match to match the original positioning data.

FIG. 8illustrates an example method800for detecting and correcting broken words using an original scan mode representation that can be used in accordance with one or more implementations. The method800may be performed by processing logic that may comprise hardware (circuitry, dedicated logic, etc.), software (such as is run on a general purpose computer system or a dedicated machine), or a combination of both. In some implementations, the method800is performed by a word positioning module (e.g., word positioning module1301ofFIG. 13).

At block801, processing logic creates a GUI containing words of a physical work in a display on an editing device. The GUI can include window panes presenting an original scan mode representation and a reflow mode representation. In some implementations, the original scan mode representation and the reflow mode representation are in panes that are side-by-side in the GUI. The GUI can include an original scan mode representation that displays a portion (e.g., paragraph, page, etc.) of a physical work as seen in the physical work. The original scan mode representation can be created using the original positioning data for the elements for each word in the physical work. The reflow mode representation mimics how the elements of the words from the physical work would be displayed in an electronic reading device. The positioning of the elements of the words for the electronic reading device can be based on the OCR boundary information (bounds) in an electronic work editing file created from the physical work.

At block803, processing logic receives user input, via the GUI, selecting one or more words in the GUI, for example, in the original scan mode representation. The OCR bounds may not be accurate, and the positioning of the elements of the words in the reflow mode representation may not match the positioning of the elements of the corresponding words in the original scan mode representation. For example, an editor user may look at the reflow mode representation and may see differences in the positioning of the elements of the words in the reflow mode representation as compared to the positioning of the elements of the words in the original scan mode representation. Processing logic may receive a user selection of a box drawn around particular words in the original scan mode representation, which may appear in the reflow mode representation to be broken words or processing logic may receive a user selection of a box drawn around each word in the original scan mode representation. For example, the original scan mode can include the word bounds from the OCR on top of the display of the words and a user may see, for example, that if a single word has two separate bounds, the word may be determined to be a broken word. Examples of a user selection can include, and are not limited to, a box drawn around a word, a highlighted word, a mouse click of a word, etc.

At block805, processing logic uses the OCR bounds to identify words and/or multiple parts of broken words as arranged by the OCR bounds and can mark the words and/or multiples parts of the broken words in the GUI, for example, in the original scan mode in the GUI, at block807. For example, processing logic may place a box around each word and/or part of the broken words.FIG. 9is an example GUI that includes an original scan mode representation window900in the GUI. The original scan mode representation window900can mark words and/or parts of broken words with boxes as arranged by OCR bounds. For example, box901and box903identify “Th” and “ey” as multiple parts of a broken word.

Returning toFIG. 8, at block809, processing logic corrects the positioning of the parts of the broken word to match the original position in the physical work. In one implementation, processing logic receives user input requesting to correct the broken word.FIG. 10is an example GUI1000that includes a pane for a reflow mode representation1002and a pane for an original scan mode representation1004. A user can select a broken word “They”1006in the original scan mode representation1004, for example, by dragging a mouse over the broken word “They”1006. The broken word “They”1006in the original scan mode representation1004can correspond to the parts “Th”1008and “ey”1010of the broken word in the reflow mode representation1002.FIG. 11is an example of pop-up menu1106in a window in the GUI1100to receive user input to correct the broken word “They”1104. A user may, for example, right-click the broken word “They”1104using a mouse and select “Create New Word” in the pop-up menu1106to correct the broken word “They”1104.

Returning toFIG. 8, in another implementation, at block809, processing logic automatically corrects the positioning of the parts of the broken word to match the original positioning in the physical work. Processing logic can correct the broken word to match the original positioning data of “Th” and “ey” to bring the position of these elements (e.g., letters) together in the reflow mode representation, such that “Th” and “ey” no longer flow separately.FIG. 12is an example GUI1200that includes a pane for a reflow mode representation1202and a pane for an original scan mode representation1204. Processing logic can add the bounds of each of the multiple parts to each other in the reflow mode representation1202to form the corrected word. For example, processing logic may add the bounds of “Th” to the bounds of “ey” in the reflow representation mode representation1202, such that a user may perceive a single word, such as “They”1206. Processing logic can add the bounds for each of the multiple parts to change the distance between the multiple parts and merge the elements to form a single correct word.

FIG. 13illustrates components of an example computing device1300that can be used in accordance with various implementations. In one implementation, the computing device1300corresponds to an editing device, a scanning device, an optical character recognition (OCR) device, a file generator device, a device in an electronic work distribution system, or a reading device. In some implementations, any combination of the functionality of the editing device, the scanning device, the OCR device, the file generator device, and the device in an electronic work distribution system can be combined into a single device. The computing device1300includes a set of instructions for causing the device to perform any one or more of the methodologies discussed herein. In alternative implementations, the device may be connected (e.g., networked) to other devices in a LAN, an intranet, an extranet, or the Internet. The device may operate in the capacity of a server machine in client-server network environment. The device may be a personal computer (PC), a set-top box (STB), a server, a network router, switch or bridge, or any device capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that device. Further, while only a single device is illustrated, the term “device” shall also be taken to include any collection of devices that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed herein.

The example computer device1300includes a processing system (processing device)1302, a main memory1304(e.g., read-only memory (ROM), flash memory, dynamic random access memory (DRAM) such as synchronous DRAM (SDRAM), etc.), a static memory1306(e.g., flash memory, static random access memory (SRAM), etc.), and a data storage device1318, which communicate with each other via a bus1340.

The computer device1300may further include a network interface device1308. The computer device1300also may include a video display unit1310(e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)), an alphanumeric input device1312(e.g., a keyboard), a cursor control device1314(e.g., a mouse), and a signal generation device1316(e.g., a speaker).

The data storage device1318may include a machine-readable storage medium1328(computer readable storage medium) on which is stored one or more sets of instructions (e.g., instructions of word spacing module1301) embodying any one or more of the methodologies or functions described herein. The word spacing module1301may also reside, completely or at least partially, within the main memory1304and/or within the processing device1302during execution thereof by the computer device1300, the main memory1304and the processing device1302also constituting computer-readable media. The word spacing module1301may further be transmitted or received over a network1320via the network interface device1308.

While the computer-readable storage medium1328is shown in an example implementation to be a single medium, the term “computer-readable storage medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more sets of instructions. The term “computer-readable storage medium” shall also be taken to include any medium that is capable of storing, encoding or carrying a set of instructions for execution by the device and that cause the device to perform any one or more of the methodologies of the present disclosure. The term “computer-readable storage medium” shall accordingly be taken to include, but not be limited to, solid-state memories, optical media, and magnetic media.

As discussed, various approaches can be implemented in various environments for various applications. For example,FIG. 14illustrates an example of an environment1400for implementing aspects in accordance with various implementations. As will be appreciated, although a Web-based environment is used for purposes of explanation, different environments may be used, as appropriate, to implement various implementations. The environment1400includes an electronic client editing device1402, which can include any appropriate device operable to send and receive requests, messages, or information over an appropriate network1404and convey information back to a user of the device. The client editing device1402can include a word spacing module1440, which can correspond to word spacing module1301inFIG. 13), to provide the ability for users that edit electronic works (e.g., electronic books) to use a graphical user interface (GUI) to quickly and easily detect and correct broken words caused by inaccurate optical character recognition (OCR) boundary detection.

The environment1400includes one or more client processing devices1403, which can include any appropriate device operable to send and receive requests, messages, or information over an appropriate network1404and convey information back to a user of the device. The client processing device1403may be a scanning device, an optical character recognition (OCR) device, a file generator device, and/or a device in an electronic work distribution system. In some implementations, any combination of the functionality of the editing device, the scanning device, the OCR device, the file generator device, and the device in an electronic work distribution system can be combined into a single client processing device1403.

The environment1400includes a client reading device1405, which can include any appropriate device operable to send and receive requests, messages, or information over an appropriate network1404and convey information back to a user of the device. The client reading device1403enables end users to view electronic works (e.g., electronic books (e-books), electronic magazines, electronic newspapers, electronic journals, electronic comic books, etc.).

Examples of such client editing devices1402, client processing device1403, and client reading devices1405include personal computers, cell phones, handheld messaging devices, laptop computers, set-top boxes, personal data assistants, electronic book readers, and the like. The network1404can include any appropriate network, including an intranet, the Internet, a cellular network, a local area network, or any other such network or combination thereof. Components used for such a system can depend at least in part upon the type of network and/or environment selected. Protocols and components for communicating via such a network are well known and will not be discussed herein in detail. Communication over the network can be enabled by wired or wireless connections, and combinations thereof. In this example, the network includes the Internet, as the environment includes a Web server1406for receiving requests and serving content in response thereto, although for other networks an alternative device serving a similar purpose could be used as would be apparent to one of ordinary skill in the art.

The data store1410can include several separate data tables, databases, or other data storage mechanisms and media for storing data relating to a particular aspect. For example, the data store illustrated includes mechanisms for storing scanned work images1412, optical character recognition (OCR) work images1414, electronic work editing data1416, and electronic work distribution data1418, which can be used to serve content for the production side. It should be under stood that there can be many other aspects that may need to be stored in the data store, such as control commands, progress information, etc.

Each server1406,1408typically will include an operating system that provides executable program instructions for the general administration and operation of that server1406,1408, and typically will include a computer-readable medium storing instructions that, when executed by a processor of the server1406,1408, allow the server1406,1408to perform its intended functions. Suitable implementations for the operating system and general functionality of the servers1406,1408are known or commercially available and are readily implemented by persons having ordinary skill in the art, particularly in light of the disclosure herein.

Each client device1402,1403,1405typically will include an operating system that provides executable program instructions for the general administration and operation of that client device1402,1403,1405, and typically will include a computer-readable medium storing instructions that, when executed by a processor of the client device1402,1403,1405, allow the client device1402,1403,1405to perform its intended functions. Suitable implementations for the operating system and general functionality of the client device1402,1403,1405are known or commercially available and are readily implemented by persons having ordinary skill in the art, particularly in light of the disclosure herein.

In implementations utilizing a Web server, the Web server can run any of a variety of server or mid-tier applications, including HTTP servers, FTP servers, CGI servers, data servers, Java servers, and business application servers. The server(s) also may be capable of executing programs or scripts in response to requests from user devices, such as by executing one or more Web applications that may be implemented as one or more scripts or programs written in any programming language. The server(s) may also include database servers, including without limitation those commercially available.