Systems and methods for automatically estimating a translation time including preparation time in addition to the translation itself

A method for automatically estimating a translation time comprises receiving translation data, determining one or more translation parameters based on the translation data, retrieving one or more pre-determined translation coefficients associated with the one or more translation parameters, calculating an estimated translation time based on the one more or more translation parameters and the one or more pre-determined translation coefficients, and a base time to prepare the translation in addition to the translation itself. The method may further comprise reporting the estimated translation time to a user, receiving, from the user, a request to perform a translation associated with the translation data, performing the translation, recording an actual translation time, comparing the actual translation time to the estimated translation time, and based on the comparison, revising the one or more pre-determined translation coefficients to improve the estimating of the translation time.

BACKGROUND

1. Field of the Invention

This application relates generally to data processing and, more specifically, to systems and methods for automatically estimating a translation time.

2. Description of Prior Art

Pioneered in the 1950s, computer-aided translation has been a rapidly growing field. There are two types of machine translation systems: rules-based and statistical. Introduction of statistical methods has led to better translations, handling differences in linguistic typology, translation of idioms, and the isolation of anomalies. Furthermore, computer-aided translation software allows for customization by domain or profession, thereby improving output by limiting the scope of allowable substitutions. However, computer-aided translation systems are able to translate more accurately when human translators supervise the process and update translation dictionaries. This human intervention leads to improved translation quality through automation with repeatable processes and reduced manual errors.

Modern language industry has developed following the availability of the Internet. Achievements of the industry include the ability to quickly translate long texts into many languages. However, managing translation services may be a difficult task and require simultaneously controlling complex projects with hundreds of translation tasks. An accurate estimate of the time required to perform a translation task is important for resource allocations.

SUMMARY OF THE INVENTION

The present technology may automatically estimate the time required to perform a translation by a translation service. To generate the estimate, the system may receive content, such as a web page or other digital content, having words in a source language, the content to be translated into a target language. The systems and methods may dynamically estimate the time required to perform the translation of the content from the source language to the target language. The estimate of the translation time may be based on factors such as a number of words and/or pages that comprise the content, a band percentage, and a type and/or subject matter of the content. The “band percentage” may be the percentage of content that is recognized in the source language as previously translated. For example, a time estimate will be faster if 99% of the content is comprised of previously translated sentences compared to if only 75% of the sentences have been previously translated.

In an embodiment, a system for automatically estimating a translation time comprises a communication module to receive translation data and to retrieve one or more pre-determined translation coefficients associated with one or more translation parameters. The system also includes a processing module to determine the one or more translation parameters based on the translation data and to calculate an estimated translation time based on the one more or more translation parameters and the one or more pre-determined translation coefficients. The system may further comprise a reporting module to report the estimated translation time to a user, wherein the communication module is to receive, from the user, a request to perform a translation associated with the translation data, a translation module to perform the translation, a time recording module to record an actual translation time, a comparing module to compare the actual translation time to the estimated translation time, and a coefficient adjusting module to revise the one or more pre-determined translation coefficients based on the comparison.

In an embodiment, the translation is a computer-aided translation and the one or more translation parameters include one or more of the following: a base task time, a target language, a category of the translation source, a number of words in the translation source, a number of pages in the translation source, and a band percentage. The band percentage is a percentage of translation units in the translation source that are matched in the translation memory. The translation units include one or more of the following: words, sentences, and phrases. The translation data includes one or more of the following: a source file, a translation memory, a suggestion dictionary, and a reference file. A value of a translation coefficient is based on the historical importance of a translation parameter associated with the translation coefficient in calculating the estimated translation time.

In embodiments, steps of methods counterpart to the systems described herein may be stored on a computer readable storage medium having a program embodied thereon, with the program executable by a processor in a computing device. In yet further example embodiments, modules, subsystems, or devices can be adapted to perform the recited steps. Other features and example embodiments are described below.

DETAILED DESCRIPTION

