WO2018212931A1 - Object description - Google Patents

Object description Download PDF

Info

Publication number
WO2018212931A1
WO2018212931A1 PCT/US2018/028779 US2018028779W WO2018212931A1 WO 2018212931 A1 WO2018212931 A1 WO 2018212931A1 US 2018028779 W US2018028779 W US 2018028779W WO 2018212931 A1 WO2018212931 A1 WO 2018212931A1
Authority
WO
WIPO (PCT)
Prior art keywords
description
candidate
attribute
user
attributes
Prior art date
Application number
PCT/US2018/028779
Other languages
French (fr)
Inventor
Chin-Yew Lin
Jing Liu
Xi Chen
Jinpeng WANG
Original Assignee
Microsoft Technology Licensing, Llc
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 Microsoft Technology Licensing, Llc filed Critical Microsoft Technology Licensing, Llc
Publication of WO2018212931A1 publication Critical patent/WO2018212931A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/186Templates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0603Catalogue ordering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0241Advertisements
    • G06Q30/0277Online advertisement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0623Item investigation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/01Social networking

Definitions

  • a conventional natural language generating system can automatically generate natural language expression according to structured data (e.g., a data set consisting of names and values of product attributes).
  • structured data e.g., a data set consisting of names and values of product attributes.
  • an object description is different from usual natural language expression because a friendly object description requires interpretation of the relative importance degree among the attributes of the object while maintaining accuracy at the same time.
  • implementations of the subject matter described herein provide a method, an apparatus and a computer program product for describing an object.
  • the method may learn from training data a template for describing an object, and obtain information about which attributes should be included in the description and how these attributes are ordered and expressed in the description. Once respective values of one or more attributes of an object to be described are obtained, the method may generate a description for the object based on the respective values of the one or more attributes, the learnt template and the obtained information.
  • the generated description may include a value of a relatively important attribute in the one or more attributes.
  • the method may present the generated description to a user in an editable manner.
  • FIG. 1 illustrates a block diagram of a system 100 in which implementations of the subject matter described herein can be implemented
  • FIG. 2 illustrates an example of training data consisting of parallel data according to an implementation of the subject matter described herein;
  • FIG. 3A illustrates a schematic diagram of a presented and selected candidate description according to an implementation of the subject matter described herein;
  • Fig. 3B illustrates a schematic diagram of an example user interface for presenting the selected candidate description according to an implementation of the subject matter described herein;
  • FIG. 3C illustrates a schematic diagram of a presented element and its alternatives according to an implementation of the subject matter described herein;
  • FIG. 4 illustrates a block diagram of a description generating sub-system according to an implementation of the subject matter described herein;
  • FIG. 5 A illustrates an example of a template for describing an object according to an implementation of the subject matter described herein;
  • Fig. 5B illustrates an example of a candidate description for an object according to an implementation of the subject matter described herein;
  • FIG. 6 illustrates a flow chart of a method for describing an object according to an implementation of the subject matter described herein;
  • FIG. 7 illustrates a flow chart of a method for generating the description for the object according to an implementation of the subject matter described herein;
  • FIG. 8 illustrates a block diagram of a computing system/server adapted to implement one or more implementations of the subject matter described herein.
  • the term “includes” and its variants are to be read as open terms that mean “includes, but is not limited to.”
  • the term “based on” is to be read as “based at least in part on.”
  • the term “one implementation” and “an implementation” are to be read as “at least one implementation.”
  • the term “another implementation” is to be read as “at least one other implementation.”
  • the terms “first,” “second,” and the like may refer to different or same objects. The following text may also contain other explicit or implicit definitions. Unless otherwise specified, definitions of terms are consistent throughout the description.
  • the term "object” may refer to any target to be described, including but not limited to an entity, an event, a person and the like.
  • the term “attribute” may refer to one or more properties of the target to be described.
  • an object may be a product to be sold in an online shop, for example, a computer, a mobile phone, a book, food and the like.
  • Attributes of a computer may include for example brand name, processor model, memory type and capacity, screen size, hard drive size and the like.
  • the object may also be an event, such as a sports game, a conference, an important activity and so on.
  • a sports game is taken as an example.
  • Attributes of the sports game may include for example game item, names of players or teams attending the game, game time, game venue, game result and so on.
  • the object may also be a person in the social website for whom a profile is to be generated, and attributes of the person may include for example gender, age, occupation, hobby, specialty and so on.
  • the object may also be a company and weather.
  • the scheme can obtain information from training data consisting of parallel data to determine which attributes should be included in the description and determine how these attributes should be ordered and expressed in the description.
  • the scheme can ensure grammatical correctness of the generated description through the application of the template and ensure semantic correctness of the generated description by considering a preference of the template for a value of an attribute of the object.
  • the scheme needs less manual intervention and can significantly improve the performance for generating object description. Therefore, this scheme can be extensively applied to many fields, such as E-commerce, social network, news games briefing, smart speech assistant, weather report generation, medical examination report generation, finance report generation and so on.
  • Fig. 1 illustrates a block diagram of a system 100 in which implementations of the subject matter described herein can be implemented.
  • the system 100 may be used to provide a user with a description for an object.
  • the system 100 generally may include an attribute obtaining module 110, a description generating subsystem 120 and a description presenting module 130.
  • the structure and functionality of the system 100 are described only for the purpose of illustration without suggesting any limitations to the scope of the subject matter described herein.
  • the subject matter described herein can be embodied with a different structure and/or functionality.
  • some or all of the modules included in the system 100 can be implemented by software, hardware, firmware, and/or any suitable combination of the foregoing.
  • the attribute obtaining module 110 may be configured to obtain an attribute list 101 of an object to be described.
  • the attribute obtaining module 110 may obtain values (for example, the attribute list 101) of one or more attributes of the object to be described input by the user.
  • the attribute list 101 may include respective names and values of the one or more attributes of the to-be-described object.
  • its attributes may include for example processor brand, hardware platform, color, series, user comments, processor model, memory type, operating system, number of processors, hard drive size, graphical processor model and so on.
  • its attributes may include for example game item, names of players or teams attending the game, game time, game venue, game result and so on.
  • its attributes may include for example gender, age, occupation, hobby, specialty and so on.
  • the attribute obtaining module 110 may obtain values of the one or more attributes of the object to be described in other manners.
  • the attribute obtaining module 110 may obtain an input from other systems, or may automatically obtain the values of the one or more attributes of the object to be described in a manner of crawling a webpage.
  • the description generating subsystem 120 may generate the description 130 for the object to be described based on the attribute list 101 of the object obtained by the attribute obtaining module 110.
  • the description generating subsystem 120 may obtain information from training data 102 consisting of parallel data to determine which attributes should be included in the description and determine how these attributes should be ordered and expressed in the description. Then, the description generating subsystem 120 may generate the description 130 for the object based on the attribute list 101 and the information obtained from the training data 102.
  • the term "parallel data" may refer to different types of data describing a same object.
  • the training data 102 consisting of the parallel data may include a historical description for the object and an attribute list corresponding to the historical description.
  • the training data 102 may include a historical description for a product, such as a computer, and an attribute list of the computer corresponding to the historical description.
  • the attribute list of the computer may include for example values of the following attributes: processor brand, hardware platform, color, series, user comments, processor model, memory type, operating system, number of processors, hard drive size, graphical processor model and so on.
  • the training data 102 may include a historical description for a tennis match and an attribute list of the tennis match corresponding to the historical description.
  • the attribute list of the tennis match may include for example values of the following attributes: names of players attending the match, match time, match venue, match result and so on.
  • Fig. 2 shows an example of the training data 102 according to an implementation of the subject matter described herein, wherein a computer is taken as an example of the object to be described.
  • the training data 102 may include a description 210 and an attribute list 220.
  • the description 210 may be a historical description for the computer, and the attribute list 220 may include names and corresponding values of one or more attributes of the computer corresponding to the description 210.
  • the description generating subsystem 120 may determine one or more templates for describing the object based on the training data 102 consisting of the parallel data.
  • each of the one or more templates may include at least one field for filling at least part of the one or more attributes.
  • the one or more templates for describing the object will be described in more detail below with reference to Fig. 4 and Fig. 5A.
  • the description generating subsystem 120 may obtain, based on the determined one or more templates, information about which attributes should be included in the description and how these attributes should be ordered and expressed in the description.
  • the information about which attributes should be included in the description and determine how these attributes should be ordered and expressed in the description may be at least in part designated by the user.
  • the description generating subsystem 120 may generate one or more candidate descriptions (e.g., candidate descriptions 103i, 1032, 1033 ... as shown in Fig. 1) for the object based on the determined one or more templates and the obtained information about which attributes should be included in the description and how these attributes should be ordered and expressed in the description.
  • candidate descriptions e.g., candidate descriptions 103i, 1032, 1033 ... as shown in Fig. 1
  • the description generating subsystem 120 may determine respective scores associated with the generated one or more candidate descriptions, in which a higher score may indicate that a corresponding candidate description may be of higher quality (e.g., friendliness, diversity and/or similarity with a reference description), while a lower score may indicate that a corresponding candidate description may be of lower quality.
  • a higher score may indicate that a corresponding candidate description may be of higher quality (e.g., friendliness, diversity and/or similarity with a reference description)
  • a lower score may indicate that a corresponding candidate description may be of lower quality.
  • the description generating subsystem 120 may rank the one or more candidate descriptions based on the scores.
  • the description presenting module 130 may be configured to present the generated descriptions to the user.
  • the description presenting module 130 may present the user with the generated one or more candidate descriptions (for example, candidate descriptions 103 i, 1032 ... as shown in Fig. 1) so that the user can select a desired one from them.
  • Each of the one or more candidate descriptions for example may only involve at least part of the one or more attributes of the object.
  • the description presenting module 130 may present the ranked one or more candidate descriptions to the user, where a candidate description (e.g., candidate description 103i) with a relatively high score may be presented at a higher position than a candidate description (e.g., candidate description 103 2 ) with a relatively low score.
  • the description presenting module 130 may only present to the user a description with the highest score among the one or more candidate descriptions (e.g., only presenting the candidate description 103i).
  • the description presenting module 130 may further present the selected description to the user.
  • the description may consist of one or more elements.
  • an "element" may include but not limited to a word, a sentence, a table, a picture and/or any part of the description.
  • the description presenting module 130 may present each of the elements in the selected description individually to the user.
  • Fig. 3A illustrates a schematic diagram of a presented and selected candidate description 103 i according to an implementation of the subject matter described herein.
  • the description presenting module 130 may present each of the elements (such as elements 310, 320 and 330) in the candidate description 1031 to the user individually.
  • the description presenting module 130 may further present a respective alternative prompt (such as alternative prompts 311, 321 and 331) for each of the elements.
  • each of the alternative prompts 311, 321 and 331 may indicate that there may be one or more alternatives to each of the elements 310, 320 and 330.
  • the one or more alternatives for example come from another one (e.g., candidate descriptions 1032, and/or 103 3 ) of the one or more candidate descriptions other than the selected candidate description 103 L
  • the description presenting module 130 may present the selected candidate description (e.g., candidate description 103i) to the user in an editable manner.
  • the description presenting module 130 may allow the user to directly edit each of the elements in the candidate description 103 i as shown in Fig. 3 A, such as inserting or deleting a character, adjusting the order of characters and so on.
  • the description presenting module 130 may correspondingly update other candidate descriptions (e.g., candidate descriptions 1032 and 103 3 ) based on the editing of the candidate description 103 i by the user. For example, when the user edits a certain element in the candidate description 103i, the description presenting module 103 may update elements in other candidate descriptions associated with the element.
  • candidate descriptions e.g., candidate descriptions 1032 and 103 3
  • the template associated with the candidate description 103 i may be updated.
  • the template associated with the candidate description 1031 may be updated. With the template being updated, the editing of the candidate description 103 i by the user can be at least in part reflected in subsequent description generation.
  • Fig. 3B illustrates a schematic diagram of an example user interface 104 for presenting the selected candidate description 103 i according to an implementation of the subject matter described herein.
  • the user interface 104 in Fig. 3B shows a specific example of the candidate description 103 i and an attribute list 301 corresponding to the specific example.
  • the attribute list 301 may be part of the attribute list 101 as shown in Fig.
  • an element 310 in the candidate description 103 i may include a filled attribute value 302 (namely, "8GB"), and for example, the attribute value 302 corresponds to an attribute item 303 (namely, an attribute item with the name of "memory capacity") in the attribute list 301.
  • the attribute value 302 may be shown as selectable (e.g., displayed with an underline).
  • the attribute item 303 in the attribute list 301 corresponding to the attribute value 302 may be emphatically displayed (e.g., highlighted). This can assist the user in checking quality of the generated description (e.g., the description associated with the attribute item 303).
  • a description presenting module 130 may further present the element 310 and its alternatives.
  • Fig. 3C illustrates a schematic diagram of a presented element 310 and its alternatives according to an implementation of the subject matter described herein.
  • the element 310 may have n alternative elements 3 lOi, 310 2 ... 310 n .
  • the n alterative elements for example come from other candidate descriptions (e.g., candidate descriptions 1032, 1033 and the like) in the one or more candidate descriptions other than the selected candidate description 103 L
  • the user may select one of the n alternative elements to replace the current element 310.
  • the n alternative elements may be ranked according to their quality (for example, as will be further described in the following, a sentence including fewer unidentified attribute fields may be considered as of higher quality).
  • the system 100 may further include a user feedback module (not shown in Fig. 1).
  • the user feedback module may be configured to receive, from the user, information such as values of one or more attributes of the object to be described, an intention or a preference of the user for the description of the object (e.g., which attributes should be included in the description and/or how these attributes should be ordered and expressed in the description), information about the editing of the generated description and/or at least one element included in the description by the user, and/or information about the evaluation of the user on the generated description and/or at least one element included in the description.
  • the user feedback module may apply the information received from the user to at least one of the attribute obtaining module 110, the description generating subsystem 120 and the description presenting module 130 to facilitate the generation of the description for the object.
  • the description presenting module 130 may update, based on the information received from the user feedback module, the one or more candidate descriptions including the edited description.
  • the description generating subsystem 120 may update, based on the information received from the user feedback module, the template associated with the edited description accordingly.
  • Fig. 4 illustrates a block diagram of a description generating subsystem 120 according to an implementation of the subject matter described herein.
  • the description generating subsystem 120 may include a template determining module 410, an information determining module 420, a candidate description generating module 430 and a candidate description ranking module 440.
  • the structure and functionality of the description generating subsystem 120 are described only for the purpose of illustration without suggesting any limitations to the scope of the subject matter described herein.
  • the subject matter described herein can be embodied with a different structure and/or functionality.
  • some or all of the modules included in the description generating subsystem 120 can be implemented by software, hardware, firmware, and/or any suitable combination of the foregoing.
  • the process of generating the description for the object may be divided into a learning phase and a generation phase.
  • the learning phase may be performed offline in advance to improve the processing performance.
  • the template determining module 410 may determine at least one template for describing the object based on training data 102 about the object to be described.
  • the training data 102 may comprise parallel data.
  • the training data 102 may include a historical description for the object and an attribute list corresponding to the historical description.
  • An example of the training data 102 is as shown in Fig. 2, wherein the training data 102 may include the description 210 and the attribute list 220.
  • the description 210 may be a historical description for a computer, and the attribute list 220 may include respective names and values of attributes of the computer corresponding to the description 210.
  • the template determining module 410 may first match the historical description (e.g., description 210) with its corresponding attributes (e.g., attribute list 220). Specifically, for example, for each of the attributes in the attribute list 220, the template determining template 410 may look up the description 210 for a position matching the value of the attribute, and use the position as a field for filling another value of the attribute.
  • Fig. 5 A illustrates an example of a template 510 for describing an object according to an implementation of the subject matter as described herein (in which a computer serves as the object to be described). As shown in Fig.
  • [Memory Size]” may represent a field for filling a value of an attribute named "Memory Size”
  • "[Processor]” may represent a field for filling a value of an attribute named “Processor”
  • “[Operating System]” may represent a field for filling a value of an attribute named "Operating System”.
  • the attribute name for matching may only include for example those attribute names in the attribute list 220, thereby ensuring the accuracy of the extracted templates.
  • the attribute names for matching may be expanded to include an attribute name in the attribute list of a similar object (e.g., a tablet, a desktop, a mobile phone or the like) to recognize more fields for filling values of attributes. This may substantially improve the efficiency for extracting templates. In this way, the template determining module 410 can obtain many candidate templates.
  • the template determining module 410 may further select, from the candidates templates, a relatively high-quality candidates template as the final output template.
  • the template determining module 410 may divide each of the candidate templates into sentences. For example, some sentences might include an unidentified attribute field (e.g., an unidentified attribute name or value). As shown in Fig. 5 A, for example, "D520" is an unidentified attribute field, which consists of a capitalized letter and some digits.
  • the template determining module 410 may discard a sentence, which includes more than a threshold number (e.g., the threshold number is 1) of unidentified attribute fields, to obtain a high-quality template. In this way, the template determining module 410 can output one or more templates with relatively high quality.
  • a threshold number e.g., the threshold number is 1
  • the information determining module 420 may determine, based on the one or more templates from the template determining module 410, information about which attributes should be included in the description and how these attributes should be ordered and expressed in the description (also called as "first information" herein).
  • the information determining module 420 may learn a respective importance degree for each of the one or more attributes of the object, to determine which attributes in the one or more attributes should be included in the description.
  • an importance degree of an attribute may be quantized into a prior probability of the attribute, which can be defined as follows:
  • ⁇ j Mention(a. j ) ' where a t represents the i attribute involved in the one or more templates, and Mention(ai) represents times of occurrence of the attribute a t in the one or more templates.
  • the information determining module 420 may learn a dependency relationship among these attributes to be included in the description, to determine an order of these attributes in the description.
  • the attribute "CPU” may be usually mentioned in the first sentence, and the attribute "Hard Drive Rotation Speed” usually follows the attribute "Hard Drive Size”.
  • the dependency relationship may be quantized as a conditional probability of the attribute, which can be defined as follows:
  • Co— occurrence ⁇ a ⁇ aj represents times of occurrence of attributes a t and cij in adj acent sentences of the one or more templates.
  • the one or more templates for describing the object and the first information about which attributes should be included in the description and how these attributes should be ordered and expressed in the description can be obtained, which is represented as the training result 401 as shown in Fig. 4.
  • the candidate description generating module 430 may generate one or more candidate descriptions for the object based on input data 402 and the training result 401.
  • the input data 402 may include an attribute list of the object to be described.
  • the input data 402 may include the attribute list 101 as shown in Fig. 1, and it may be input by the user or obtained in other manners.
  • the input data 402 may include respective names and values of one or more attributes of the object to be described. Table 1 show an example of the input data 402.
  • the candidate description generating module 430 may apply, based on the first information in the training result 401, values of at least part of the one or more attributes to the one or more templates in the training results 401, to generate one or more candidate description for the object.
  • Fig. 5B illustrates an example of a candidate description 520 for an object according to an implementation of the subject matter as described herein, where the candidate description 520 is generated based on the input data 402 as shown in Table 1 and the template 510 as shown in Fig. 5 A.
  • the attributes can be ranked in advance by applying beam search technology based on dependency relationship among the attributes or based on the respective importance degrees of the attributes for generating one or more candidate descriptions for the object, to improve the processing efficiency.
  • the candidate description ranking module 440 may rank the generated one or more candidate descriptions. In some implementations, the candidate description ranking module 440 may determine respective scores associated with the one or more candidate descriptions, and then rank the one or more candidate descriptions based on the scores.
  • the candidate description ranking module 440 may determine a respective score associated with each of the one or more candidate description based on at least one of the following: information (also called “the second information” herein) about the attribute associated with the candidate description; information (also called “the third information” herein) about elements included in the candidate description; and information (also called “the fourth information” herein) about the template associated with the candidate description.
  • the second information may include the number of attributes involved in the candidate description and a sum of prior probabilities (as shown by formula (1)) of the attributes involved in the candidate description.
  • the third information may include the number of elements included in the candidate description (e.g., the number of sentences, the number of sentences, and so on) and a structural score (which will be described below in more detail) associated with the candidate description.
  • the fourth information may include a preference (which will be described in more detail below) of the template associated with the candidate description for a value of an attribute and the number of unidentified attribute fields included in the template.
  • the third information may include the structural score associated with the candidate description.
  • the candidate description is represented as d, which consists of n sentences, and the n sentences are represented as (S-L, s 2 ,—, s n ).
  • the 1 TH sentence s t in the candidate description d may involve ⁇ s t ⁇ attributes and these attributes may be represented as t l , a i 2 , ... , ⁇ i , ⁇ Si ⁇ ) , where ⁇ ⁇ ; - represents the j" 1 attribute involved in the element s t .
  • the sentence s t only depends on the sentence preceding it.
  • the structural score associated with the candidate description d can be defined as follows:
  • P(s i , s i _ 1 ) represents a relationship between the sentence s t and the sentence s ⁇ , and it may be quantized in multiple different manners.
  • P(Si, s ⁇ ) may be equal to a sum of quantized values of the dependency relationship among the attributes involved in the candidate description, namely, ⁇ ,/ c ⁇ P( a £ j
  • P(s£, Si-i) may be equal to the maximum or minimum one of the quantized values of the dependency relationship among the attribute involved in the candidate description.
  • the fourth information many include the preference of the template associated with the candidate description for a value of an attribute.
  • the context of the template is strongly related to a value of the attribute "Memory Size".
  • the template might be more suitable for a computer whose memory size is 8GB or 16GB instead of 1GB. That is, the template may have the preference for the value of a certain attribute.
  • the preference of template t for value v a of attribute a may be defined as follows:
  • ValPref(v a , t) ⁇ flower.
  • eV(t) (l - Dist(v a , Vi))P(Vi) Formula (4) where V(t) represents values of all of the attributes extracted from the historical description corresponding to the template t during the determining of the template t, and P(v;) represents a probability of the attribute value v t occurring in V(t).
  • Dist(i; a , v ) may represent an editing distance between the attribute values v a and ⁇ (referring to the minimum number of editing operations needed for converting one string to another string).
  • Dist(i; a , v ) may be defined as f7 J ⁇ Vl L in) , where v 1 ⁇ and v 117 ⁇ respectively represent an upper limit and a lower limit of the value of the attribute a in the training data, and
  • Dist(i; a , Vi) may also be quantized in other manners besides the above example manners, and the scope of the subject matter described herein is not limited in this aspect.
  • the candidate description ranking module 440 may determine the score associated with the candidate description d based on one or more of the first, second, third and/or fourth information. Values of these factors (that are, one or more of the first, second, third and/or fourth information) for determining the score may be represented as (A- fi > — ⁇ fm), where m represents the number of factors for determining the score. In some embodiments, for example as shown in formula (3), different structural scores calculated based on different quantizing manners of P(Si, s ⁇ ) may serve as different factors. Hence, the score associated with the candidate description d may be defined as:
  • the candidate description ranking module 440 may use a reference description for the object as the training data.
  • a neural network can be applied to determine a respective weight for each of the factors, to determine the score associated with the candidate description d.
  • the term a "reference description" refer to a predetermined description of relatively high quality.
  • the reference description may be selected from historical descriptions for the object (for example, the description 210 as shown in Fig. 2). In some other implementations, the reference description may be different from the historical descriptions for the object.
  • the candidate description ranking module 440 may calculate the score associated with the candidate description d based on similarity between the candidate description d and the reference description, where a higher score may indicate that the candidate description d and the reference description have higher similarity and thus indicates higher quality of the candidate description d, while a lower score may indicate that the candidate description d and the reference description have lower similarity and thus indicates poorer quality of the candidate description d.
  • the candidate description ranking module 440 can apply a Learning to Rank (LTR) algorithm to rank the one or more candidate descriptions.
  • LTR Learning to Rank
  • the candidate description ranking module 440 may output to the description presenting module 130 output data 403 as shown in Fig. 1 for presentation to the user.
  • the output data 403 may include the ranked one or more candidate descriptions for selection by the user.
  • the output data 403 may only include a description with the highest score among the one or more candidate descriptions.
  • Fig. 6 illustrates a flow chart of a method 600 for describing an object according to an implementation of the subject matter described herein.
  • the method 600 can be executed by the system 100 as shown in Fig. 1.
  • the method 600 will be described below with reference to the system 100 as shown in Fig. 1. It is to be understood that method 600 may further include additional actions not shown and/or omit the shown actions.
  • the scope of the subject matter described herein is not limited in this aspect.
  • the system 100 (e.g., the attribute obtaining module 110) obtains respective values of one or more attributes of an object to be described.
  • the system 100 (e.g., the description generating subsystem 120) generates a description for the object based on the respective values of the one or more attributes, the description including a value of at least one attribute of the one or more attributes.
  • Fig. 7 illustrates a flow chart of a method 700 for generating the description for the object according to an implementation of the subject matter described herein.
  • the method 700 for example may be implemented as an exemplary implementation of the block 620 as shown in Fig. 6.
  • the method 700 can be executed by the description generating subsystem 120 as shown in Fig. 1 or Fig. 4. It is to be understood that method 700 may further include additional actions not shown and/or omit the shown actions.
  • the scope of the subject matter described herein is not limited in this aspect.
  • the description generating subsystem 120 determines, based on at least one template for describing the object, first information related to the at least one attribute.
  • the at least one template is determined based on training data related to the object.
  • the training data may include a historical description for the obj ect and values of attributes of the obj ect corresponding to the historical description, and the generated at least one template includes a field for filling the value of at least part of the one or more attributes.
  • the description generating subsystem 120 may determine the at least one attribute to be included in the description by determining a respective importance degree for each of the one or more attributes.
  • the description generating subsystem 120 may further determine an order associated with the at least one attribute by determining a dependency relationship among the at least one attribute, the at least one attribute being included in the description in the order.
  • the description generating subsystem 120 generates, at least based on the at least one template and the first information, at least one candidate description for the object.
  • the method 600 proceeds to block 630, where the system 100 (e.g., the description presenting module 130) presents the description for the object to a user in an editable manner.
  • the system 100 e.g., the description presenting module 130
  • the description presenting module 130 may the at least one candidate description to the user, the description being included in the at least one candidate description. Then, in response to the user editing the description, updating the at least one candidate description.
  • the description generating subsystem 120 may further determine, based on similarity between the at least one candidate description and a reference description for the object, at least one score associated with the at least one candidate description, and rank the generated at least one candidate description based on the at least one score.
  • the description presenting module 130 may present the ranked at least one candidate description to the user.
  • the description generating subsystem 120 may determine the at least one score associated with the at least one candidate description based on at least one of the following: second information about the attribute of the object associated with at least one candidate description; third information about at least one element included in the at least one candidate description; and fourth information about at least one template associated with the at least one candidate description.
  • the fourth information includes a preference of the template for a value of the attribute.
  • the description presenting subsystem 130 may update the at least one candidate description.
  • the presented description may include one or more elements.
  • the method 600 may further include updating a template associated with the description in response to the user editing at least one of the one or more elements.
  • the method 600 may further comprise, in response to receiving an indication that the user is not satisfied with the at least one element, presenting at least one alternative to the at least one element to the user.
  • the at least one alternative is from another one of the at least one candidate description other than the description selected by the user.
  • the scheme for describing the object can obtain information from the training data consisting of parallel data to determine which attributes should be included in the description and determine how these attributes are ordered and expressed in the description.
  • the scheme can ensure grammatical correctness of the generated description through the application of the template and ensure semantic correctness of the generated description by considering the template's preference for values of attributes of the object.
  • the scheme needs less manual intervention and can prominently improve the performance of generating object description.
  • FIG. 8 shows a block diagram of an example computing system/server 800 in which one or more implementations of the subject matter described herein can be implemented.
  • the system 100 as shown in Fig. 1 and the description generating subsystem 120 as shown in Fig. 4 can be implemented by the computing system/server 800.
  • the computing system/server 800 as shown in FIG. 8 is only an example, which should not be construed as any limitation to the function and scope of use of the implementations of the subject matter described herein.
  • the computing system/server 800 is in a form of a general- purpose computing device.
  • Components of the computing system/server 800 may include, but are not limited to, one or more processors or processing units 800, a memory 820, one or more input devices 830, one or more output devices 840, storage 850, and one or more communication units 860.
  • the processing unit 800 may be a real or a virtual processor and is capable of performing various processes in accordance with a program stored in the memory 820. In a multi-processing system, multiple processing units execute computer- executable instructions to increase processing power.
  • the computing system/server 800 typically includes a plurality of computer media. Such media may be any available media that is accessible by the computing system/ server 800, including volatile and non-volatile media, removable and non-removable media.
  • the memory 820 may be volatile memory (e.g., registers, cache, a random-access memory (RAM)), non-volatile memory (e.g., a read only memory (ROM), an electrically erasable programmable read only memory (EEPROM), a flash memory), or some combination thereof.
  • the storage 850 may be removable or non-removable, and may include machine readable medium such as flash drives, magnetic disks or any other medium which can be used to store information and which can be accessed within the computing system/server 800.
  • the computing system/server 800 may further include other removable/nonremovable, volatile/non-volatile computing system storage media.
  • a disk driver for reading from or writing to a removable, non-volatile disk (e.g., a "floppy disk")
  • an optical disk driver for reading from or writing to a removable, nonvolatile optical disk can be provided.
  • each driver can be connected to the bus by one or more data medium interfaces.
  • the memory 820 may include at least one program product having a set (e.g., at least one) of program modules that are configured to carry out the functions of various implementations described herein. For instance, when one or more modules in system 100 or the description generating subsystem 120 are implemented as software modules, they can be stored in the storage 820 and when accessed and operated by the processing unit 800, they can implement the function and/or method described herein, such as the method 600 or 700.
  • the input unit(s) 830 may be one or more of various different input devices.
  • the input unit(s) 839 may include a user device such as a mouse, keyboard, trackball, etc.
  • the communication unit(s) 860 enables communication over communication medium to another computing entity.
  • functionality of the components of the computing system/server 800 may be implemented in a single computing machine or in multiple computing machines that are able to communicate over communication connections.
  • the computing system/server 800 may operate in a networked environment using logical connections to one or more other servers, network personal computers (PCs), or another common network node.
  • communication media include wired or wireless networking techniques.
  • the computing system/server 800 may also communicate, as required, with one or more external devices (not shown) such as a storage device, a display device, and the like, one or more devices that enable a user to interact with the computing system/server 800, and/or any device (e.g., network card, a modem, etc.) that enables the computing system/server 800 to communicate with one or more other computing devices. Such communication may be performed via an input/ output (I/O) interface(s) (not shown).
  • I/O input/ output
  • the functionally described herein can be performed, at least in part, by one or more hardware logic components.
  • illustrative types of hardware logic components include Field-Programmable Gate Arrays (FPGAs), Application-specific Integrated Circuits (ASICs), Application-specific Standard Products (ASSPs), System-on-a-chip systems (SOCs), Complex Programmable Logic Devices (CPLDs), and the like.
  • Program code for carrying out methods of the subject matter described herein may be written in any combination of one or more programming languages. These program codes may be provided to a processor or controller of a general purpose computer, special purpose computer, or other programmable data processing apparatus, such that the program codes, when executed by the processor or controller, cause the functions/operations specified in the flowcharts and/or block diagrams to be implemented.
  • the program code may execute entirely on a machine, partly on the machine, as a stand-alone software package, partly on the machine and partly on a remote machine or entirely on the remote machine or server.
  • a machine readable medium may be any tangible medium that may contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.
  • the machine readable medium may be a machine readable signal medium or a machine readable storage medium.
  • a machine readable medium may include but not limited to an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing.
  • machine readable storage medium More specific examples of the machine readable storage medium would include an electrical connection having one or more wires, a portable computer diskette, a hard drive, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.
  • RAM random access memory
  • ROM read-only memory
  • EPROM or Flash memory erasable programmable read-only memory
  • CD-ROM portable compact disc read-only memory
  • magnetic storage device or any suitable combination of the foregoing.
  • a computer-implemented apparatus comprising a processing unit and a memory.
  • the memory is coupled to the processing unit and stores instructions for execution by the processing unit.
  • the instructions when executed by the processing unit, cause the apparatus to perform actions.
  • the actions comprise: obtaining respective values of one or more attributes of an object to be described; generating a description for the object based on the respective values of the one or more attributes, the description including a value of at least one attribute of the one or more attributes; and presenting the description for the object to a user in an editable manner.
  • generating the description for the object comprises: determining, based on at least one template for describing the object, first information related to the at least one attribute, the at least one template being determined based on training data related to the object; and generating, at least based on the at least one template and the first information, at least one candidate description for the object.
  • determining the first information comprises: determining the at least one attribute to be included in the description by determining a respective importance degree for each of the one or more attributes; and determining an order associated with the at least one attribute by determining a dependency relationship among the at least one attribute, the at least one attribute being included in the description in the order.
  • presenting the description for the object to the user comprises: presenting the at least one candidate description to the user, the description being included in the at least one candidate description; and in response to the user editing the description, updating the at least one candidate description.
  • the description includes one or more elements
  • THE actions further comprise: in response to the user editing at least one of the one or more elements, updating a template associated with the description.
  • presenting the at least one candidate description to the user comprises: determining, based on similarity between the at least one candidate description and a reference description for the object, at least one score associated with the at least one candidate description; ranking the at least one candidate description based on the at least one score; and presenting the ranked at least one candidate description to the user.
  • determining the at least one score associated with the at least one candidate description comprises determining the at least one score based on at least one of the following: second information about an attribute of the object associated with the at least one candidate description; third information about at least one element included in the at least one candidate description; and fourth information about at least one template associated with the at least one candidate description.
  • the fourth information includes a preference of the template for a value of the attribute.
  • the actions further comprise: in response to receiving an indication that the user is not satisfied with the at least one element, presenting at least one alternative to the at least one element to the user.
  • the at least one alternative is from another one of the at least one candidate description other than the description.
  • a computer-implemented method comprises: obtaining respective values of one or more attributes of an object to be described; generating a description for the object based on the respective values of the one or more attributes, the description including a value of at least one attribute of the one or more attributes; and presenting the description for the object to a user in an editable manner.
  • generating the description for the object comprises: determining, based on at least one template for describing the object, first information related to the at least one attribute, the at least one template being determined based on training data related to the object; and generating, at least based on the at least one template and the first information, at least one candidate description for the object.
  • determining the first information comprises: determining the at least one attribute to be included in the description by determining a respective importance degree for each of the one or more attributes; and determining an order associated with the at least one attribute by determining a dependency relationship among the at least one attribute, the at least one attribute being included in the description in the order.
  • presenting the description for the object to the user comprises: presenting the at least one candidate description to the user, the description being included in the at least one candidate description; and in response to the user editing the description, updating the at least one candidate description.
  • the description includes one or more elements
  • the method further comprises: in response to the user editing at least one of the one or more elements, updating a template associated with the description.
  • presenting at least one candidate description to the user comprises: determining, based on similarity between the at least one candidate description and a reference description for the object, at least one score associated with the at least one candidate description; ranking the at least one candidate description based on the at least one score; and presenting the ranked at least one candidate description to the user.
  • determining the at least one score associated with the at least one candidate description comprises determining the at least one score based on at least one of the following: second information about an attribute of the object associated with the at least one candidate description; third information about at least one element included in the at least one candidate description; and fourth information about at least one template associated with the at least one candidate description.
  • the fourth information includes a preference of the template for a value of the attribute.
  • the method further comprises: in response to receiving an indication that the user is not satisfied with the at least one element, presenting at least one alternative to the at least one element to the user.
  • the at least one alternative is from another one of the at least one candidate description other than the description.
  • a computer program product is tangibly stored on a transitory computer-readable medium and comprises machine-executable instructions, the machine-executable instructions, when executed by an apparatus, enabling the apparatus to execute actions of the method according to the second aspect.

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Finance (AREA)
  • Accounting & Taxation (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (AREA)
  • Health & Medical Sciences (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Game Theory and Decision Science (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

Embodiments of the subject matter described herein relate to a method, an apparatus and a computer product for describing an object. Once respective values of one or more attributes of an object to be described are obtains, the method may generate a description for the object based on the respective values of the one or more attributes. The generated description may include a value of at least one attribute of the one or more attributes. In addition, the method may present the generated description to the user in an editable manner.

Description

OBJECT DESCRIPTION
BACKGROUND
[0001] In many applications, such as E-commerce, social websites, event (e.g., sports games) live broadcast and so on, it is usually required to generate a description for an object according to a set of attributes of the object. For example, in an E-commerce application, it is usual to present a description for a product on a web page, so that the customer can better understand the properties of the product. Typically, the quality of the product description may affect the sales of the product. As another example, in a social website application, it is desirable to generate a profile for a person based on information about the person. In a sports games live broadcast application, it is desirable to automatically generate news reports for a sports game based on data statistics of the sports game.
[0002] A conventional natural language generating system can automatically generate natural language expression according to structured data (e.g., a data set consisting of names and values of product attributes). However, an object description is different from usual natural language expression because a friendly object description requires interpretation of the relative importance degree among the attributes of the object while maintaining accuracy at the same time.
SUMMARY
[0003] The Inventor has realized that the generation of a description for an object usually has two challenges: determining which attributes should be included in the description; and determining how these attributes should be ordered and expressed in the description. Accordingly, implementations of the subject matter described herein provide a method, an apparatus and a computer program product for describing an object. According to implementations described herein, the method may learn from training data a template for describing an object, and obtain information about which attributes should be included in the description and how these attributes are ordered and expressed in the description. Once respective values of one or more attributes of an object to be described are obtained, the method may generate a description for the object based on the respective values of the one or more attributes, the learnt template and the obtained information. The generated description may include a value of a relatively important attribute in the one or more attributes. In addition, the method may present the generated description to a user in an editable manner.
[0004] This Summary is provided to introduce a selection of concepts that will be further described in Detailed Description of Embodiments below. This Summary is not intended to identify key features or essential features of the subject matter described herein or limit the scope of the subject matter described herein.
BRIEF DESCRIPTION OF DRAWINGS
[0005] Fig. 1 illustrates a block diagram of a system 100 in which implementations of the subject matter described herein can be implemented;
[0006] Fig. 2 illustrates an example of training data consisting of parallel data according to an implementation of the subject matter described herein;
[0007] Fig. 3A illustrates a schematic diagram of a presented and selected candidate description according to an implementation of the subject matter described herein;
[0008] Fig. 3B illustrates a schematic diagram of an example user interface for presenting the selected candidate description according to an implementation of the subject matter described herein;
[0009] Fig. 3C illustrates a schematic diagram of a presented element and its alternatives according to an implementation of the subject matter described herein;
[0010] Fig. 4 illustrates a block diagram of a description generating sub-system according to an implementation of the subject matter described herein;
[0011] Fig. 5 A illustrates an example of a template for describing an object according to an implementation of the subject matter described herein;
[0012] Fig. 5B illustrates an example of a candidate description for an object according to an implementation of the subject matter described herein;
[0013] Fig. 6 illustrates a flow chart of a method for describing an object according to an implementation of the subject matter described herein;
[0014] Fig. 7 illustrates a flow chart of a method for generating the description for the object according to an implementation of the subject matter described herein;
[0015] Fig. 8 illustrates a block diagram of a computing system/server adapted to implement one or more implementations of the subject matter described herein.
[0016] Throughout the drawings, the same or similar reference symbols are used to indicate the same or similar elements.
DETAILED DESCRIPTION OF EMBODIMENTS
[0017] The subject matter described herein will now be discussed with reference to several example implementations. It is to be understood these implementations are discussed only for the purpose of enabling those skilled persons in the art to better understand and thus implement the subject matter described herein, rather than suggesting any limitations on the scope of the subject matter.
[0018] As used herein, the term "includes" and its variants are to be read as open terms that mean "includes, but is not limited to." The term "based on" is to be read as "based at least in part on." The term "one implementation" and "an implementation" are to be read as "at least one implementation." The term "another implementation" is to be read as "at least one other implementation." The terms "first," "second," and the like may refer to different or same objects. The following text may also contain other explicit or implicit definitions. Unless otherwise specified, definitions of terms are consistent throughout the description.
[0019] As used in the text, the term "object" may refer to any target to be described, including but not limited to an entity, an event, a person and the like. The term "attribute" may refer to one or more properties of the target to be described. For example, an object may be a product to be sold in an online shop, for example, a computer, a mobile phone, a book, food and the like.
[0020] Take a computer as an example. Attributes of a computer may include for example brand name, processor model, memory type and capacity, screen size, hard drive size and the like. The object may also be an event, such as a sports game, a conference, an important activity and so on. A sports game is taken as an example. Attributes of the sports game may include for example game item, names of players or teams attending the game, game time, game venue, game result and so on. The object may also be a person in the social website for whom a profile is to be generated, and attributes of the person may include for example gender, age, occupation, hobby, specialty and so on. For example, the object may also be a company and weather.
[0021] For ease of description, a computer is taken as an example of an object to be described in the following depictions. However, it should be appreciated that this is only for the purpose of illustration and does not suggest any limitation to the scope of the subject matter described herein.
[0022] As described above, for example in E-commerce application, it is usually required to generate a description for a product according to a set of attributes of the product so that a customer can better understand the properties of the product. The quality of the product description (for example, accuracy, friendliness and/or the degree of satisfying the intention of the customer) might affect the sales of the product. For example, a friendly product description requires interpretation of the relative importance degree among the attributes of the object while maintaining accuracy at the same time. Therefore, the generation of a description for an object usually has two challenges: determining which attributes should be included in the description; and determining how these attributes are ordered and expressed in the description.
[0023] In order to solve the above problems and one or more of other potential problems, according to the example implementations of the subject matter described herein, there is proposed a scheme for describing an object. The scheme can obtain information from training data consisting of parallel data to determine which attributes should be included in the description and determine how these attributes should be ordered and expressed in the description. The scheme can ensure grammatical correctness of the generated description through the application of the template and ensure semantic correctness of the generated description by considering a preference of the template for a value of an attribute of the object. In addition, the scheme needs less manual intervention and can significantly improve the performance for generating object description. Therefore, this scheme can be extensively applied to many fields, such as E-commerce, social network, news games briefing, smart speech assistant, weather report generation, medical examination report generation, finance report generation and so on.
[0024] Several example implementations of the subject matter described herein will be described in detail below.
[0025] Fig. 1 illustrates a block diagram of a system 100 in which implementations of the subject matter described herein can be implemented. The system 100 may be used to provide a user with a description for an object. As shown in Fig. 1, the system 100 generally may include an attribute obtaining module 110, a description generating subsystem 120 and a description presenting module 130. It is to be understood that the structure and functionality of the system 100 are described only for the purpose of illustration without suggesting any limitations to the scope of the subject matter described herein. The subject matter described herein can be embodied with a different structure and/or functionality. Furthermore, some or all of the modules included in the system 100 can be implemented by software, hardware, firmware, and/or any suitable combination of the foregoing.
[0026] The attribute obtaining module 110 may be configured to obtain an attribute list 101 of an object to be described. In some implementations, the attribute obtaining module 110 may obtain values (for example, the attribute list 101) of one or more attributes of the object to be described input by the user. For example, the attribute list 101 may include respective names and values of the one or more attributes of the to-be-described object. Taking a computer as an example of the object to be described, as shown in the attribute list 101 in Fig. 1, its attributes may include for example processor brand, hardware platform, color, series, user comments, processor model, memory type, operating system, number of processors, hard drive size, graphical processor model and so on. Taking a sports game as an example of the object to be described, its attributes may include for example game item, names of players or teams attending the game, game time, game venue, game result and so on. Taking a person in the social website for whom a profile is to be generated as an example of the object to be described, its attributes may include for example gender, age, occupation, hobby, specialty and so on.
[0027] In some implementations, the attribute obtaining module 110 may obtain values of the one or more attributes of the object to be described in other manners. For example, the attribute obtaining module 110 may obtain an input from other systems, or may automatically obtain the values of the one or more attributes of the object to be described in a manner of crawling a webpage.
[0028] The description generating subsystem 120 may generate the description 130 for the object to be described based on the attribute list 101 of the object obtained by the attribute obtaining module 110. In some implementations, the description generating subsystem 120 may obtain information from training data 102 consisting of parallel data to determine which attributes should be included in the description and determine how these attributes should be ordered and expressed in the description. Then, the description generating subsystem 120 may generate the description 130 for the object based on the attribute list 101 and the information obtained from the training data 102.
[0029] As used herein, the term "parallel data" may refer to different types of data describing a same object. For example, in some implementations, the training data 102 consisting of the parallel data may include a historical description for the object and an attribute list corresponding to the historical description. In a scenario of an E-commerce application, for example, the training data 102 may include a historical description for a product, such as a computer, and an attribute list of the computer corresponding to the historical description. The attribute list of the computer may include for example values of the following attributes: processor brand, hardware platform, color, series, user comments, processor model, memory type, operating system, number of processors, hard drive size, graphical processor model and so on. In a scenario of a tennis match live broadcast application, for example, the training data 102 may include a historical description for a tennis match and an attribute list of the tennis match corresponding to the historical description. The attribute list of the tennis match may include for example values of the following attributes: names of players attending the match, match time, match venue, match result and so on. Fig. 2 shows an example of the training data 102 according to an implementation of the subject matter described herein, wherein a computer is taken as an example of the object to be described. As shown in Fig. 2, the training data 102 may include a description 210 and an attribute list 220. The description 210 may be a historical description for the computer, and the attribute list 220 may include names and corresponding values of one or more attributes of the computer corresponding to the description 210.
[0030] In some implementations, the description generating subsystem 120 may determine one or more templates for describing the object based on the training data 102 consisting of the parallel data. For example, each of the one or more templates may include at least one field for filling at least part of the one or more attributes. The one or more templates for describing the object will be described in more detail below with reference to Fig. 4 and Fig. 5A.
[0031] In some implementations, the description generating subsystem 120 may obtain, based on the determined one or more templates, information about which attributes should be included in the description and how these attributes should be ordered and expressed in the description. Alternatively, in some implementations, the information about which attributes should be included in the description and determine how these attributes should be ordered and expressed in the description may be at least in part designated by the user.
[0032] Then, the description generating subsystem 120 may generate one or more candidate descriptions (e.g., candidate descriptions 103i, 1032, 1033 ... as shown in Fig. 1) for the object based on the determined one or more templates and the obtained information about which attributes should be included in the description and how these attributes should be ordered and expressed in the description.
[0033] In some implementations, the description generating subsystem 120 may determine respective scores associated with the generated one or more candidate descriptions, in which a higher score may indicate that a corresponding candidate description may be of higher quality (e.g., friendliness, diversity and/or similarity with a reference description), while a lower score may indicate that a corresponding candidate description may be of lower quality.
Then, the description generating subsystem 120 may rank the one or more candidate descriptions based on the scores.
[0034] The description generating subsystem 120 will be further described in more detail below with reference to Fig. 5.
[0035] The description presenting module 130 may be configured to present the generated descriptions to the user. In some implementations, as shown by the user interface 104 in Fig. 1, the description presenting module 130 may present the user with the generated one or more candidate descriptions (for example, candidate descriptions 103 i, 1032 ... as shown in Fig. 1) so that the user can select a desired one from them. Each of the one or more candidate descriptions for example may only involve at least part of the one or more attributes of the object.
[0036] Specially, in some implementations, the description presenting module 130 may present the ranked one or more candidate descriptions to the user, where a candidate description (e.g., candidate description 103i) with a relatively high score may be presented at a higher position than a candidate description (e.g., candidate description 1032) with a relatively low score. Alternatively, in some implementations, the description presenting module 130 may only present to the user a description with the highest score among the one or more candidate descriptions (e.g., only presenting the candidate description 103i).
[0037] In some implementations, for example, in the case that the one or more candidate descriptions are presented to the user, once the user selects one of them (e.g., candidate description 1031), the description presenting module 130 may further present the selected description to the user. For example, the description may consist of one or more elements. As used herein, an "element" may include but not limited to a word, a sentence, a table, a picture and/or any part of the description. For example, in some implementations, the description presenting module 130 may present each of the elements in the selected description individually to the user.
[0038] Fig. 3A illustrates a schematic diagram of a presented and selected candidate description 103 i according to an implementation of the subject matter described herein. As shown in Fig. 3A, the description presenting module 130 may present each of the elements (such as elements 310, 320 and 330) in the candidate description 1031 to the user individually. In addition, the description presenting module 130 may further present a respective alternative prompt (such as alternative prompts 311, 321 and 331) for each of the elements. For example, each of the alternative prompts 311, 321 and 331 may indicate that there may be one or more alternatives to each of the elements 310, 320 and 330. The one or more alternatives for example come from another one (e.g., candidate descriptions 1032, and/or 1033) of the one or more candidate descriptions other than the selected candidate description 103 L
[0039] Specially, in some implementations, the description presenting module 130 may present the selected candidate description (e.g., candidate description 103i) to the user in an editable manner. For example, the description presenting module 130 may allow the user to directly edit each of the elements in the candidate description 103 i as shown in Fig. 3 A, such as inserting or deleting a character, adjusting the order of characters and so on.
[0040] In some implementations, for example, when the user edits the candidate description 103i, the description presenting module 130 may correspondingly update other candidate descriptions (e.g., candidate descriptions 1032 and 1033) based on the editing of the candidate description 103 i by the user. For example, when the user edits a certain element in the candidate description 103i, the description presenting module 103 may update elements in other candidate descriptions associated with the element.
[0041] In addition, in some implementations, for example, when the user edits a certain element in the candidate description 103i, the template associated with the candidate description 103 i may be updated. Specially, in some implementations, for example, when the user edits a certain element in the candidate description 103 i for many times and the number of times of editing exceeds a predetermined threshold, the template associated with the candidate description 1031 may be updated. With the template being updated, the editing of the candidate description 103 i by the user can be at least in part reflected in subsequent description generation.
[0042] Several examples of the editable manner for presenting the candidate description have been described as above. It should be appreciated that implementations of the subject matter as described herein may be embodied in other examples, and the scope of the present disclosure is not limited in this aspect.
[0043] Fig. 3B illustrates a schematic diagram of an example user interface 104 for presenting the selected candidate description 103 i according to an implementation of the subject matter described herein. Specifically, the user interface 104 in Fig. 3B shows a specific example of the candidate description 103 i and an attribute list 301 corresponding to the specific example. For example, the attribute list 301 may be part of the attribute list 101 as shown in Fig. 1, and the attribute list 301 may only include attributes involved in the candidate description 103 L Specifically, an element 310 in the candidate description 103 i may include a filled attribute value 302 (namely, "8GB"), and for example, the attribute value 302 corresponds to an attribute item 303 (namely, an attribute item with the name of "memory capacity") in the attribute list 301. In some implementations, when the description presenting module 130 presents the user interface 104 as shown in Fig. 3B, the attribute value 302 may be shown as selectable (e.g., displayed with an underline). For example, when the user selects (e.g., by clicking or other operations for selection) the attribute values 302, the attribute item 303 in the attribute list 301 corresponding to the attribute value 302 may be emphatically displayed (e.g., highlighted). This can assist the user in checking quality of the generated description (e.g., the description associated with the attribute item 303).
[0044] In addition, for example, when the user selects (e.g., by clicking) the element 310 as shown in Fig. 3 A and/or Fig. 3B, a description presenting module 130 may further present the element 310 and its alternatives.
[0045] Fig. 3C illustrates a schematic diagram of a presented element 310 and its alternatives according to an implementation of the subject matter described herein. As shown in Fig. 3C, the element 310 may have n alternative elements 3 lOi, 3102 ... 310n. The n alterative elements for example come from other candidate descriptions (e.g., candidate descriptions 1032, 1033 and the like) in the one or more candidate descriptions other than the selected candidate description 103 L For example, when the user is not satisfied with the current element 310, the user may select one of the n alternative elements to replace the current element 310. In some implementations, the n alternative elements may be ranked according to their quality (for example, as will be further described in the following, a sentence including fewer unidentified attribute fields may be considered as of higher quality).
[0046] Alternatively or additionally, in some implementations, the system 100 may further include a user feedback module (not shown in Fig. 1). For example, the user feedback module may be configured to receive, from the user, information such as values of one or more attributes of the object to be described, an intention or a preference of the user for the description of the object (e.g., which attributes should be included in the description and/or how these attributes should be ordered and expressed in the description), information about the editing of the generated description and/or at least one element included in the description by the user, and/or information about the evaluation of the user on the generated description and/or at least one element included in the description. For example, the user feedback module may apply the information received from the user to at least one of the attribute obtaining module 110, the description generating subsystem 120 and the description presenting module 130 to facilitate the generation of the description for the object. For example, as described above, when the user edits the generated description, the description presenting module 130 may update, based on the information received from the user feedback module, the one or more candidate descriptions including the edited description. The description generating subsystem 120 may update, based on the information received from the user feedback module, the template associated with the edited description accordingly.
[0047] Fig. 4 illustrates a block diagram of a description generating subsystem 120 according to an implementation of the subject matter described herein. As shown in Fig. 4, the description generating subsystem 120 may include a template determining module 410, an information determining module 420, a candidate description generating module 430 and a candidate description ranking module 440. It is to be understood that the structure and functionality of the description generating subsystem 120 are described only for the purpose of illustration without suggesting any limitations to the scope of the subject matter described herein. The subject matter described herein can be embodied with a different structure and/or functionality. Furthermore, some or all of the modules included in the description generating subsystem 120 can be implemented by software, hardware, firmware, and/or any suitable combination of the foregoing.
[0048] Generally, the process of generating the description for the object may be divided into a learning phase and a generation phase. In some implementations, the learning phase may be performed offline in advance to improve the processing performance.
[0049] During the learning phase, the template determining module 410 may determine at least one template for describing the object based on training data 102 about the object to be described. As described above with reference to Fig. 1, in some implementations, the training data 102 may comprise parallel data. For example, the training data 102 may include a historical description for the object and an attribute list corresponding to the historical description. An example of the training data 102 is as shown in Fig. 2, wherein the training data 102 may include the description 210 and the attribute list 220. The description 210 may be a historical description for a computer, and the attribute list 220 may include respective names and values of attributes of the computer corresponding to the description 210.
[0050] In order to extract from the given parallel data a template for describing the object, the template determining module 410 may first match the historical description (e.g., description 210) with its corresponding attributes (e.g., attribute list 220). Specifically, for example, for each of the attributes in the attribute list 220, the template determining template 410 may look up the description 210 for a position matching the value of the attribute, and use the position as a field for filling another value of the attribute. For example, Fig. 5 A illustrates an example of a template 510 for describing an object according to an implementation of the subject matter as described herein (in which a computer serves as the object to be described). As shown in Fig. 5 A, "[Memory Size]" may represent a field for filling a value of an attribute named "Memory Size", "[Processor]" may represent a field for filling a value of an attribute named "Processor", and "[Operating System]" may represent a field for filling a value of an attribute named "Operating System". In some implementations, the attribute name for matching may only include for example those attribute names in the attribute list 220, thereby ensuring the accuracy of the extracted templates. In some other implementations, the attribute names for matching may be expanded to include an attribute name in the attribute list of a similar object (e.g., a tablet, a desktop, a mobile phone or the like) to recognize more fields for filling values of attributes. This may substantially improve the efficiency for extracting templates. In this way, the template determining module 410 can obtain many candidate templates.
[0051] Additionally, after obtaining many candidate templates, the template determining module 410 may further select, from the candidates templates, a relatively high-quality candidates template as the final output template. In some implementations, the template determining module 410 may divide each of the candidate templates into sentences. For example, some sentences might include an unidentified attribute field (e.g., an unidentified attribute name or value). As shown in Fig. 5 A, for example, "D520" is an unidentified attribute field, which consists of a capitalized letter and some digits. In some implementations, the template determining module 410 may discard a sentence, which includes more than a threshold number (e.g., the threshold number is 1) of unidentified attribute fields, to obtain a high-quality template. In this way, the template determining module 410 can output one or more templates with relatively high quality. Through the application of a template, the implementation of the subject matter as described herein can ensure grammatical correctness of the generated description.
[0052] The information determining module 420 may determine, based on the one or more templates from the template determining module 410, information about which attributes should be included in the description and how these attributes should be ordered and expressed in the description (also called as "first information" herein).
[0053] In some implementations, from the determined one or more templates, the information determining module 420 may learn a respective importance degree for each of the one or more attributes of the object, to determine which attributes in the one or more attributes should be included in the description. In some implementations, an importance degree of an attribute may be quantized into a prior probability of the attribute, which can be defined as follows:
= Mentions
j Mention(a.j) ' where at represents the i attribute involved in the one or more templates, and Mention(ai) represents times of occurrence of the attribute at in the one or more templates.
[0054] In some implementations, from the determined one or more templates, the information determining module 420 may learn a dependency relationship among these attributes to be included in the description, to determine an order of these attributes in the description. For example, in descriptions of a computer, the attribute "CPU" may be usually mentioned in the first sentence, and the attribute "Hard Drive Rotation Speed" usually follows the attribute "Hard Drive Size". In some implementations, the dependency relationship may be quantized as a conditional probability of the attribute, which can be defined as follows:
Co-occurrence(ai,aj) „ , . Λ
Ρ( α α, ) = — Formula (2)
J ∑k Co-occurrence{a.k,aj)
where Co— occurrence^a^ aj) represents times of occurrence of attributes at and cij in adj acent sentences of the one or more templates.
[0055] In this way, through the learning phase, the one or more templates for describing the object and the first information about which attributes should be included in the description and how these attributes should be ordered and expressed in the description can be obtained, which is represented as the training result 401 as shown in Fig. 4.
[0056] During the generation phase, the candidate description generating module 430 may generate one or more candidate descriptions for the object based on input data 402 and the training result 401. In some implementations, the input data 402 may include an attribute list of the object to be described. For example, the input data 402 may include the attribute list 101 as shown in Fig. 1, and it may be input by the user or obtained in other manners. The input data 402 may include respective names and values of one or more attributes of the object to be described. Table 1 show an example of the input data 402.
Figure imgf000014_0001
Hard Drive Size 2 TB HDD 7200 rpm
Graphic Processor GTX980
Table 1
[0057] In some implementations, the candidate description generating module 430 may apply, based on the first information in the training result 401, values of at least part of the one or more attributes to the one or more templates in the training results 401, to generate one or more candidate description for the object. Fig. 5B illustrates an example of a candidate description 520 for an object according to an implementation of the subject matter as described herein, where the candidate description 520 is generated based on the input data 402 as shown in Table 1 and the template 510 as shown in Fig. 5 A.
[0058] Alternatively or additionally, in some implementations, the attributes can be ranked in advance by applying beam search technology based on dependency relationship among the attributes or based on the respective importance degrees of the attributes for generating one or more candidate descriptions for the object, to improve the processing efficiency.
[0059] The candidate description ranking module 440 may rank the generated one or more candidate descriptions. In some implementations, the candidate description ranking module 440 may determine respective scores associated with the one or more candidate descriptions, and then rank the one or more candidate descriptions based on the scores.
[0060] In some implementations, the candidate description ranking module 440 may determine a respective score associated with each of the one or more candidate description based on at least one of the following: information (also called "the second information" herein) about the attribute associated with the candidate description; information (also called "the third information" herein) about elements included in the candidate description; and information (also called "the fourth information" herein) about the template associated with the candidate description. For example, the second information may include the number of attributes involved in the candidate description and a sum of prior probabilities (as shown by formula (1)) of the attributes involved in the candidate description. The third information may include the number of elements included in the candidate description (e.g., the number of sentences, the number of sentences, and so on) and a structural score (which will be described below in more detail) associated with the candidate description. The fourth information may include a preference (which will be described in more detail below) of the template associated with the candidate description for a value of an attribute and the number of unidentified attribute fields included in the template.
[0061] In some implementations, the third information may include the structural score associated with the candidate description. Suppose that the candidate description is represented as d, which consists of n sentences, and the n sentences are represented as (S-L, s2,—, sn). The 1TH sentence st in the candidate description d may involve \st\ attributes and these attributes may be represented as t l, ai 2, ... , <^i,\Si\) , where αί ;- represents the j"1 attribute involved in the element st. Suppose that the sentence st only depends on the sentence preceding it. In some implementations, the structural score associated with the candidate description d can be defined as follows:
Struct(d) =∑f=2 Formula (3)
Figure imgf000016_0001
where P(si, si_1) represents a relationship between the sentence st and the sentence s^, and it may be quantized in multiple different manners. In some implementations, P(Si, s^) may be equal to a sum of quantized values of the dependency relationship among the attributes involved in the candidate description, namely, ∑ ,/c{P(a£j | a£-i,/<:)} , whereP(ai ;-
Figure imgf000016_0002
may be determined according to formula (2). In some implementations, P(s£, Si-i) may be equal to the maximum or minimum one of the quantized values of the dependency relationship among the attribute involved in the candidate description. That is, max/ fc{P(aij |ai_1 /c)} or minjik{P(aij
Figure imgf000016_0003
It should be appreciated that P(si, si_1) may also be quantized in other manners besides the above example manners, and the scope of the subject matter described herein is not limited in this aspect.
[0062] In some implementations, the fourth information many include the preference of the template associated with the candidate description for a value of an attribute. For example, for the template 510 as shown in Fig. 5 A, the context of the template is strongly related to a value of the attribute "Memory Size". For generating the description, the template might be more suitable for a computer whose memory size is 8GB or 16GB instead of 1GB. That is, the template may have the preference for the value of a certain attribute. In some implementations, the preference of template t for value va of attribute a may be defined as follows:
ValPref(va, t) = ∑„.eV(t)(l - Dist(va, Vi))P(Vi) Formula (4) where V(t) represents values of all of the attributes extracted from the historical description corresponding to the template t during the determining of the template t, and P(v;) represents a probability of the attribute value vt occurring in V(t). Regarding an attribute of string type, Dist(i;a, v ) may represent an editing distance between the attribute values va and ^(referring to the minimum number of editing operations needed for converting one string to another string). Regarding an attribute of numeric value, Dist(i;a, v ) may be defined as f7J^ VlLin), where v 1^ and v 117^ respectively represent an upper limit and a lower limit of the value of the attribute a in the training data, and | va— Vi | represents an absolute value of difference between va and vt . It should be appreciated that Dist(i;a, Vi) may also be quantized in other manners besides the above example manners, and the scope of the subject matter described herein is not limited in this aspect. By considering the preference of the template for a value of an attribute of the object, the implementation of the subject matter described herein can ensure semantic correctness of the generated description.
[0063] As stated above, the candidate description ranking module 440 may determine the score associated with the candidate description d based on one or more of the first, second, third and/or fourth information. Values of these factors (that are, one or more of the first, second, third and/or fourth information) for determining the score may be represented as (A- fi>—· fm), where m represents the number of factors for determining the score. In some embodiments, for example as shown in formula (3), different structural scores calculated based on different quantizing manners of P(Si, s^) may serve as different factors. Hence, the score associated with the candidate description d may be defined as:
Score(d) =
Figure imgf000017_0001
fi Formula (5) where wt represents a weight associated with the ith factor. In order to determine wu for example in some implementations, the candidate description ranking module 440 may use a reference description for the object as the training data. A neural network can be applied to determine a respective weight for each of the factors, to determine the score associated with the candidate description d. As used herein, the term a "reference description" refer to a predetermined description of relatively high quality. In some implementations, the reference description may be selected from historical descriptions for the object (for example, the description 210 as shown in Fig. 2). In some other implementations, the reference description may be different from the historical descriptions for the object.
[0064] In some implementations, the candidate description ranking module 440 may calculate the score associated with the candidate description d based on similarity between the candidate description d and the reference description, where a higher score may indicate that the candidate description d and the reference description have higher similarity and thus indicates higher quality of the candidate description d, while a lower score may indicate that the candidate description d and the reference description have lower similarity and thus indicates poorer quality of the candidate description d. In this way, the candidate description ranking module 440 can apply a Learning to Rank (LTR) algorithm to rank the one or more candidate descriptions.
[0065] As shown in Fig. 4, the candidate description ranking module 440 may output to the description presenting module 130 output data 403 as shown in Fig. 1 for presentation to the user. In some implementations, the output data 403 may include the ranked one or more candidate descriptions for selection by the user. Alternatively, in some other implementations, the output data 403 may only include a description with the highest score among the one or more candidate descriptions.
[0066] Fig. 6 illustrates a flow chart of a method 600 for describing an object according to an implementation of the subject matter described herein. For example, the method 600 can be executed by the system 100 as shown in Fig. 1. For ease of description, the method 600 will be described below with reference to the system 100 as shown in Fig. 1. It is to be understood that method 600 may further include additional actions not shown and/or omit the shown actions. The scope of the subject matter described herein is not limited in this aspect.
[0067] At block 610, the system 100 (e.g., the attribute obtaining module 110) obtains respective values of one or more attributes of an object to be described.
[0068] At block 620, the system 100 (e.g., the description generating subsystem 120) generates a description for the object based on the respective values of the one or more attributes, the description including a value of at least one attribute of the one or more attributes. Fig. 7 illustrates a flow chart of a method 700 for generating the description for the object according to an implementation of the subject matter described herein. The method 700 for example may be implemented as an exemplary implementation of the block 620 as shown in Fig. 6. For example, the method 700 can be executed by the description generating subsystem 120 as shown in Fig. 1 or Fig. 4. It is to be understood that method 700 may further include additional actions not shown and/or omit the shown actions. The scope of the subject matter described herein is not limited in this aspect.
[0069] At block 710, the description generating subsystem 120 determines, based on at least one template for describing the object, first information related to the at least one attribute. In some implementations, the at least one template is determined based on training data related to the object. In some implementations, the training data may include a historical description for the obj ect and values of attributes of the obj ect corresponding to the historical description, and the generated at least one template includes a field for filling the value of at least part of the one or more attributes.
[0070] In some implementations, the description generating subsystem 120 may determine the at least one attribute to be included in the description by determining a respective importance degree for each of the one or more attributes. The description generating subsystem 120 may further determine an order associated with the at least one attribute by determining a dependency relationship among the at least one attribute, the at least one attribute being included in the description in the order.
[0071] At block 720, the description generating subsystem 120 generates, at least based on the at least one template and the first information, at least one candidate description for the object.
[0072] Returning back to Fig. 6, the method 600 proceeds to block 630, where the system 100 (e.g., the description presenting module 130) presents the description for the object to a user in an editable manner.
[0073] In some implementations, for example, the description presenting module 130 may the at least one candidate description to the user, the description being included in the at least one candidate description. Then, in response to the user editing the description, updating the at least one candidate description.
[0074] In some implementations, for example, the description generating subsystem 120 may further determine, based on similarity between the at least one candidate description and a reference description for the object, at least one score associated with the at least one candidate description, and rank the generated at least one candidate description based on the at least one score. In this case, the description presenting module 130 may present the ranked at least one candidate description to the user.
[0075] In some implementations, the description generating subsystem 120 may determine the at least one score associated with the at least one candidate description based on at least one of the following: second information about the attribute of the object associated with at least one candidate description; third information about at least one element included in the at least one candidate description; and fourth information about at least one template associated with the at least one candidate description. In some implementations, the fourth information includes a preference of the template for a value of the attribute.
[0076] In some implementations, in response to the user editing the description, for example, the description presenting subsystem 130 may update the at least one candidate description.
[0077] In some implementations, the presented description may include one or more elements. In this case, the method 600 may further include updating a template associated with the description in response to the user editing at least one of the one or more elements. In addition, the method 600 may further comprise, in response to receiving an indication that the user is not satisfied with the at least one element, presenting at least one alternative to the at least one element to the user. In some implementations, the at least one alternative is from another one of the at least one candidate description other than the description selected by the user.
[0078] It can be seen from the above depictions, the scheme for describing the object according to implementations of the subject matter described herein can obtain information from the training data consisting of parallel data to determine which attributes should be included in the description and determine how these attributes are ordered and expressed in the description. The scheme can ensure grammatical correctness of the generated description through the application of the template and ensure semantic correctness of the generated description by considering the template's preference for values of attributes of the object. In addition, the scheme needs less manual intervention and can prominently improve the performance of generating object description.
[0079] FIG. 8 shows a block diagram of an example computing system/server 800 in which one or more implementations of the subject matter described herein can be implemented. For example, in some implementations, the system 100 as shown in Fig. 1 and the description generating subsystem 120 as shown in Fig. 4 can be implemented by the computing system/server 800. The computing system/server 800 as shown in FIG. 8 is only an example, which should not be construed as any limitation to the function and scope of use of the implementations of the subject matter described herein.
[0080] As shown in FIG. 8, the computing system/server 800 is in a form of a general- purpose computing device. Components of the computing system/server 800 may include, but are not limited to, one or more processors or processing units 800, a memory 820, one or more input devices 830, one or more output devices 840, storage 850, and one or more communication units 860. The processing unit 800 may be a real or a virtual processor and is capable of performing various processes in accordance with a program stored in the memory 820. In a multi-processing system, multiple processing units execute computer- executable instructions to increase processing power.
[0081] The computing system/server 800 typically includes a plurality of computer media. Such media may be any available media that is accessible by the computing system/ server 800, including volatile and non-volatile media, removable and non-removable media. The memory 820 may be volatile memory (e.g., registers, cache, a random-access memory (RAM)), non-volatile memory (e.g., a read only memory (ROM), an electrically erasable programmable read only memory (EEPROM), a flash memory), or some combination thereof. The storage 850 may be removable or non-removable, and may include machine readable medium such as flash drives, magnetic disks or any other medium which can be used to store information and which can be accessed within the computing system/server 800.
[0082] The computing system/server 800 may further include other removable/nonremovable, volatile/non-volatile computing system storage media. Although not shown in FIG. 8, a disk driver for reading from or writing to a removable, non-volatile disk (e.g., a "floppy disk"), and an optical disk driver for reading from or writing to a removable, nonvolatile optical disk can be provided. In these cases, each driver can be connected to the bus by one or more data medium interfaces.
[0083] The memory 820 may include at least one program product having a set (e.g., at least one) of program modules that are configured to carry out the functions of various implementations described herein. For instance, when one or more modules in system 100 or the description generating subsystem 120 are implemented as software modules, they can be stored in the storage 820 and when accessed and operated by the processing unit 800, they can implement the function and/or method described herein, such as the method 600 or 700.
[0084] The input unit(s) 830 may be one or more of various different input devices. For example, the input unit(s) 839 may include a user device such as a mouse, keyboard, trackball, etc. The communication unit(s) 860 enables communication over communication medium to another computing entity. Additionally, functionality of the components of the computing system/server 800 may be implemented in a single computing machine or in multiple computing machines that are able to communicate over communication connections. Thus, the computing system/server 800 may operate in a networked environment using logical connections to one or more other servers, network personal computers (PCs), or another common network node. By way of example, and not limitation, communication media include wired or wireless networking techniques.
[0085] The computing system/server 800 may also communicate, as required, with one or more external devices (not shown) such as a storage device, a display device, and the like, one or more devices that enable a user to interact with the computing system/server 800, and/or any device (e.g., network card, a modem, etc.) that enables the computing system/server 800 to communicate with one or more other computing devices. Such communication may be performed via an input/ output (I/O) interface(s) (not shown).
[0086] The functionally described herein can be performed, at least in part, by one or more hardware logic components. For example, and without limitation, illustrative types of hardware logic components that can be used include Field-Programmable Gate Arrays (FPGAs), Application-specific Integrated Circuits (ASICs), Application-specific Standard Products (ASSPs), System-on-a-chip systems (SOCs), Complex Programmable Logic Devices (CPLDs), and the like.
[0087] Program code for carrying out methods of the subject matter described herein may be written in any combination of one or more programming languages. These program codes may be provided to a processor or controller of a general purpose computer, special purpose computer, or other programmable data processing apparatus, such that the program codes, when executed by the processor or controller, cause the functions/operations specified in the flowcharts and/or block diagrams to be implemented. The program code may execute entirely on a machine, partly on the machine, as a stand-alone software package, partly on the machine and partly on a remote machine or entirely on the remote machine or server.
[0088] In the context of this disclosure, a machine readable medium may be any tangible medium that may contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device. The machine readable medium may be a machine readable signal medium or a machine readable storage medium. A machine readable medium may include but not limited to an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples of the machine readable storage medium would include an electrical connection having one or more wires, a portable computer diskette, a hard drive, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.
[0089] Further, while operations are described in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. In certain circumstances, multitasking and parallel processing may be advantageous. Likewise, while several specific implementation details are contained in the above discussions, these should not be construed as limitations on the scope of the subject matter described herein, but rather as descriptions of features that may be specific to particular implementations. Certain features that are described in the context of separate implementations may also be implemented in combination in a single implementation. Conversely, various features that are described in the context of a single implementation may also be implemented in multiple implementations separately or in any suitable subcombination.
[0090] Some implementations of the subject matter described herein are listed below.
[0091] In the first aspect, there is provided a computer-implemented apparatus. The apparatus comprises a processing unit and a memory. The memory is coupled to the processing unit and stores instructions for execution by the processing unit. The instructions, when executed by the processing unit, cause the apparatus to perform actions. The actions comprise: obtaining respective values of one or more attributes of an object to be described; generating a description for the object based on the respective values of the one or more attributes, the description including a value of at least one attribute of the one or more attributes; and presenting the description for the object to a user in an editable manner.
[0092] In some implementations, generating the description for the object comprises: determining, based on at least one template for describing the object, first information related to the at least one attribute, the at least one template being determined based on training data related to the object; and generating, at least based on the at least one template and the first information, at least one candidate description for the object.
[0093] In some implementations, determining the first information comprises: determining the at least one attribute to be included in the description by determining a respective importance degree for each of the one or more attributes; and determining an order associated with the at least one attribute by determining a dependency relationship among the at least one attribute, the at least one attribute being included in the description in the order.
[0094] In some implementations, presenting the description for the object to the user comprises: presenting the at least one candidate description to the user, the description being included in the at least one candidate description; and in response to the user editing the description, updating the at least one candidate description.
[0095] In some implementations, the description includes one or more elements, and THE actions further comprise: in response to the user editing at least one of the one or more elements, updating a template associated with the description.
[0096] In some implementations, presenting the at least one candidate description to the user comprises: determining, based on similarity between the at least one candidate description and a reference description for the object, at least one score associated with the at least one candidate description; ranking the at least one candidate description based on the at least one score; and presenting the ranked at least one candidate description to the user.
[0097] In some implementations, determining the at least one score associated with the at least one candidate description comprises determining the at least one score based on at least one of the following: second information about an attribute of the object associated with the at least one candidate description; third information about at least one element included in the at least one candidate description; and fourth information about at least one template associated with the at least one candidate description.
[0098] In some implementations, the fourth information includes a preference of the template for a value of the attribute.
[0099] In some implementations, the actions further comprise: in response to receiving an indication that the user is not satisfied with the at least one element, presenting at least one alternative to the at least one element to the user.
[00100] In some implementations, the at least one alternative is from another one of the at least one candidate description other than the description.
[00101] In a second aspect, there is provided a computer-implemented method. The method comprises: obtaining respective values of one or more attributes of an object to be described; generating a description for the object based on the respective values of the one or more attributes, the description including a value of at least one attribute of the one or more attributes; and presenting the description for the object to a user in an editable manner.
[00102] In some implementations, generating the description for the object comprises: determining, based on at least one template for describing the object, first information related to the at least one attribute, the at least one template being determined based on training data related to the object; and generating, at least based on the at least one template and the first information, at least one candidate description for the object.
[00103] In some implementations, determining the first information comprises: determining the at least one attribute to be included in the description by determining a respective importance degree for each of the one or more attributes; and determining an order associated with the at least one attribute by determining a dependency relationship among the at least one attribute, the at least one attribute being included in the description in the order.
[00104] In some implementations, presenting the description for the object to the user comprises: presenting the at least one candidate description to the user, the description being included in the at least one candidate description; and in response to the user editing the description, updating the at least one candidate description.
[00105] In some implementations, the description includes one or more elements, and the method further comprises: in response to the user editing at least one of the one or more elements, updating a template associated with the description.
[00106] In some implementations, presenting at least one candidate description to the user comprises: determining, based on similarity between the at least one candidate description and a reference description for the object, at least one score associated with the at least one candidate description; ranking the at least one candidate description based on the at least one score; and presenting the ranked at least one candidate description to the user.
[00107] In some implementations, determining the at least one score associated with the at least one candidate description comprises determining the at least one score based on at least one of the following: second information about an attribute of the object associated with the at least one candidate description; third information about at least one element included in the at least one candidate description; and fourth information about at least one template associated with the at least one candidate description.
[00108] In some implementations, the fourth information includes a preference of the template for a value of the attribute.
[00109] In some implementations, the method further comprises: in response to receiving an indication that the user is not satisfied with the at least one element, presenting at least one alternative to the at least one element to the user.
[00110] In some implementations, the at least one alternative is from another one of the at least one candidate description other than the description.
[00111] In a third aspect, there is provided a computer program product. The computer program product is tangibly stored on a transitory computer-readable medium and comprises machine-executable instructions, the machine-executable instructions, when executed by an apparatus, enabling the apparatus to execute actions of the method according to the second aspect.
[00112] Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter specified in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims.

Claims

1. A computer-implemented apparatus, comprising:
a processing unit;
a memory coupled to the processing unit and storing instructions for execution by the processing unit, wherein the instructions, when executed by the processing unit, causing the apparatus to perform actions, the actions comprising:
obtaining respective values of one or more attributes of an object to be described;
generating a description for the object based on the respective values of the one or more attributes, the description including a value of at least one attribute of the one or more attributes; and
presenting the description for the object to a user in an editable manner.
2. The apparatus according to claim 1, wherein generating the description for the object comprises:
determining, based on at least one template for describing the object, first information related to the at least one attribute, the at least one template being determined based on training data related to the object; and
generating, at least based on the at least one template and the first information, at least one candidate description for the object.
3. The apparatus according to claim 2, wherein determining the first information comprises:
determining the at least one attribute to be included in the description by determining a respective importance degree for each of the one or more attributes; and
determining an order associated with the at least one attribute by determining a dependency relationship among the at least one attribute, the at least one attribute being included in the description in the order.
4. The apparatus according to claim 2, wherein presenting the description for the object to the user comprises:
presenting the at least one candidate description to the user, the description being included in the at least one candidate description; and
in response to the user editing the description, updating the at least one candidate description.
5. The apparatus according to claim 4, wherein the description includes one or more elements, and the actions further comprise: in response to the user editing at least one of the one or more elements, updating a template associated with the description.
6. The apparatus according to claim 5, wherein presenting the at least one candidate description to the user comprises:
determining, based on similarity between the at least one candidate description and a reference description for the object, at least one score associated with the at least one candidate description;
ranking the at least one candidate description based on the at least one score; and presenting the ranked at least one candidate description to the user.
7. The apparatus according to claim 6, wherein determining the at least one score associated with the at least one candidate description comprises:
determining the at least one score based on at least one of the following:
second information about an attribute of the object associated with the at least one candidate description;
third information about at least one element included in the at least one candidate description; and
fourth information about at least one template associated with the at least one candidate description.
8. The apparatus according to claim 7, wherein the fourth information includes a preference of the template for a value of the attribute.
9. The apparatus according to claim 5, wherein the actions further comprise:
in response to receiving an indication that the user is not satisfied with the at least one element, presenting at least one alternative to the at least one element to the user.
10. The apparatus according to claim 9, wherein the at least one alternative is from another one of the at least one candidate description other than the description.
11. A computer-implemented method, comprising:
obtaining respective values of one or more attributes of an object to be described; generating a description for the object based on the respective values of the one or more attributes, the description including a value of at least one attribute of the one or more attributes; and
presenting the description for the object to a user in an editable manner.
12. The method according to claim 11, wherein generating the description for the object comprises:
determining, based on at least one template for describing the object, first information related to the at least one attribute, the at least one template being determined based on training data related to the object; and
generating, at least based on the at least one template and the first information, at least one candidate description for the object.
13. The method according to claim 12, wherein determining the first information comprises:
determining the at least one attribute to be included in the description by determining a respective importance degree for each of the one or more attributes; and
determining an order associated with the at least one attribute by determining a dependency relationship among the at least one attribute, the at least one attribute being included in the description in the order.
14. The method according to claim 12, wherein presenting the description for the object to the user comprises:
presenting the at least one candidate description to the user, the description being included in the at least one candidate description; and
in response to the user editing the description, updating the at least one candidate description.
15. The method according to claim 14, wherein the description includes one or more elements, and the method further comprises:
in response to the user editing at least one of the one or more elements, updating a template associated with the description.
PCT/US2018/028779 2017-05-19 2018-04-23 Object description WO2018212931A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201710359555.9 2017-05-19
CN201710359555.9A CN108959299B (en) 2017-05-19 2017-05-19 Object description

Publications (1)

Publication Number Publication Date
WO2018212931A1 true WO2018212931A1 (en) 2018-11-22

Family

ID=62167941

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2018/028779 WO2018212931A1 (en) 2017-05-19 2018-04-23 Object description

Country Status (2)

Country Link
CN (1) CN108959299B (en)
WO (1) WO2018212931A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110162754B (en) * 2019-04-11 2024-05-10 平安科技(深圳)有限公司 Method and equipment for generating post description document

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150081696A1 (en) * 2013-09-19 2015-03-19 Marketwire L.P. Systems and Methods for Actively Composing Content for Use in Continuous Social Communication

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102073486B (en) * 2009-11-24 2015-09-23 新奥特(北京)视频技术有限公司 A kind of quick editor's method and apparatus of object
CN103514209A (en) * 2012-06-27 2014-01-15 百度在线网络技术(北京)有限公司 Method and equipment for generating promotion information of object to be promoted based on object information base
WO2014198028A1 (en) * 2013-06-13 2014-12-18 Microsoft Corporation Identifying and structuring related data
US9965474B2 (en) * 2014-10-02 2018-05-08 Google Llc Dynamic summary generator
RU2015116133A (en) * 2015-04-29 2016-11-20 Общество с ограниченной ответственностью "1С" METHOD FOR AUTOMATED APPLICATION INTERFACE GENERATION
CN106066849B (en) * 2016-05-30 2019-05-21 车智互联(北京)科技有限公司 A kind of template page editing system and method

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150081696A1 (en) * 2013-09-19 2015-03-19 Marketwire L.P. Systems and Methods for Actively Composing Content for Use in Continuous Social Communication

Also Published As

Publication number Publication date
CN108959299B (en) 2022-02-25
CN108959299A (en) 2018-12-07

Similar Documents

Publication Publication Date Title
WO2020114429A1 (en) Keyword extraction model training method, keyword extraction method, and computer device
US10733197B2 (en) Method and apparatus for providing information based on artificial intelligence
US10496752B1 (en) Consumer insights analysis using word embeddings
US7983902B2 (en) Domain dictionary creation by detection of new topic words using divergence value comparison
US10685183B1 (en) Consumer insights analysis using word embeddings
US11182806B1 (en) Consumer insights analysis by identifying a similarity in public sentiments for a pair of entities
US9483460B2 (en) Automated formation of specialized dictionaries
AU2016383052A1 (en) Systems and methods for suggesting emoji
US10810374B2 (en) Matching a query to a set of sentences using a multidimensional relevancy determination
US10558759B1 (en) Consumer insights analysis using word embeddings
US10509863B1 (en) Consumer insights analysis using word embeddings
KR20170055970A (en) Computer-implemented identification of related items
US10803248B1 (en) Consumer insights analysis using word embeddings
US8661341B1 (en) Simhash based spell correction
CN112711948A (en) Named entity recognition method and device for Chinese sentences
US20210133279A1 (en) Utilizing a neural network to generate label distributions for text emphasis selection
CN110377750B (en) Comment generation method, comment generation device, comment generation model training device and storage medium
CN111753082A (en) Text classification method and device based on comment data, equipment and medium
US20230103728A1 (en) Method for sample augmentation
CN112818091A (en) Object query method, device, medium and equipment based on keyword extraction
CN108319586B (en) Information extraction rule generation and semantic analysis method and device
US11030539B1 (en) Consumer insights analysis using word embeddings
US10685184B1 (en) Consumer insights analysis using entity and attribute word embeddings
US10810266B2 (en) Document search using grammatical units
US20190095525A1 (en) Extraction of expression for natural language processing

Legal Events

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

Ref document number: 18725070

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: 18725070

Country of ref document: EP

Kind code of ref document: A1