In one example embodiment, systems and methods for automatically estimating a translation time may receive content, such as a web page or other digital content, with words in a source language and translate the content into a target language. To generate the time estimate, the system may receive content, such as a web page or other digital content, having words in a source language, the content to be translated into a target language. The systems and methods may dynamically estimate the time required to perform the translation of the content from the source language to the target language. The estimate of the translation time may be based on factors such as a number of words and/or pages that comprise the content, a band percentage, and a type and/or subject matter of the content. The “band percentage” is the percentage of content that is recognized in the source language as previously translated. For example, a time estimate will be faster if 99% of the content is comprised of previously translated sentences compared to if only 75% of the sentences have been previously translated.

The type (e.g., subject matter) of the content may affect the estimation time; for example, pharmaceutical subject matter may take longer to translate than travel subject matter. After each translation, an algorithm utilized to estimate the translation time is updated based on the actual translation time for the combination of words, pages, band percentage and subject matter, and the updated algorithm is applied to subsequent translation jobs to improve the estimate.

For example, an initial translation time algorithm may be expressed as:
Translation time=F1(word count,band percentage,content type)*C,Eq. 1

C may be a coefficient, for example a coefficient used as a weighting value that corresponds to the particular combination of word count, band percentage, or content type, respectively. Hence, the base time may be based on the word count, but may be adjusted based on a coefficient associated with the band percentage and/or by another coefficient associated with the content type. Values for coefficients may be stored in a database and retrieved based on the type of work. Other algorithms to determine the translation time may be used as well.

An example workflow of a method for automatically estimating a translation time may include receiving a content translation request by translation service from a user, retrieving translation coefficient values based on parameters of the translation request, calculating an estimated time for translation based on the coefficients, and reporting the estimated time for translation to the user. If the user accepts the estimate, the translation may be performed (by human translator or automated translation service) and the actual translation time recorded. If the actual translation time is within the estimated translation time, no adjustment is required. If, on the other hand, the actual translation time is not within the estimated translated time, one or more coefficients are adjusted to reflect the actual translation time.

In this document, the terms “a” or “an” are used, as is common in patent documents, to include one or more than one. In this document, the term “or” is used to refer to a nonexclusive “or,” such that “A or B” includes “A but not B,” “B but not A,” and “A and B,” unless otherwise indicated.

FIG. 1is a block diagram of a network environment100within which systems and methods for automatically estimating a translation time may be implemented, in accordance with an example embodiment. As shown inFIG. 1, the network environment100may include a network (e.g., may include one or more of a wide area network, local area network, public network, private network, intranet, the Internet, or a combination of these)110, a translation application120, a translation package122, computer124associated with a translator126, computer132associated with a user130, an application server140, and a translation time estimator200. The network110may include data processing nodes interconnected for the purpose of data communication and may communicatively couple various modules depicted inFIG. 1.

The systems and methods for automatically estimating a translation time may be implemented within the web-based network environment100. Therefore, the user computer132may communicate to the application server140via the network110. The translation time estimator200of the application server140may perform the business logic of the general workflow steps of the example methods. The application server140may provide the translation to the human translator126and receive the finished product when ready.

FIG. 2is a block diagram of a translation time estimator200, in accordance with an example embodiment. Alternative embodiments of the translation time estimator200may comprise more, less, or functionally equivalent modules. In some example embodiments, the translation time estimator200may comprise a communication module202, a reporting module204, a processing module206, a translation module208, a comparing module210, and a coefficient (coefficient) adjusting module212.

It will be appreciated by one of ordinary skill that examples of the foregoing modules may be virtual, and instructions said to be executed by a module may, in fact, be retrieved and executed by a processor. The foregoing modules may also include memory cards, servers, and/or computer discs. Although various modules may be configured to perform some or all of the various steps described herein, fewer or more modules may be provided and still fall within the scope of various embodiments.

The communication module202may, in some embodiments, receive translation data from the user130. Translation parameters may be determined based on the translation data. Some translation parameters may be determined directly from the translation data provided from a user, such as a desired task time, the target language, and a category of the translation source. Other translation parameters may be determined by processing the translation data, such as a number of words in the translation source, and a number of pages in the translation source, and a band percentage. Once the translation parameters are determined, the communication module202may retrieve translation coefficients associated with a set of translation parameters such as, for example, a base task time, a target language, a category of the translation source, a number of words in the translation source, a number of pages in the translation source, and a band percentage. The translation coefficient(s) may be used as coefficients or weightings in a translation time algorithm, and may be generated from previous translations performed for the same set of translations. For example, for a translation of medical journal content translated from English to German, three previous translations may average ten minutes per page. A subsequent translation request from English to German of six pages of medical journal content may have an estimate of sixty minutes. The processing module206may then calculate an estimated translation time based on the translation parameters and translation coefficients retrieved by the communication module202. Once the processing module206calculates the estimated translation time, the reporting module204may report the estimated translation time to the user130. If the user130accepts the translation estimate, the translation module208may perform the translation.

Upon completion of the translation, the actual translation time may be recorded and the comparing module210may compare the actual time to the estimated time of translation. Based on the comparison, the coefficient adjusting module212may revise the translation coefficients to improve future estimates. Alternatively, an average time per translation page or word for translation jobs having the same parameters of source language, target language, and content subject matter may be updated based on the recent translation results with matching parameters.

Accurate estimates of the translation time are important for assessing how much time it will take to do this particular translation so that the work can be allocated to an appropriate translator. This is especially important in the case of multiple simultaneous projects. The approach described herein allows performing an analysis based on the percentage of the content being previously translated, the word count, page count, and other parameters associated with the source file. Once the project is completed, the actual time to complete the translation may be manually recorded and compared to the estimated time. For example, estimated and actual values can be placed in two columns next to each other and the times compared. With time, the estimates can be refined, and eventually the estimates get better, thereby creating a reliable way of planning the translation work that keeps coming in. Thus, rather than doing the estimates manually, they are performed automatically.

Besides the word count parameter, other parameters may include page count and word count. The word count may be split into different match bands, with the match band being the percentage of the likelihood of the translation being correct. For example, if there is an exact match, then the match band is 100%, no intervention by a human translator is required, and the translation is nearly instantaneous. If there are minor differences (for example, the match band is 95%), some minor interventions by a human translator are necessary but still the effort to correct the translation is minimal. As the match band increases, the situation may get worse and worse to the point where a human translator may spend less time by translating the source document from scratch instead of taking suggestions from the translation memory. The translation memory includes a set of words and sentences that have been previously translated. Different match bands are calculated based on whether a particular sentence has been previously translated. The system may associate a different amount time per each word of the source document in each match band.

Additionally, the parameters may include the particular type of work; for example, if the type of work is legal translation, it might take longer than it would take for a marketing translation of the same size. A user may use special portals to provide the translation data in order to receive an estimated time to translate.

FIG. 3is a workflow diagram of a method300for sharing content, in accordance with an example embodiment. The method300may be performed by processing logic that may comprise hardware (e.g., dedicated logic, programmable logic, microcode, etc.), software (such as run on a general-purpose computer system or a dedicated machine), or a combination of both. In one example embodiment, at least a portion of the processing logic may reside at the translation time estimator200, as illustrated inFIG. 2.

As shown inFIG. 3, the method300may commence at operation302with the communication module202of the translation time estimator200receiving translation data from a user. Based on the translation data received from the user, the processing module206may determine one or more translation parameters to be used in calculating the estimated time to complete the translation at operation304. At operation306, the processing module206may retrieve translation coefficients associated with the translation parameters. At operation308, the processing module206may calculate an estimated translation time based on the translation parameters and the translation coefficients.

Once the estimated translation time is completed, the reporting module204may report the estimated translation time to the user at operation310. If the user would like to proceed with the service, the user may request a translation associated with the translation data be performed at operation312. At operation314, the translation module208may perform the translation. The actual translation time can be recorded at operation316. At operation318, the comparing module210compares the actual translation time to the estimated translation time. Based on the comparison performed by the comparing module210, the coefficient adjusting module212may revise the translation coefficients at operation320.

FIG. 4is a diagram of a method400for translating a document, in accordance with an example embodiment. The method400may be performed by processing logic that may comprise hardware (e.g., dedicated logic, programmable logic, microcode, etc.), software (such as run on a general-purpose computer system or a dedicated machine), or a combination of both. In one example embodiment, the processing logic resides at the translation time estimator200, as illustrated inFIG. 2.

The method400may be performed by the various modules discussed above with reference toFIG. 2. Each of these modules may comprise processing logic. The method illustrates a work cycle as a round-trip from receiving the assignment to uploading the completed package. The method400may commence at operation402as a task being assigned to a translator. The translator may log onto the portal at operation404, accept the task, and receive the package at operation406. At operation408, the translator may complete the translation. At operation410, the translator may log onto the portal and may then upload the package and complete the task at operation412.

FIG. 5-14show screenshots of a user interface to a software functionality that may be utilized to provide translation time estimates based on the analysis described above. The user may start by setting up different categories identified by a custom field and whichever tasks are used in that category. An estimated task duration may be displayed in hours, in a column against a relevant task. The basis of this calculation may change through the cost calculator on the fly and may compare the actual time against the estimated to help with refining future planning. A user may decide which types of work are relevant for his or her work and then create a custom field with pick list values relevant to the types of work. In this example, three types of work have been created: general translation work, legal translation work, and technical documentation. These are all added to a custom field named Product Category.

Different categories may mirror the values in the pick list that were added to the product category. The general category is a default category and may be used if none of the others are specified when creating the project. Conditions may be defined under which each set of tasks duration rules will be used. Referring to the legal category, the value “legal” can be added from the pick list presented. The rules may be set manually. There may be no default values provided so the administrator needs to agree as to what values to use for each type of work and how quickly, for example in seconds, they can be carried out for each task.

Various parameters that may be utilized to calculate time. The parameters may include a task type, such as translate, edit, proofread, correct errors, review comments, and task time. The task time is to provide a base time that can be used for additional time to prepare for work in addition to the act of translating itself, or as a base value to be used where the task is not based on the size of the document or number of words, for example. Thus, for example, the administrator could create a new rule for a review task where the only value populated is a task time of 1800 seconds and zero in every other column.

Match bands are an average time per word that it would take to complete the task based on a fixed amount of time per word per match value in the following example bands: Context TM, Repetitions, 100%, 95-99%, 85-94%, 75-84%, 50-74%, No Match. Once the analysis is complete, the duration column may be populated with an estimate of how long the work is expected to take, which enables the project manager to plan resources accordingly. Once the work is complete, the project manager can edit the recorded time for the task, allowing a useful feedback loop that can be used to refine the estimated values in the task duration rules for future planning. Then the two columns can be compared side by side and use the values for an instant comparison as well as in more detailed reporting. This may bring up the small dialog box where a revised number of hours can be manually entered.

FIG. 15illustrates an example computing system1500that may be used to implement an embodiment of the present invention. System1500ofFIG. 15may be implemented in the context of the application server140, the translation time estimator200, the network110, and the like. The computing system1500ofFIG. 15includes one or more processors1510and main memory1520. Main memory1520stores, in part, instructions and data for execution by processor1510. Main memory1520can store the executable code when the system1500is in operation. The system1500ofFIG. 15may further include a mass storage device1530, portable storage medium drive(s)1540, output devices1550, user input devices1560, a display system1570, and other peripheral devices1580.

The components shown inFIG. 15are depicted as being connected via a single bus1590. The components may be connected through one or more data transport means. Processor1510and main memory1520may be connected via a local microprocessor bus, and the mass storage device1530, peripheral device(s)1580, portable storage medium drive1540, and display system1570may be connected via one or more input/output (I/O) buses.

Mass storage device1530, which may be implemented with a magnetic disk drive or an optical disk drive, is a non-volatile storage device for storing data and instructions for use by processor1510. Mass storage device1530can store the system software for implementing embodiments of the present invention for purposes of loading that software into main memory1520.

Portable storage medium drive1540operates in conjunction with a portable non-volatile storage medium, such as a floppy disk, compact disk (CD) or digital video disc (DVD), to input and output data and code to and from the computer system1500ofFIG. 15. The system software for implementing embodiments of the present invention may be stored on such a portable medium and input to the computer system1500via the portable storage medium drive1540.

User input devices1560provide a portion of a user interface. User input devices1560may include an alphanumeric keypad, such as a keyboard, for inputting alphanumeric and other information, or a pointing device, such as a mouse, a trackball, stylus, or cursor direction keys. Additionally, the system1500as shown inFIG. 15includes output devices1550. Suitable output devices include speakers, printers, network interfaces, and monitors.

Display system1570may include a liquid crystal display (LCD) or other suitable display device. Display system1570receives textual and graphical information and processes the information for output to the display device.

Peripherals1580may include any type of computer support device to add additional functionality to the computer system. Peripheral device(s)1580may include a modem or a router.

The components contained in the computer system1500ofFIG. 15are those typically found in computer systems that may be suitable for use with embodiments of the present invention and are intended to represent a broad category of such computer components that are well known in the art. Thus, the computer system1500ofFIG. 15can be a personal computer (PC), hand held computing device, telephone, mobile computing device, workstation, server, minicomputer, mainframe computer, or any other computing device. The computer can also include different bus configurations, networked platforms, multi-processor platforms, and so forth. Various operating systems can be used, including UNIX, Linux, Windows, Macintosh OS, Palm OS, and other suitable operating systems.

The above description is illustrative and not restrictive. Many variations of the invention will become apparent to those of skill in the art upon review of this disclosure. The scope of the invention should, therefore, be determined not with reference to the above description, but instead should be determined with reference to the appended claims along with their full scope of equivalents. While the present invention has been described in connection with a series of embodiments, these descriptions are not intended to limit the scope of the invention to the particular forms set forth herein. It will be further understood that the methods of the invention are not necessarily limited to the discrete steps or the order of the steps described. To the contrary, the present descriptions are intended to cover such alternatives, modifications, and equivalents as may be included within the spirit and scope of the invention as defined by the appended claims and otherwise appreciated by one of ordinary skill in the art. One skilled in the art will recognize that the Internet service may be configured to provide Internet access to one or more computing devices that are coupled to the Internet service, and that the computing devices may include one or more processors, buses, memory devices, display devices, I/O devices, and the like. Furthermore, those skilled in the art may appreciate that the Internet service may be coupled to one or more databases, repositories, servers, and the like, which may be utilized in order to implement any of the embodiments of the invention as described herein. One skilled in the art will further appreciate that the term “content” comprises one or more of web sites, domains, web pages, web addresses, hyperlinks, URLs, text, pictures, and/or media (such as video, audio, and any combination of audio and video) provided or displayed on a web page, and any combination thereof.

While specific embodiments of, and examples for, the system are described above for illustrative purposes, various equivalent modifications are possible within the scope of the system, as those skilled in the relevant art will recognize. For example, while processes or steps are presented in a given order, alternative embodiments may perform routines having steps in a different order, and some processes, or steps may be deleted, moved, added, subdivided, combined, and/or modified to provide alternative or sub-combinations. Each of these processes or steps may be implemented in a variety of different ways. In addition, while processes or steps are at times shown as being performed in series, these processes or steps may instead be performed in parallel, or may be performed at different times.

From the foregoing, it will be appreciated that specific embodiments of the system have been described herein for purposes of illustration, but that various modifications may be made without deviating from the spirit and scope of the system. Accordingly, the system is not limited except as by the appended claims.