(19)
(11)EP 3 400 559 B1

(12)EUROPEAN PATENT SPECIFICATION

(45)Mention of the grant of the patent:
09.11.2022 Bulletin 2022/45

(21)Application number: 16826606.2

(22)Date of filing:  27.12.2016
(51)International Patent Classification (IPC): 
G06Q 10/00(2012.01)
G06Q 10/10(2012.01)
(52)Cooperative Patent Classification (CPC):
G06Q 10/00; G06Q 10/10; G06Q 10/109; G06Q 10/1093
(86)International application number:
PCT/US2016/068647
(87)International publication number:
WO 2017/123411 (20.07.2017 Gazette  2017/29)

(54)

METHODS AND APPARATUS FOR DETERMINING, BASED ON FEATURES OF AN ELECTRONIC COMMUNICATION AND SCHEDULE DATA OF A USER, REPLY CONTENT FOR INCLUSION IN A REPLY BY THE USER TO THE ELECTRONIC COMMUNICATION

VERFAHREN UND VORRICHTUNG ZUR BESTIMMUNG DES ANTWORTINHALTS ZUM EINSCHLUSS IN EINER ANTWORT VON EINEM BENUTZER AN DIE ELEKTRONISCHE MITTEILUNG AUF DER GRUNDLAGE VON MERKMALEN EINER ELEKTRONISCHEN MITTEILUNG UND PLANUNGSDATEN EINES BENUTZERS

PROCÉDÉS ET APPAREIL DE DÉTERMINATION, SUR LA BASE D'ÉLÉMENTS D'UNE COMMUNICATION ÉLECTRONIQUE ET DE DONNÉES D'ORDONNANCEMENT D'UN UTILISATEUR, D'UN CONTENU DE RÉPONSE DESTINÉ À ÊTRE INTÉGRÉ DANS UNE RÉPONSE DE L'UTILISATEUR À LA COMMUNICATION ÉLECTRONIQUE


(84)Designated Contracting States:
AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR

(30)Priority: 12.01.2016 US 201614994113

(43)Date of publication of application:
14.11.2018 Bulletin 2018/46

(73)Proprietor: Google LLC
Mountain View, CA 94043 (US)

(72)Inventors:
  • MIKLOS, Balint
    Mountain View California 94043 (US)
  • EMEAGWALI, Ijeoma
    Mountain View California 94043 (US)
  • SCHIEFFER, Stella
    Mountain View California 94043 (US)
  • HART, Katie
    Mountain View California 94043 (US)
  • ARONER, Jonathan
    Mountain View California 94043 (US)
  • SHARP, Phillip
    Mountain View California 94043 (US)
  • SHIN, Jung-won
    Mountain View California 94043 (US)

(74)Representative: Betten & Resch 
Patent- und Rechtsanwälte PartGmbB Maximiliansplatz 14
80333 München
80333 München (DE)


(56)References cited: : 
EP-A1- 1 737 202
US-B1- 9 092 742
US-A1- 2014 288 990
  
      
    Note: Within nine months from the publication of the mention of the grant of the European patent, any person may give notice to the European Patent Office of opposition to the European patent granted. Notice of opposition shall be filed in a written reasoned statement. It shall not be deemed to have been filed until the opposition fee has been paid. (Art. 99(1) European Patent Convention).


    Description

    Background



    [0001] Users are often inundated with electronic communications such as emails, SMS communications, and social networking communications. Many electronic communications that are sent to a user relate to an event such as a business meeting, a party, dinner at a restaurant, a get together with friends, etc. Some electronic communications that are sent to a user and relate to an event explicitly solicit a reply from the user or otherwise contain information to which the user may wish to reply. For example, an email that contains "Are you available for a call tomorrow at 12:00?" may explicitly solicit a reply from a recipient, such as a reply that confirms the recipient is available or a reply that indicates the recipient is not available and/or proposes a new time for the call. An email that contains "A few of us are going to Restaurant A after work if anybody is interested" may not explicitly solicit a reply, but a recipient that receives the email may still wish to reply to the email to confirm the recipient will also go to Restaurant A after work or will be unable to attend. Recipients of electronic communications related to an event must formulate replies to the electronic communications utilizing a user interface input device (e.g., a virtual keyboard, a microphone) and sometimes need to reference a calendar or other schedule data to determine what reply is appropriate.

    [0002] Document US 9092742 B1 refers to techniques for predicting one or more behaviors by an email recipient and, more specifically, to machine learning techniques for predicting one or more behaviors of an email recipient, changing one or more components in the email to increase the likelihood of a behavior, and determining and/or scheduling an optimal time to send the email.

    Summary



    [0003] The present invention is defined in the independent claims. Preferred embodiments are defined in the dependent claims.

    [0004] Some implementations of this specification are directed generally to methods and apparatus related to utilizing one or more features of an electronic communication and schedule data (e.g., an electronic calendar) of a recipient of the electronic communication to determine reply content for inclusion in a reply, by the recipient, to the electronic communication. The determined reply content may be provided for inclusion in the reply via one or more user interface output devices of a computing device of the recipient (e.g., the reply content may be automatically provided in the reply or suggested for inclusion in the reply).

    [0005] Some of those implementations are directed to determining, based on feature(s) of an electronic communication sent to a user and based on schedule data of the user, one or more n-grams that are appropriate for inclusion in a reply to the electronic communication, and providing the determined n-grams for inclusion in a reply by the user to the electronic communication.

    [0006] As one example, assume an email is sent to a user that includes "Want to grab dinner this Friday at 7:00?". Implementations of methods and apparatus described herein may be utilized to determine one or more n-grams for inclusion in a reply by the user to the email, where the n-grams are tailored to the email and to the schedule data of the user. For instance, if the schedule data of the user indicates the user is busy during and/or near 7:00 on Friday, "sorry, can't make it", "can't make it, have other plans", and/or other "declining responses" may be determined for providing for inclusion in the reply, whereas "sounds good", "I'll be there", and/or other "confirmatory responses" may not be determined for inclusion in the reply, or may be determined for suggesting for inclusion in the reply in a less conspicuous manner than the declining response(s). On the other hand, if the schedule data of the user indicates the user is available during and/or near 7:00 on Friday, one or more confirmatory responses may be determined for providing for inclusion in the reply, whereas one or more declining responses may not be determined for inclusion in the reply, or may be determined for suggesting for inclusion in the reply in a less conspicuous manner than the confirmatory response(s).

    [0007] As another example, assume an email is sent to a user that includes "Interested in dinner on Friday?". Implementations of methods and apparatus described herein may be utilized to determine one or more n-grams for inclusion in the reply, where the n-grams are tailored to the email and to the schedule data of the user. For instance, if the schedule data of the user indicates the user is available during one or more "dinner" times on Friday, an n-gram that includes one or more of those times (e.g., "sounds good, how about 7:30?") may be suggested in lieu of, or in addition to, a general confirmatory reply.

    [0008] In some implementations not encompassed by the wording of the claims, the reply content may additionally and/or alternatively include a calendar invite for an event referenced in the electronic communication or an "availability poll" that is sent to the sender and/or other recipients of the electronic communication to determine a preferred time/date for the event. For example, a calendar entry of a user may be automatically created or suggested for creation based on an electronic communication sent to the user, and a corresponding calendar invite may be generated and automatically included (or suggested for inclusion) in the user's reply to the electronic communication. The invite may be sent to the sender of the communication and/or to other recipients of the communication. As another example, where an electronic communication includes "we need to have a meeting this week, let me know what time works best for everyone", schedule data of one or more recipients can be used to generate "candidate dates/times", and an availability poll provided to the sender of the electronic communication and other recipients of the communication to determine one or more preferred dates/times from the candidates. A further reply may optionally be generated that is an invite for the preferred date/time.

    [0009] In various implementations not encompassed by the wording of the claims, one or more user interface indications (e.g., graphical, audible) of determined reply content (e.g., textual reply content, calendar invite reply content, and/or availability poll reply content) may be presented via one or more user interface output devices of a computing device of a user generating a reply and, when the user selects one of the indications via a user interface input, the corresponding reply content may be included in the reply. For example, where the selected reply content is an n-gram, it may be included in the body of the reply. As another example, where the selected reply content is a calendar invite, the invite may be attached to the reply and/or a link to the invite may be included in the body of the reply. In some implementations, determined reply content for inclusion in a reply may be presented for inclusion in the reply before the user has provided any textual content for the reply and/or before the user has provided any other content for the reply.

    [0010] In some implementations, output provided by a trained machine learning system may be utilized to determine reply content to provide for inclusion in a reply, by a user, to an electronic communication. The trained machine learning system may provide the output in response to receiving input that includes one or more message features of the electronic communication and optionally one or more user availability features based on schedule data of the user. For example, the machine learning system may be trained to receive, as input, one or more message features of an "original message" and optionally one or more features of a recipient's schedule data and to provide, as output, at least one feature related to reply content. The trained machine learning system output may be utilized to determine which reply content is provided, whether reply content is provided, and/or how the reply content is provided. For instance, the trained machine learning system may provide, as output, a likelihood that a reply to the electronic communication will include a calendar invite as reply content. Such output may be utilized to determine, for example, whether a calendar invite is provided as reply content and/or how prominently the calendar invite is suggested for inclusion in providing it as reply content. Also, for instance, the trained machine learning system may provide, as output, one or more particular n-grams and/or one or more indicators of n-grams (e.g., semantic categories of n-grams), optionally with associated scores. Such output may be utilized to determine, for example, which n-grams are provided as reply content and/or the prominences of the provided n-grams when presented.

    [0011] Some implementations not encompassed by the wording of the claims are directed generally toward analyzing a corpus of past electronic communications to determine relationships between: (1) one or more message features of "original" messages and optionally one or more features related to recipients' schedule data, and (2) reply content associated with "reply" messages that are replies by the recipients to the original messages. For example, the corpus may be analyzed to determine relationships between message features of original messages and a likelihood that replies to original messages having those message features include a calendar invite and/or a link to a calendar invite. Also, for example, the corpus may be analyzed to determine relationships between message features of original messages paired with features related to recipients' schedule data, and reply content included in replies, to messages having those message features, by recipients having schedule data with those features. As yet another example, the corpus may be analyzed to determine that original messages that include an event and are sent to a recipient with schedule data indicating a conflict with the event, are likely to result in a reply message that includes a "declining" textual response (e.g., "sorry, can't make it", "thanks for the invite, but I have a conflict"). As yet another example, the corpus may be analyzed to determine that original messages that include an event with a date, but no specific time, and are sent to a recipient with schedule data indicating availability on that date, are likely to result in a reply message that includes a reply message that suggests one or more times during which the recipient is available (e.g., "Sounds good. How about [available time]?", "I'd love to. Does [available time] work for you?").

    [0012] In some implementations, determining relationships between one or more original message features of original messages of electronic communications and optionally one or more features related to schedule data, and reply content associated with replies to those original messages may be achieved via generating appropriate training examples and training a machine learning system based on those training examples. The machine learning system may be trained to receive, as input, one or more message features of an electronic communication and optionally one or more features of a recipient's schedule data and to provide, as output, at least one feature related to reply content, such as one of the features described above.

    [0013] For example, in some implementations training examples may be generated to train a machine learning system to determine a likelihood that a reply to an original message will include an invite, a poll, and/or a link to an invite and/or poll. For instance, training examples may be generated that each have an output parameter indicative of whether an invite or a link to an invite was included in a reply message, and one or more input parameters based on the original message of a corresponding one of the electronic communications to which the reply message was responsive and optionally based on feature(s) of schedule data of the user that generated the reply message and that is temporally related to an event of the original message. For instance, a first training example may include, as an output parameter, an indication of "invite included", and as an input parameter, all or portions of the original text (and optionally annotations associated with the original text) of an original message of a corresponding first electronic communication that includes an invite in a reply message and feature(s) of schedule data of a user that generated the reply message and that is temporally related to an event in the first electronic communication. A second training example may include, as an output parameter, an indication of "invite not included", and as an input parameter, all or portions of the original text (and optionally annotations associated with the text) of a corresponding original message of a second electronic communication that does not include an invite in the reply message and feature(s) of schedule data of a user that generated the reply message and that is temporally related to an event in the second electronic communication. Additional training examples may be similarly generated.

    [0014] As another example, in some implementations training examples may be generated to train a machine learning system to determine one or more features of textual reply content to include in a reply to an original message. The features of textual reply content may be defined with various levels of granularity, such as particular n-grams (e.g., "Thanks, but can't make it"), categories of textual replies (e.g., "confirmatory reply", "declining reply", "tentative reply", "confirmatory reply that suggests an available time", "tentative reply that suggests an available time"), and/or particular n-grams paired with a category of n-grams (e.g., "The [Event Type] sounds like fun, but I have a conflict", "Sounds like fun, but I have [title of conflicting schedule entry] during that time"). For instance, a first training example may include, as an output parameter, an indication of "confirmatory reply", and as an input parameter, all or portions of the original text (and optionally annotations associated with the text) of a corresponding original message of a first electronic communication that includes the confirmatory reply in a reply message and feature(s) of schedule data of a user that generated the reply message and that is temporally related to an event in the first electronic communication. A second training example may include, as an output parameter, an indication of "declining reply", and as an input parameter, all or portions of the original text (and optionally annotations associated with the text) of an original message of a corresponding second electronic communication that includes the declining reply and feature(s) of schedule data of a user that generated the reply message and that is temporally related to an event in the second communication. Additional training examples may be similarly generated.

    [0015] Although examples of message features above are provided with reference to n-grams, various additional or alternative message features may be utilized. Additional and/or alternative message feature(s) include, for example: co-occurrence of two or more n-grams (optionally occurrence in a particular order, in a certain positional relationship, and/or within a certain distance of one another); features based on one or more natural language processing tags (e.g., parts of speech, named entities, tone); features based on text that occurs specifically in the subject, the first sentence, the last sentence, or other portion of the message; features based on a time the email was sent, a date the email was sent, a number of recipients, etc. As one example, the at least one message feature may be: occurrence of a particular n-gram in the subject of the original message and the occurrence of another particular n-gram in the body of the original message.

    [0016] In some implementations, a computer implemented method may be provided that is performed by at least one computing device and that includes identifying an electronic communication sent to a user and determining a temporal indication associated with an event of the electronic communication. The temporal indication identifies at least a time or date associated with the event. The method further includes: searching schedule data of the user based on the temporal indication; determining, based on the searching, availability of the user for the event; and determining one or more additional message features of the electronic communication. The additional message features are in addition to the temporal indication. The method further includes generating textual reply content based on the availability of the user and based on the one or more additional message features. The textual reply content includes one or more n-grams that are not included in the electronic communication. The method further includes providing the textual reply content for inclusion in a reply electronic communication that is a reply by the user to the electronic communication.

    [0017] This method and other implementations of technology disclosed herein may each optionally include one or more of the following features.

    [0018] In some implementations, searching the schedule data of the user occurs independent of any textual input provided via a computing device of the user in generating the reply electronic communication, wherein the computing device of the user is one of the computing devices or is in addition to the computing devices. In some of those implementations, providing the textual reply content for inclusion in the reply electronic communication occurs independent of any textual input provided via the computing device in generating the reply electronic communication.

    [0019] In some implementations, determining the temporal indication associated with the event of the electronic communication includes determining the temporal indication based on one or more temporal n-grams of the electronic communication. In some of those implementations, the method further includes: determining one or more event n-grams of the electronic communication that each reference a location of the event or a type of the event; and determining the temporal n-grams based on a syntactic relationship between the temporal n-grams and the event n-grams in the electronic communication.

    [0020] In some implementations, generating the textual reply content includes generating a first reply n-gram and generating a separate second reply n-gram; and providing the reply content for inclusion in the reply electronic communication includes: providing both the first reply n-gram and the second reply n-gram for inclusion in the reply to the electronic communication. In some of those implementations, the method further includes: ranking the first reply n-gram and the second reply n-gram relative to one another; and determining, based on the ranking, a prominence for providing the first reply n-gram and the second reply n-gram. Providing the first reply n-gram and the second reply n-gram for inclusion in the reply electronic communication may include providing the first reply n-gram and the second reply n-gram with an indication of the prominences.

    [0021] In some implementations, providing the textual reply content for inclusion in the reply electronic communication includes providing a graphical indication of the textual reply content and providing a graphical indication that the textual reply content is based on the availability of the user.

    [0022] In some implementations, providing the textual reply content for inclusion in the reply electronic communication includes incorporating the textual reply content in the reply electronic communication without requiring confirmation by the user via user interface input initiated by the user.

    [0023] In some implementations, providing the textual reply content for inclusion in the reply electronic communication includes: providing a graphical indication of the textual reply content; receiving a selection of the graphical indication via a user interface input device; and in response to receiving the selection, incorporating the textual reply content in the reply electronic communication.

    [0024] In some implementations, generating the textual reply content includes generating a first reply n-gram and generating a separate second reply n-gram and providing the reply content for inclusion in the reply electronic communication includes: providing a first graphical indication of the first reply n-gram and a second graphical indication of the second reply n-gram; receiving a selection of one of the first graphical indication and the second graphical indication via a user interface input device; and in response to receiving the selection, incorporating a corresponding one of the first reply n-gram and the second reply n-gram in the reply.

    [0025] In some implementations, generating the textual reply content includes: providing the additional message features and the availability of the user as input to a trained machine learning system; receiving at least one reply content feature as output from the trained machine learning system; and generating the textual reply content based on the at least one reply content feature received as output from the trained machine learning system. In some of those implementations, the additional message features include a first message feature based on an n-gram in a body of the electronic communication and the method optionally further includes: labeling each of a plurality of n-grams of the electronic communication with at least one corresponding grammatical annotation, selecting the n-gram based on the corresponding grammatical annotation of the n-gram, and determining the first message feature based on the n-gram.

    [0026] In some implementations, a computer implemented method may be provided that is performed by at least one computing device and includes identifying a corpus of event electronic communications of a plurality of users. The event electronic communications of the corpus each include original content that references an event, each include reply content that is responsive to the original content, and are each associated with user availability of an author of the reply content. The user availability indicates availability of the author, when the reply content was authored, to attend the event. The method further includes generating a plurality of training examples based on the event electronic communications, wherein generating each of the training examples is based on a corresponding event electronic communication of the event electronic communications and includes: generating a plurality of input features based on the original content of the corresponding event electronic communication and the user availability associated with the corresponding reply event electronic communication, and generating at least one output feature based on the reply content of the corresponding event electronic communication. The method further includes: training a machine learning system based on the training examples to generate a trained machine learning system; receiving a new electronic communication sent to a user; generating new input features based on the new electronic communication and based on schedule data of the user; providing the new input features as input to the trained machine learning system; receiving output from the trained machine learning system in response to providing the new input features to the trained machine learning system; and using the output from the trained machine learning system to determine reply content for providing the reply content for presentation to the user via a computing device of the user for inclusion in a reply by the user to the new electronic communication.

    [0027] This method and other implementations of technology disclosed herein may each optionally include one or more of the following features.

    [0028] In some implementations, the at least one output feature indicates whether the reply content includes an invite or a link to an invite.

    [0029] In some implementations, the at least one output feature indicates whether the reply content includes an availability poll or a link to an availability poll.

    [0030] In some implementations, the at least one output feature indicates at least one textual feature of the reply content.

    [0031] In some implementations, the input features of the training examples do not include any features from the reply content.

    [0032] Other implementations may include a non-transitory computer readable storage medium storing instructions executable by a processor to perform a method such as one or more of the methods described above. Yet another implementation may include a system including memory and one or more processors operable to execute instructions, stored in the memory, to perform a method such as one or more of the methods described above.

    [0033] It should be appreciated that all combinations of the foregoing concepts and additional concepts described in greater detail herein are contemplated as being part of the subject matter disclosed herein. For example, all combinations of claimed subject matter appearing at the end of this disclosure are contemplated as being part of the subject matter disclosed herein.

    Brief Description of the Drawings



    [0034] 

    FIG. 1 illustrates an example environment in which reply content to include in a reply by a user to an electronic communication may be determined based on one or more message features of the electronic communication and based on schedule data of the user.

    FIG. 2 illustrates an example of how reply content to include in a reply by a user to an electronic communication may be determined based on one or more message features of the electronic communication and based on schedule data of the user.

    FIG. 3 is a flow chart illustrating an example method of determining reply content to include in a reply by a user to an electronic communication based on one or more message features of the electronic communication and based on schedule data of the user.

    FIGS. 4A, 4B, and 4C illustrate example graphical user interfaces, not encompassed by the wording of the claims, for providing reply content for inclusion in a reply to an electronic communication.

    FIG. 5 illustrates another example graphical user interface, not encompassed by the wording of the claims, for providing reply content for inclusion in a reply to an electronic communication.

    FIG. 6 illustrates an example environment in which electronic communications may be analyzed to generate training examples for training a machine learning system to generate output of one or more reply content features based on input of one or more message features and one or more schedule data features, and in which the machine learning system may be trained based on the training examples.

    FIG. 7 illustrates an example of how training examples may be generated based on electronic communications and used to train a machine learning system to generate output of one or more reply content features based on input of one or more message features and one or more schedule data features.

    FIG. 8 is a flow chart illustrating an example method of generating training examples and using the training examples to train a machine learning system to generate output of one or more reply content features based on input of one or more message features and one or more schedule data features.

    FIG. 9 illustrates an example architecture of a computing device.


    Detailed Description



    [0035] FIG. 1 illustrates an example environment in which reply content to include in a reply by a user to an electronic communication may be determined based on one or more message features of the electronic communication and based on schedule data of the user. The example environment includes at least one communication network 101 that facilitates communication between the various components in the environment. In some implementations, the communication network 101 may include the Internet, one or more intranets, and/or one or more bus subsystems. The communication network 101 may optionally utilize one or more standard communications technologies, protocols, and/or inter-process communication techniques. The example environment also includes a client device 106, an electronic communications system 110, a reply content system 120, at least one trained machine learning system 135, schedule data 154 for one or more users, and at least one electronic communications database 152.

    [0036] Electronic communications system 110, reply content system 120, and trained machine learning system 135 may each be implemented in one or more computing devices that communicate, for example, through a network (e.g., communication network 101 and/or other network). Electronic communications system 110, reply content system 120, and trained machine learning system 135 are example systems in which the systems, components, and techniques described herein may be implemented and/or with which systems, components, and techniques described herein may interface.

    [0037] Electronic communications system 110, reply content system 120, and trained machine learning system 135 each include one or more memories for storage of data and software applications, one or more processors for accessing data and executing applications, and other components that facilitate communication over a network. In some implementations, electronic communications system 110, reply content system 120, and trained machine learning system 135 may include one or more components of the example computing device of FIG. 9. The operations performed by electronic communications system 110, reply content system 120, and trained machine learning system 135 may be distributed across multiple computing devices. In some implementations, one or more aspects of electronic communications system 110, reply content system 120, and/or trained machine learning system 135 may be combined in a single computing device and/or one or more aspects may be implemented on the client device 106.

    [0038] Generally, in some implementations reply content system 120 determines and provides reply content to include in a reply by a user to an electronic communication that is sent to the user and that includes an event. The electronic communication may be, for example, one provided by client device 106 and/or an electronic communication of electronic communications database 152 to which the user has yet to reply. The reply content system 120 may determine the reply content based on one or more message features of the electronic communication and based on availability of the user for the event of the electronic communication and/or other user schedule data features of the user related to a time and/or date of the event. The availability of the user for the event of the electronic communication and/or other user schedule data features may be determined by searching schedule data 154 of the user based on a temporal indication (i.e., indicating a date and/or time) associated with the event. For example, the user availability may be determined based on whether the user schedule data indicates the user has an already scheduled event during or near the date and/or time associated with the event.

    [0039] In some implementations, the reply content system 120 may provide the determined reply content for inclusion in a reply to an electronic communication independent of any textual input provided by the user in generating the reply to the communication and/or independent of any other content provided by the user in generating the reply to the communication. In some implementations, the reply content determined and provided by reply content system 120 includes textual reply content that is tailored to the electronic communication and tailored to the schedule data of the user. The textual reply content determined and provided for an electronic communication may include one or more n-grams that are in addition to any n-grams included in the electronic communication itself. In some implementations, the electronic communication for which the reply content system 120 determines reply content is not itself a structured invitation for an event that can be responded to with predefined structured responses such as "accept", "decline", and/or "tentative".

    [0040] The schedule data 154 that is utilized by the reply content system 120 to determine reply content may be provided on one or more non-transitory storage media. In some implementations, the schedule data 154 of a user may be non-publicly accessible, but accessible to the user. For example, the schedule data 154 may be accessible only to the user and one or more systems and/or other users authorized by the user. The schedule data 154 of a user may indicate events from various sources. For example, events of a user indicated in schedule data 154 may be from one or more electronic calendars maintained by the user, extracted from electronic communications of the user, inferred based on past activity of the user (e.g., repeat location data that indicates the user goes to the gym every weekday at 6:00), etc. The schedule data 154 of a user may be stored at one or more locations such as one or more cloud-based locations accessible to the user, local storage device(s) of a computing device (e.g., client device 106) of the user, local network storage device(s) accessible to the computing device and/or the user, etc. As described herein, in some implementations the reply content system 120 may determine one or more features of schedule data (e.g., availability of a user) associated with an event by issuing a search of the schedule data 154 of the user, where the search includes one or more temporal search parameters (e.g., time and/or date) that are derived from an electronic communication that is sent to the user and that references the event.

    [0041] The electronic communications database 152 includes one or more storage mediums that include all, or portions of, electronic communications of a plurality of users. In some implementations, the electronic communications database 152 is maintained by the electronic communications system 110. For example, the electronic communications system 110 may include one or more email systems and the electronic communications database 152 may include a plurality of emails that are sent and/or received via the email systems. As another example, the electronic communications system 110 may include one or more social networking systems and the electronic communications database 152 may include a plurality of messages, posts, or other communications that are sent and/or received via the social networking systems.

    [0042] As used herein, an "electronic communication" or "communication" may refer to an email, a text message (e.g., SMS, MMS), an instant message, a transcribed voicemail, or any other electronic communication that is sent from a first user to a restricted group of one or more additional users. In various implementations, an electronic communication may include various metadata and the metadata may optionally be utilized in one or more techniques described herein. For example, an electronic communication such as an email may include an electronic communication address such as one or more sender identifiers (e.g., sender email addresses), one or more recipient identifiers (e.g., recipient email addresses, including cc'd and bcc'd recipients), a date sent, one or more attachments, a subject, a type of device that sent and/or received the electronic communication, and so forth.

    [0043] As used herein, "electronic communication" and "communication" will be utilized, depending on the context, to refer to both an electronic communication that includes only an original message and an electronic communication that includes one or more original messages and includes one or more reply messages. An electronic communication may be a single document such as an email that includes both an original message and a reply message and that can be processed to distinguish the original message and the reply message. Processing an electronic communication to distinguish an original message and a reply message may include one or more computing devices "splitting" the message based on presence of metadata, message breaks, header information included in the message, quotes provided around the original message, etc. An electronic communication may also be multiple documents that are mapped to one another based on at least one of the multiple documents being responsive to other of the multiple documents. For example, an electronic communication may include a first email that is an original message received by a user and a second email sent by the user as a reply to that original message, or original and reply SMS messages. The mapping of multiple documents to one another may be performed, for example, by the electronic communications system 110. For example, the electronic communications system 110 may map a first email to a second email based on a user selecting a "reply" user interface element when viewing the first email and then drafting the second email responsive to selecting the reply user interface element.

    [0044] As used herein, an original message is earlier in time to a responsive reply message, but is not necessarily the first message in an electronic communication. For example, an original message may be the first in time message in an electronic communication and a reply message that is responsive to that original message may be a later in time (e.g., the next in time) message. Also, for example, an original message may additionally and/or alternatively be the second, third, or fourth in time message in an electronic communication and a reply message that is responsive to that original message may be a later in time message in the electronic communication. Each of an original message and a reply message may include one or more of associated text, metadata, and/or other content (e.g., attached document(s), link(s) to document(s)).

    [0045] In various implementations, reply content system 120 may include a message features engine 122, a search parameters engine 124, a search engine 126, a reply content engine 128, and/or a presentation engine 129. In some implementations, all or aspects of engines 122, 124, 126, 128, and/or 129 may be omitted. In some implementations, all or aspects of engines 122, 124, 126, 128, and/or 129 may be combined. In some implementations, all or aspects of engines 122, 124, 126, 128, and/or 129 may be implemented in a component that is separate from reply content system 120, such as client device 106 and/or electronic communications system 110.

    [0046] Description of the engines 122, 124, 126, 128, and 129 is provided below with reference to an electronic communication of a user, such as an electronic communication provided by client device 106 and/or an electronic communication of electronic communications database 152 to which the user has yet to reply. Although a single electronic communication is referenced in the examples for clarity, it is understood that the reply content system 120 may determine reply content for additional electronic communications of the user and/or of additional users. In some implementations, only certain electronic communications may be processed, in whole or in part, by the reply content system 120. For example, only electronic communications that are determined by one or more classifiers and/or other machine learning systems to have at least a threshold likelihood of pertaining to an event may be processed by the reply content system 120.

    [0047] The message features engine 122 determines one or more original message features based on an electronic communication sent to a user (i.e., based at least in part on the content of the electronic communication as that content was sent to the user). Various original message features may be determined. For example, message features engine 122 may determine one or more n-grams in the electronic communication as message features. For instance, one or more of the n-grams may be determined based on term frequency of the n-gram in the electronic communication (i.e., how often the n-gram occurs in the electronic communication) and/or inverse document frequency of the n-gram in a collection of documents (i.e., how often the n-gram occurs in a collection of documents, such as a collection of electronic communications).

    [0048] Also, for instance, one or more of the n-grams may be determined based on the n-grams being "event n-grams" that reference a location of an event (e.g., "Restaurant", a name of a particular venue, a particular address) and/or a type of an event (e.g., "dinner", "meeting", "videoconference"). Also, for instance, one of more of the n-grams may be determined based on the n-grams being temporal n-grams that reference a date and/or a time (e.g., "today", "Thursday", "11:00", "tonight", "morning"). In various implementations, one or more classifiers and/or other machine learning systems may be utilized to provide an indication of one or more n-grams of an electronic communication that are likely temporal n-grams and/or event n-grams.

    [0049] Also, for instance, one or more of the n-grams may be determined based on positional proximity and/or a syntactic relationship of the n-gram to one or more other n-grams. For example, a temporal n-gram may be identified based on its positional proximity and/or syntactic relationship to one or more event n-grams, such as an event n-gram that references a location or type of an event. As yet another instance, one or more of the n-grams may be determined based on a part of speech of the n-gram (e.g., "noun"), a type of the n-gram (e.g., "person", "place", or "thing") or based on the n-gram being included in a listing of potentially relevant n-grams and/or not being included in a listing of irrelevant n-grams (e.g., stop words such as "an", "a", and "the").

    [0050] Also, for example, message features engine 122 may determine co-occurrence of two or more n-grams in the electronic communication as a message feature, such as co-occurrence in a particular order (e.g., a first n-gram before a second n-gram), in a certain positional relationship (e.g., within n terms or characters of one another), etc. Also, for example, message features engine 122 may determine one or more message features based on one or more natural language processing tags or other labels applied to text of the electronic communication (e.g., parts of speech, named entities, entity types, tone); features based on text that occurs specifically in the subjects, the first sentences, the last sentences, or other portion of the electronic communication; features based on metadata of the electronic communication such as a time the electronic communication was sent, day of the week the electronic communication was sent, a number of recipients, a type of device that sent the electronic communication, etc.

    [0051] Also, for example, message features engine 122 may determine an embedding vector of one or more features from the entire electronic communication or a subset of the electronic communication (e.g., one or more paragraphs, one or more sentences, one or more words). The features of the embedding vector may include one or more n-grams, labels applied to one or more n-grams, syntactic features, semantic features, metadata features, and/or other features.

    [0052] As one specific example, assume the electronic communication includes a subject with the text "golf trip" and a body with the text "We need to meet and plan our annual golf trip. How about this Thursday at 6:00?" The message features engine 122 may determine message features that include the n-grams "trip", "golf trip", "this Thursday", "6:00", "annual", "How about", and "?", while optionally excluding other n-grams. For example, the message features engine 122 may determine "trip" and "golf trip" as message features based on them being event n-grams (event type), may determine "this Thursday" and "6:00" as message features based on them being temporal n-grams and/or based on them being in close positional proximity to the event n-grams, may determine "how about" and "?" as message features based on them being inquiry n-grams, and may determine "annual" as an n-gram based on it being an adjective in the text and/or based on it being in close positional proximity to an event n-gram.

    [0053] The message features engine 122 provides determined message features to search parameters engine 124 and optionally to trained machine learning system 135 and/or reply content engine 128. The message features engine 122 may provide the same message features to search parameters engine 124, trained machine learning system 135, and/or reply content engine 128 - or the provided message features may differ.

    [0054] The search parameters engine 124 generates, based on one or more of the message features provided by message features engine 122, one or more search parameters for searching schedule data 154 of the user. For example, the message features engine 122 may provide the search parameters engine 124 with at least temporal n-grams and/or event n-grams of the message features and the search parameters engine 124 may generate one or more search parameters based on the temporal and/or event n-grams.

    [0055] As one example of generating search parameters based on one or more of the message features provided by message features engine 122, assume the message features engine 122 provides a group of message features that include the n-grams "this Thursday", "6:00", and "golf trip". The search parameters engine 124 may generate a temporal search parameter based on "this Thursday" and "6:00". For example, the search parameters engine 124 may convert "this Thursday" to a particular date and use the particular date as a temporal search parameter. Also, for example, the search parameters engine 124 may generate a time range of 5:00-8:00 based on "6:00" and use the time range as a temporal search parameter. The time range of 5:00-8:00 may provide for searching of schedule data 154 of the user to ascertain availability of the user for an hour before and two hours after the particular time (6:00) referenced. The search parameters engine 124 may also optionally generate an additional "negative" search parameters of "does not include 'golf"' to prevent determining the availability of the user as "busy" if schedule data of the user already indicates the event of the electronic communication (e.g., the user may have talked to the sender in advance of receiving the email and already manually added the event to the user's calendar).

    [0056] The search engine 126 searches schedule data 154 of the user based on the search parameters determined by search parameters engine 124. In some implementations, searching schedule data 154 of the user may include searching one or more indexes that index a calendar and/or other schedule data of the user. The search engine 126 identifies whether any entries in the schedule data 154 of the user match the search parameters and optionally identifies one or more properties of those entries. In that way, search parameters are provided automatically through the search parameter engine, such that it is not necessary for the user to provide search parameters as input, thus simplifying user interaction.

    [0057] Based on whether any entries match the search parameters and/or one or more properties of those entries, the search engine 126 determines availability of the user for the event of the electronic communication. For example, where no entries of schedule data 154 of the user match the search parameters, the search engine 126 may determine the availability of the user is "available". Also, for example, where one or more entries of schedule data 154 of the user fully matches the search parameters (e.g., the one or more entries indicate the user is busy during the entire temporal period specified), the search engine 126 may determine the availability of the user is "unavailable". In some of those situations, the search engine 126 may also include with the availability of the user, one of more of the properties of the entries of the schedule data 154 of the user that match the search parameters. For instance, the search engine 126 may determine availability of the user that includes an indication of "unavailable", and may include, with the availability of the user, the title of an entry that matches the search parameters and/or a time range for the entry that matches the search parameters.

    [0058] As another example, where one or more entries of schedule data 154 of the user partially matches the search parameters (e.g., the one or more entries indicate the user is busy during a portion of the temporal period specified), the search engine 126 may determine the availability of the user is "potentially unavailable". In some of those situations, the search engine 126 may also include, with the availability of the user, one of more of the properties of the entries that match the search parameters. For instance, the search engine 126 may determine availability of the user that includes an indication of "potentially unavailable", and include with the availability of the user, the time range(s) during which the user is unavailable (e.g., the time(s) associated with one or more entries that partially match the temporal period specified). As yet another example, where an entry of schedule data 154 of the user fully matches the search parameters, but is indicated as a "tentative" or otherwise "flexible" entry, the search engine 126 may determine the availability of the user is "potentially unavailable". In some of those situations, the search engine 126 may also include, with the availability of the user, one of more of the properties of the entry that matches the search parameters.

    [0059] In some implementations, the search engine 126 issues multiple searches in searching schedule data 154 of the user based on the search parameters determined by search parameters engine 124. For example, assume an electronic communication that includes "1/1/16 from 11:00 AM - 12:00 PM". In some implementations, the search parameters engine 124 may generate search parameters of "1/1/16", "11:00 AM -12:00 PM" and "potential conflict" search parameters of "10:00 AM -11:00 AM" and "12:00 PM - 1:00 PM" to check for potential conflicts on either side of the specified temporal period. In some of those implementations, the search engine 126 may issue three separate searches, e.g.: (1) {"1/1/16", "11:00 AM - 12:00 PM"}, (2) {"1/1/16", "12:00 PM - 1:00 PM"}, and (3) {"1/1/16", "10:00 AM - 11:00 AM"}. If the search engine 126 determines that no entries of schedule data 154 of the user match any of the searches, the search engine 126 may determine the availability of the user is "available". If the search engine determines that an entry of schedule data 154 of the user matches search (1), the search engine 126 may determine the availability of the user is "unavailable". If the search engine determines that an entry of schedule data 154 of the user matches search (2) or search (3), but does not match search (1), the search engine 126 may determine the availability of the user is "potentially unavailable". The search engine achieves that the availability of a user can be determined automatically, so that a user does not have to interact with various sources of schedule data and respective applications, such as a calendar application, thus simplifying user interaction.

    [0060] The search engine 126 provides, to the reply content engine 128 and/or the trained machine learning system 135, an indication of the availability of the user for the event of the electronic communication, and optionally one or more of the properties of scheduling entries, if any, that match the search(es) of the search engine 126. The reply content engine 128 determines reply content for inclusion in a reply, by the user, to the electronic communication. The reply content may include, for example, one or more textual n-grams responsive to the event of the electronic communication, a calendar invite for the event, and/or an availability poll that is sent to the sender and/or other recipients of the electronic communication to determine a preferred time/date for the event.

    [0061] In various implementations, the reply content engine 128 determines the reply content based on one or more message features determined by message features engine 122 and based on the availability of the user and/or other properties of schedule data provided by search engine 126. For example, the reply content engine 128 may directly utilize the message features and/or the availability of the user and/or other schedule data in determining the reply content and/or may utilize output from the trained machine learning system 135, where the output is based on the message features and/or the availability of the user and/or other schedule data.

    [0062] As one example, the trained machine learning system 135 may be trained to receive, as input, one or message features and/or features related to availability of the user and/or other schedule data and to provide, as output, one or more reply content features indicative of whether reply content should be provided and/or the content of reply content to be provided. For example, the trained machine learning system 135 may be trained to provide, as output, one or more particular textual n-grams and/or categories of textual n-grams based on received input of message features and/or indication of availability of the user.

    [0063] For instance, the trained machine learning system 135 may receive, as input, both the message features and the features related to availability of the user and provide, as output, one or more particular textual n-grams (e.g., "That time works for me"), and optionally scores for those particular textual n-grams. The reply content engine 128 may select one or more of the outputted particular textual n-grams for utilization as the reply content. The reply content engine 128 may optionally select the particular textual n-grams and/or rank the particular textual n-grams (e.g., for determining prominence for those n-grams) based on the optional scores provided by the trained machine learning system 135.

    [0064] Also, for instance, the trained machine learning system 135 may receive, as input, both the message features and the features related to availability of the user and provide, as output, one or more particular n-grams paired with a category of n-grams (e.g., "The [Event Type] sounds like fun, but I have a conflict", "Sounds good. How about [available time]?"), and optionally scores for those particular n-grams paired with a category of n-grams. The reply content engine 128 may determine appropriate text for filling in the category of n-grams based on one or more of the message features (e.g., [Event Type] may be filled in with "party" based on event message features derived from a "party" electronic communication). The reply content engine 128 may utilize the particular n-gram with the filled in text as the reply content. The reply content engine 128 may optionally rank multiple filled in or otherwise generated n-grams based on the optional scores provided by the trained machine learning system 135.

    [0065] As yet another instance, the trained machine learning system 135 may receive, as input, the message features and not the features related to availability of the user and provide, as output, one or more categories of textual n-grams (e.g., "informal confirmatory replies", "informal tentative replies", "informal declining replies" "confirmatory reply that suggests an available time", "tentative reply that suggests an available time") and optionally scores for those categories of textual n-grams. The reply content engine 128 may utilize the availability of the user to select one or more of the category of replies and/or to rank the category of replies, and determine textual content that conforms to the selected category of replies (e.g., previous textual replies crafted by the user that conform to the category). For instance, if the availability of the user is "potential conflict", then the reply content engine 128 may utilize that availability to determine textual content that conforms to "informal tentative replies" and/or utilize that availability to rank textual content that conforms to the category more prominently than textual content that conforms to other categories.

    [0066] As another example, the trained machine learning system 135 may be trained to provide, as output, one or more reply content features indicative of whether reply content should be provided based on received input of message features and/or features related to availability of the user and/or other schedule data.

    [0067] For instance, the trained machine learning system 135 may receive, as input, both the message features and the indication of availability of the user and/or other schedule data and provide, as output, a likelihood that a reply electronic communication will include a calendar invite and/or a likelihood that a reply electronic communication will include an availability poll. The reply content engine 128 may determine whether and/or how a calendar invite and/or an availability poll should be included in reply content based on the output provided by the trained machine learning system 135. For example, if the output is likelihood that a reply electronic communication will include a calendar invite, reply content engine 128 may determine the reply electronic communication is to be provided for automatic inclusion in a reply if the likelihood satisfies a threshold, but may require that user interface input be provided before the calendar invite is provided for inclusion in the reply if the likelihood does not satisfy the threshold. Also, for example, the reply content engine 128 may: if the likelihood is greater than or equal to X (e.g., X=0.8), determine the calendar invite is to be provided for automatic inclusion in a reply before any user interface input has been provided indicating a desire to reply; may, if the likelihood is less than X and greater than or equal to Y (e.g., Y=0.5), require user interface input require that user interface input be provided before the calendar invite is provided for inclusion in the reply; and may, if the likelihood is less than Y, determine that the calendar invite should not be provided for inclusion in the reply.

    [0068] The reply content engine 128 provides the reply content it determined for inclusion in the reply, and optionally data indicating how it should be included in the reply, to the presentation engine 129. The presentation engine 129 provides the reply content for inclusion in a reply electronic communication that is a reply by the user to the electronic communication.

    [0069] Providing reply content for inclusion in a reply may include, for example, embedding the reply content, providing a link to the reply content, providing a user interface indication of the reply content, etc. For example, the presentation engine 129 may automatically attach a calendar invite to the reply and/or automatically incorporate a link to the calendar invite in the reply. Also, for example, the presentation engine 129 may present one or more user interface indications (e.g., graphical, audible) of the reply content and, when a user generating the reply selects one of the indications via user interface input, the corresponding reply content may be automatically provided in the reply.

    [0070] In some implementations, the presentation engine 129 provides the reply content independent of any textual input and/or other content provided via a computing device of the user in generating a reply to the electronic communication. In some of those implementations, the reply content engine 128 determines the reply content before the user has even viewed or otherwise consumed the communication. For example, the reply content system 120 may process a communication in advance of viewing by the user, reply content engine 128 may determine reply content for inclusion in a reply to the communication, and append or otherwise associate reply content with the electronic communication (e.g., append the reply content to an entry for the electronic communication in electronic communications database 152) before it is even viewed by the user.

    [0071] In some implementations, the presentation engine 129 may provide multiple distinct reply content options for inclusion in a reply. For example, a first n-gram of "Sorry, but I have a conflict" and a second n-gram of "Sounds good. I'll be there" may both be provided. Also, for example, a first n-gram of "Sounds good. I'll be there" and a calendar invite may both be provided. In some of those implementations, the multiple reply content options may be provided based on the optional data (provided by the reply content engine 128) indicating how it should be included in the reply. For example, a presentation prominence for each of the multiple reply content options may be determined based on the data and the multiple documents provided for potential inclusion in the reply to the electronic communication, along with an indication of the presentation prominences. Also, for example, where the reply content engine 128 provides indication(s) of which of one or more multiple reply content options is most appropriate for inclusion in a reply based on the schedule data, the presentation engine 129 may include a graphical and/or textual representation of such indication(s) for presentation along with the reply content option(s) (e.g., a textual indication of "selected based on your calendar" or "your calendar indicates a conflict for this event").

    [0072] In some implementations where the electronic communication is provided to the reply content system 120 by the client device 106, the presentation engine 129 may provide the reply content to the client device 106 for presentation to the user as an option for including in a reply. In some implementations where the electronic communication is provided to the reply content system 120 by the electronic communications system 110 via the electronic communications database 152, the presentation engine 129 may store an association of the reply content with the electronic communication in the electronic communications database 152 and/or other database. In some implementations, one or more (e.g., all) aspects of the presentation engine 129 may be implemented by the client device 106 and/or the electronic communications system 110.

    [0073] The presentation engine 129 may also provide display prominence information with the determined reply content that indicates the prominence (e.g., position, size, color) with which the selected reply content should be presented. As one example, where multiple distinct reply content options are provided by the presentation engine 129, the presentation engine 129 may provide an indication of the ranking of those multiple reply content options for use in determining in which order the multiple reply content options should be presented to a user via a user interface output device of the client device 106. The presentation engine 129 may also provide, for presentation along with the reply content, graphical and/or textual representations indicating the reply content was determined based on the schedule data (e.g., a textual indication of "selected based on your calendar" or "your calendar indicates you are available for this event"). In some implementations, the presentation engine 129 provides only identifier(s) of reply content, and potentially prominence information and/or graphical and/or textual representations indicating the reply content was determined based on the schedule data, and the client device 106 and/or electronic communications system 110 may generate a display of the selected documents based on the provided data. In some implementations, the presentation engine 129 may additionally provide some or all of the data necessary to generate the display. In some of those implementations, any provided prominence information and/or graphical and/or textual representations may be incorporated in the data that indicates how the display should be presented.

    [0074] FIG. 2 illustrates an example of how reply content to include in a reply by a user to an electronic communication may be determined based on one or more message features of the electronic communication and based on schedule data of the user. Message features engine 122 determines one or more message features of an electronic communication 152A sent to a user. Electronic communication 152A may be provided by, for example, client device 106 or electronic communications system 110 of FIG. 1.

    [0075] The message features engine 122 provides one or more of the determined message features to search parameters engine 124 and provides one or more of the determined message features to the trained machine learning system 135 and to the reply content engine 128. The message features provided by the message features engine 122 to the search parameters engine 124, the reply content engine 128, and/or the trained machine learning system 135 may be the same, or may differ.

    [0076] The search parameters engine 124 generates, based on one or more of the message features provided by message features engine 122, one or more search parameters for searching schedule data 154 of the user. For example, the message features engine 122 may provide the search parameters engine 124 with at least temporal n-grams and/or event n-grams of the message features and the search parameters engine 124 may generate one or more search parameters based on the temporal and/or event n-grams. In that way, search parameters are provided automatically, such that it is not necessary for the user to provide search parameters as input, thus simplifying user interaction.

    [0077] The search engine 126 searches schedule data 154 of the user based on the search parameters determined by search parameters engine 124. The search engine 126 identifies whether any entries in the schedule data 154 of the user match the search parameters and optionally identifies one or more properties of those entries. Based on whether any entries match the search parameters and/or one or more properties of those entries, the search engine 126 determines availability of the user for the event of the electronic communication.

    [0078] The search engine 126 provides, to the reply content engine 128 and/or the trained machine learning system 135, an indication of the availability of the user for the event of the electronic communication, and optionally one or more of the properties of scheduling entries, if any, that match the search(es) of the search engine 126.

    [0079] The trained machine learning system 135 may be trained to receive, as input, one or message features and/or features related to availability of the user and/or other schedule data and to provide, as output, one or more reply content features indicative of whether reply content should be provided and/or the content of reply content to be provided. For example, the trained machine learning system 135 may be trained to provide, as output, one or more particular textual n-grams and/or categories of textual n-grams based on received input of message features and/or indication of availability of the user.

    [0080] The reply content engine 128 determines reply content for inclusion in a reply, by the user, to the electronic communication. The reply content may include, for example, one or more textual n-grams responsive to the event of the electronic communication, a calendar invite for the event, and/or an availability poll that is sent to the sender and/or other recipients of the electronic communication to determine a preferred time/date for the event.

    [0081] In various implementations, the reply content engine 128 determines the reply content based on the reply content features provided by the trained machine learning system 135 and optionally based on one or more of the message features provided by message features engine 122 and/or based on the availability of the user and/or other properties of schedule data provided by search engine 126.

    [0082] The presentation engine 129 provides the reply content 159 for inclusion in a reply electronic communication that is a reply by the user to the electronic communication. Providing reply content for inclusion in a reply may include, for example, automatically populating the reply content in the reply, providing a user interface indication of the reply content that, when selected, populates the reply content in the reply, etc. This has the advantage that certain parts of a reply message are generated automatically without user interaction. This leads to a reduced amount of input to be provided on behalf of the user when establishing a reply electronic communication.

    [0083] FIG. 3 is a flow chart illustrating an example method of determining reply content to include in a reply by a user to an electronic communication based on one or more message features of the electronic communication and based on schedule data of the user. For convenience, the operations of the flow chart are described with reference to a system that performs the operations. This system may include various components of various computer systems. For instance, some operations may be performed by one or more components of the reply content system 120, such as engines 122, 124, 126, 128, and/or 129. Moreover, while operations of the method of FIG. 3 are shown in a particular order, this is not meant to be limiting. One or more operations may be reordered, omitted or added.

    [0084] At block 300, the system identifies an electronic communication sent to a user.

    [0085] At block 302, the system determines a temporal indication associated with an event of the electronic communication.

    [0086] At block 304, the system searches schedule data of the user based on the temporal indication of block 302.

    [0087] At block 306, the system determines availability of the user based on the search of block 304.

    [0088] At block 306, the system determines one or more additional message features of the electronic communication. Various message features may be utilized such as textual, semantic, and/or syntactic features. For example, the system may determine message features based on one or more n-grams in the electronic communication, co-occurrence of two or more n-grams in the electronic communication, features based on n-gram(s) that occur specifically in the subjects, the first sentences, the last sentences, or other portion of the electronic communication, features based on metadata of the electronic communication, etc.

    [0089] At block 310, the system determines reply content based on the availability of the user of block 306 and based on the one or more additional message features of block 308.

    [0090] At block 312, the system provides the reply content for inclusion in a reply electronic communication that is a reply by the user to the electronic communication.

    [0091] FIGS. 4A-4C illustrate example graphical user interfaces, not encompassed by the wording of the claims, for providing reply content for inclusion in a reply to an electronic communication. The graphical user interfaces of FIGS. 4A-4C may be presented at client device 106 based on reply content that is determined and provided by reply content system 120. In some implementations, one or more aspects of reply content system 120 (e.g., all or aspects of presentation engine 129) may be incorporated, in whole or in part, on client device 106.

    [0092] In FIG. 4A, an original email 475A that has been sent to a user is being viewed by the user, before the user has provided any user interface input to indicate a desire to reply to the original email 475A. The reply content options represented by graphical user interface elements 481A, 482A, and 483A are presented for inclusion in a reply to the email and, when selected via user interface input, are included in the reply. For example, a user selection of graphical user interface element 481A may automatically present to the user an editable reply email that includes the n-gram "Thanks for the invite, but I have a conflict." incorporated in the body of the reply email. Likewise, a user selection of graphical user interface element 482A may automatically present to the user an editable reply email that includes the n-gram "Sounds like fun, but can't make it." incorporated in the body of the reply email.

    [0093] In FIG. 4A, the reply content options represented by graphical user interface elements 481A, 482A, and 483A are determined based on the original email 475A and based on schedule data of the user to which the original email 475A was sent. In the example of FIG. 4A, the schedule data of the user includes a pre-existing entry with a title of "soccer game" that is scheduled from 6:30-8:00 "tomorrow night." Based on the schedule data and the original email 475A, the "declining reply" graphical user interface elements 481A, 482A, and 483A may be determined as appropriate for providing to the user.

    [0094] As one example, one or more message features of the original email 475A may be provided as input to the trained machine learning system 135 of FIG. 1 and the trained machine learning system 135 may provide, as output, an indication that a "confirmatory reply", "tentative reply", and "declining reply" are appropriate responses based on the message features. The reply content engine 128 of FIG. 1 may utilize that output, and the schedule data of the user, to determine that "declining replies" are appropriate. For example, the reply content engine 128 may determine that the user is unavailable based on the schedule data of the user, and, as a result of the user's unavailability, select only declining replies or determine declining replies should be provided more prominently. The particular declining replies represented by graphical user interface elements 481A, 482A, and 483A may be selected by the reply content engine 128 from a database of declining replies, such as past declining replies of the user. It is noted that the declining reply represented by graphical user interface element 481A includes a title ("soccer game") of the entry of the schedule data of the user that conflicts with the event of the original email 475A. This title may be filled in to a "conflicting event" category of one of the declining replies of the database by the reply content engine 128.

    [0095] As another example, one or more message features of the original email 475A and an "unavailable" feature of the schedule data of the user may be provided as input to the trained machine learning system 135 of FIG. 1 and the trained machine learning system 135 may provide, as output, "Thanks for the invite, but I have a conflict", "Sounds like fun, but can't make it", and "Thanks for the invite, but I have a [conflicting event title]". The reply content engine 128 of FIG. 1 may utilize that output to generate the particular declining replies represented by graphical user interface elements 481A, 482A, and 483A. It is noted that the "[conflicting event title]" category may be filled in with "soccer game" by the reply content engine 128. In some implementations a graphical and/or textual representation may be presented in combination with the user interface elements 481A, 482A, and 483A that indicates those elements were selected based on schedule data of the user (e.g., a textual indication of "selected based on your calendar" or "your calendar indicates a conflict for this event").

    [0096] In FIG. 4B, a user has provided user interface input (e.g., selecting a "reply" graphical user interface element) to initiate a reply to an original email and is presented with a reply section 480B that includes phantom text "Compose email" indicating to the user that the user can compose a reply in the reply section 480B. The original email 475B to which the reply is responsive is also illustrated in FIG. 4B for reference of the user in generating the reply.

    [0097] Graphical user interface elements 481B, 482B, and 483B are presented in FIG. 4B for inclusion in the reply of associated textual n-grams determined based on the original email 475B and based on schedule data of the user (e.g., as described above with respect to FIG. 4A). The graphical user interface elements 481B, 482B, and 483B are presented before the user has provided any textual input or other content for the reply. The original email 475B of FIG. 4B is the same as the original email 475A of FIG. 4A and the graphical user interface elements 481B, 482B, and 483B of FIG. 4B are the same as the graphical user interface elements 481A, 482A, and 483A of FIG. 4A. In some implementations, the graphical user interface elements 481B, 482B, and 483B of FIG. 4B may be determined as described above with respect to FIG. 4A.

    [0098] In FIG. 4C, an original email 475C that has been sent to a user is being viewed by the user, before the user has provided any user interface input to indicate a desire to reply to the original email 475C. The original email 475C of FIG. 4C is the same as the original emails 475A and 475B of FIGS. 4A and 4B. However, in the example of FIG. 4C, the schedule data of the user does not include a conflict for "tomorrow night".

    [0099] In FIG. 4C, the reply content options represented by graphical user interface elements 481C, 482C, 483C, 484C, and 485C are determined based on the original email 475C and based on schedule data of the user. Based on the schedule data and the original email 475C, the "confirmatory reply with time request" graphical user interface elements 481A and 482A may be determined as appropriate for providing to the user and may be determined as appropriate for providing more prominently than the "declining reply" graphical user interface element 483C. Moreover, the graphical user interface elements 484C and 485C may be determined as appropriate based on the schedule data and the original email 475C. In some implementations a graphical and/or textual representation may be presented in combination with the user interface elements 481C and 482C that indicates those elements were selected based on schedule data of the user (e.g., a textual indication of "selected based on your calendar" or "your calendar indicates you are free tomorrow night").

    [0100] When graphical user interface element 484C is selected via user interface input, an invite may be generated for "tomorrow" at "7:00 PM" with a title of "dinner". In response to the selection, the invite may be included in the reply (e.g., the invite attached to the reply and/or a link to the invite embedded in the reply) and may be sent to the sender of the original email 475C (tom@exampleurl.com) and/or the other recipient of the original email 475C (spike@exampleurl.com). When graphical user interface element 485C is selected via user interface input, an availability poll may be generated based on the schedule data of the user that includes a plurality of selectable times during which the user is available as indicated by the schedule data. In response to the selection, the availability poll may be included in the reply (e.g., the availability poll attached to the reply and/or a link to the availability poll embedded in the reply) and may be sent to the sender of the original email 475C (tom@exampleurl.com) and/or the other recipient of the original email 475C (spike@exampleurl.com). Based on selections of the sender and/or other recipient, a preferred date/time may be determined and a further reply may optionally be generated that is an invite for the preferred date/time.

    [0101] In some implementations, including the invite or the availability poll in the reply includes including only the invite or the availability poll in the reply. In some other implementations, including the invite or the availability poll in the reply includes including them along with other content in the reply. For example, in some implementations user interface input may be utilized to select graphical user interface element 481C and to select graphical user interface element 484C, thereby generating a reply that includes the n-gram "Count me in." and includes an invite.

    [0102] As one example of determining the reply content represented by graphical user interface elements 481C, 482C, and 483C, one or more message features of the original email 475C may be provided as input to the trained machine learning system 135 of FIG. 1 and the trained machine learning system 135 may provide, as output, an indication that a "confirmatory reply with time request", "tentative reply with time request", and "declining reply" are appropriate responses based on the message features. The reply content engine 128 of FIG. 1 may utilize that output, and the schedule data of the user, to determine that "confirmatory replies with time requests" are most appropriate. For example, the reply content engine 128 may determine that the user is available based on the schedule data of the user, and, as a result of the user's availability, determine the confirmatory replies with time requests "Yes. What time?" and "Count me in. What time?" should be provided more prominently than the declining reply "Sorry I can't". The particular confirmatory replies with time requests represented by graphical user interface elements 481C, 482C, and 483C may be selected by the reply content engine 128 from a database of declining replies, such as past confirmatory replies with time requests of the user. It is noted that if the original email 475C included a specified time (e.g., "Spike and I are going to dinner tomorrow night at 7:00. Want to join us?") the machine learning system 135 may determine, based on message features of the original email 475C, that "confirmatory replies" are appropriate, instead of confirmatory replies "with time requests".

    [0103] As one example of determining the reply content represented by graphical user interface elements 484C and 485C, one or more message features of the original email 475A may be provided as input to the trained machine learning system 135 of FIG. 1 (the same system as referenced in the example above, or a separately trained system) and the trained machine learning system 135 may provide, as output, an indication that an "invite for a free time of the user" and an "availability poll" are appropriate responses based on the message features. The reply content engine 128 of FIG. 1 may utilize that output, and the schedule data of the user and optionally other users (when access is available), to determine that the user and/or other users are available for dinner tomorrow at 7:00 - and generate the invite represented by graphical user interface element 484C based on the availability. In some implementations, the reply content engine 128 may also determine 7:00 as an appropriate time based on user history data, for the user and/or other users, that indicates 7:00 is a popular dinner time. It is noted that if the original email 475C included a specified time (e.g., "Spike and I are going to dinner tomorrow night at 7:30. Want to join us?"), that the invite may be for that specified time. The reply content engine 128 of FIG. 1 may also utilize the output of the machine learning system 135, and the schedule data of the user, to determine one or more free times of the user for inclusion as options in the availability poll represented by graphical user interface element 485C.

    [0104] FIG. 5 illustrates another example graphical user interface, not encompassed by the wording of the claims, for providing reply content for inclusion in a reply to an electronic communication. The graphical user interface of FIG. 5 may be presented at client device 106 based on reply content that is determined and provided by reply content system 120. In FIG. 5, a user has provided user interface input (e.g., selecting a "reply" graphical user interface element) to initiate a reply to an original email and is presented with a reply section 580 that includes phantom text "Compose email" indicating to the user that the user can compose a reply in the reply section 580. The original email 575 to which the reply is responsive is also illustrated in FIG. 5 for reference of the user in generating the reply. The reply content options represented by graphical user interface elements 581, 582, and 583 are presented for inclusion in a reply to the email and, when selected via user interface input, are included in the reply.

    [0105] In FIG. 5, the reply content options represented by graphical user interface elements 581, 582, and 583 are determined based on the original email 575 and based on schedule data of the user. In the example of FIG. 5, the schedule data of the user indicates the user is available after 5:30 "tomorrow night". Based on the schedule data and the original email 575, the "reply with time suggestion" graphical user interface elements 581, 582, and 583 may be determined as appropriate for providing to the user.

    [0106] As one example, one or more message features of the original email 575 may be provided as input to the trained machine learning system 135 of FIG. 1 and the trained machine learning system 135 may provide, as output, an indication that a "reply with time suggestion", "tentative reply with time suggestion", and "declining reply" are appropriate responses based on the message features. The reply content engine 128 of FIG. 1 may utilize that output, and the schedule data of the user, to determine that "replies with time suggestions" are appropriate. The particular replies represented by graphical user interface elements 581, 582, and 583 may be determined by the reply content engine 128 based on available times indicated by the schedule data of the user and optionally other users (when access is available), and optionally based on history data, for the user and/or other users, that indicates the suggested times are popular dinner times.

    [0107] As another example, one or more message features of the original email 575 and an "available" feature of the schedule data of the user may be provided as input to the trained machine learning system 135 of FIG. 1 and the trained machine learning system 135 may provide, as output, all or portions of the particular n-grams represented by the graphical user interface elements 581, 582, and 583. For example, the trained machine learning system 135 may provide, as output, "I'm free after [end time of last event]", "How about [available time]?". The reply content engine 128 of FIG. 1 may utilize that output to generate the graphical user interface elements 581, 582, and 583.

    [0108] Turning now to FIGS. 6-8, additional description is provided of training the at least one trained machine learning system 135 of FIGS. 1 and 2 that may be utilized, for example, in various apparatus and methods described with respect to FIGS. 1-5.

    [0109] FIG. 6 illustrates an example environment in which electronic communications may be analyzed to generate training examples for training a machine learning system to generate output of one or more reply content features based on input of one or more message features and one or more schedule data features, and in which the machine learning system may be trained based on the training examples.

    [0110] The example environment of FIG. 6 includes the electronic communications system 110, the electronic communications database 152, and the schedule data 154 of one or more users of FIG. 1. The example environment of FIG. 6 also includes a machine learning system 135A that represents the at least one trained machine learning system 135 of FIG. 1 in its untrained state. The example environment of FIG. 6 also includes a selection engine 130 and a training examples system 140.

    [0111] Selection engine 130, training examples system 140, and machine learning system 135A may each be implemented in one or more computing devices that communicate, for example, through a network. Selection engine 130, training examples system 140, and machine learning system 135A are example systems in which the systems, components, and techniques described herein may be implemented and/or with which systems, components, and techniques described herein may interface. Selection engine 130, training examples system 140, and machine learning system 135A each include one or more memories for storage of data and software applications, one or more processors for accessing data and executing applications, and other components that facilitate communication over a network. In some implementations, selection engine 130 and training examples system 140 may include one or more components of the example computing device of FIG. 9. The operations performed by selection engine 130, training examples system 140, and/or machine learning system 135A may be distributed across multiple computing devices. In some implementations, one or more aspects of selection engine 130, training examples system 140, and/or machine learning system 135A may be combined in a single computing device.

    [0112] Generally, in some implementations training examples system 140 utilizes, without direct human access, past electronic communications of electronic communications database 152, and optionally associated schedule data 154, to generate training examples for training the machine learning system 135A. The training examples may be generated to train the machine learning system 135A to learn relationships between (1) one or more message features of "original" messages, optionally in combination with features related to schedule data of recipients of those original messages; and (2) one or more features related to reply content in "replies" to those original messages by the recipients.

    [0113] For example, in some implementations the machine learning system 135A may be trained to determine relationships between message features of original messages in combination with features of schedule data of recipients and a likelihood that replies to electronic communications having those message features by recipients having schedule data with those features include an invite, an availability poll, and/or a link to an invite and/or availability poll. Also, for example, in some other implementations, the machine learning system 135A may be trained to determine relationships between message features of original messages in combination with features of schedule data of recipients and one or more n-grams and/or categories of n-grams included in replies to electronic communications having those message features by recipients having schedule data with those features.

    [0114] In some implementations, the selection engine 130 may select, based on one or more criteria, communications that are utilized by the training example system 140 to generate training examples for training the machine learning system 135A. For example, the selection engine 130 may flag or otherwise annotate certain communications of the electronic communications database 152 as those that are appropriate for utilization by the training example system 140. In some implementations, the selection engine 130 may select the electronic communications that are utilized based on those electronic communications including an "original" message and a "reply" message that is responsive to the original message. As described herein, an electronic communication that includes an original message and a reply message may be a single document and/or multiple documents that are mapped to one another.

    [0115] In some implementations, the selection engine 130 may select the electronic communications that are utilized for training examples for training of the machine learning system 135A based on those electronic communications including a reply with certain reply content, such as an invite, an availability poll, a link to an invite and/or availability poll, one or more n-grams, etc. In some implementations, the selection engine 130 may select the electronic communications that are utilized based on those electronic communications including a "reply" message that is by a recipient for which schedule data is available (e.g., available via schedule data 154).

    [0116] In some implementations, the selection engine 130 may select the electronic communications that are utilized based on those electronic communications being event communications. For example, the selection engine 130 and/or other engine may determine an electronic communications is an event communication based on it including an "original" message that includes n-grams that reference a person, a place, a date, and/or a time. In some of those implementations, the selection engine 130 may include, or be in communication with, a classifier and/or other machine learning system that determines, based on features of an electronic communication, a likelihood that electronic communication pertains to an event - and may determine those electronic communications whose likelihood satisfies a threshold are event electronic communications.

    [0117] In some implementations, the selection engine 130 may employ one or more techniques to reduce the occurrence of certain types of communications that are utilized in generating training examples. For example, where the database 152 includes emails, the selection engine 130 may employ techniques to filter out emails that are likely from businesses. For instance, emails from certain e-mail addresses, emails from email addresses with certain domain names, emails from email addresses with certain prefixes, emails with certain n-grams in a subject line, etc. may be filtered out. Also, for instance, emails that conform to certain business templates may be filtered out. Also, for instance, emails that are likely spam may be filtered out. In some implementations, the selection engine 130 selects electronic communications based on other attribute(s) associated with the communications and/or the sender(s) and/or recipient(s) of the communications. For example, if it is desirable to determine relationships for a particular geographic region and/or domain, communications associated with that geographic region and/or domain may be selected.

    [0118] In various implementations, training examples system 140 includes an original message features determination engine 142, a reply content features determination engine 144, and a schedule data features engine 146. In some implementations, all or aspects of engines 142, 144, and/or 146 may be omitted, combined, and/or implemented in a component that is separate from training examples system 140. For example, in some implementations schedule data features engine 146 may be omitted and training examples generated to train a machine learning system to receive, as input, one or more message features (and not any schedule data) and provide, as output, one or more features of reply content.

    [0119] Generally, the original message features determination engine 142, the reply content features determination engine 144, and optionally the schedule data features engine 146 work in concert and determine a plurality of training examples, each based on a corresponding one of a plurality of electronic communications having an original message and a reply message. For a given electronic communication having an original message and a reply message, the original message features determination engine 142 determines a vector of original message features based on the original message of the given electronic communication, and the reply content features determination engine 144 determines a vector of one or more features of reply content based on the reply message of the given electronic communication.

    [0120] The vector of original message features and the vector of one or more features of reply content that are included in the training examples will be dependent on the desired input parameters and desired output parameter(s) of the implementation of the machine learning system 135A. For example, assume the machine learning system 135A is being trained to provide, as output, a likelihood that a reply to an electronic communication will include an invite and/or a link to an invite. In such a situation the reply content features determination engine 144 may generate training examples that each include a vector of one or more reply content features that is a single feature that is either "true" (includes an invite and/or a link to an invite) or "false" (does not include an invite and/or a link to an invite).

    [0121] As another example, assume the machine learning system 135A is being trained to provide, as output: a corresponding likelihood, for each of one or more categories of n-grams (e.g., semantic categories), that a reply message of an electronic communication will include that category. For instance: 1) a likelihood that a reply to an electronic communication includes a "confirmatory reply"; 2) a likelihood that a reply to an electronic communication includes a "declining reply"; 3) a likelihood that a reply to an electronic communication includes a "confirmatory reply with a time suggestion"; 4) a likelihood that a reply to an electronic communication includes a "declining reply with an indication of a conflicting event"; etc. In such a situation the reply content features determination engine 144 may generate training examples that each include a vector of a plurality of reply content features that are each either "true" (includes an n-gram of that category) or "false" (does not include an n-gram of that category).

    [0122] In some implementations, the reply content features determination engine 144 may determine one or more semantic categories of reply messages based on grouping electronic communications into a plurality of clusters based on similarity of reply messages of those electronic communications, and determining the semantic categories based on the clusters. In some of those implementations, the reply content features determination engine 144 groups the electronic communications into a plurality of clusters based on similarities between the text of the reply messages of the electronic communications of the corpus, such as semantic, syntactic, and/or textual similarities. Generally, the reply messages of electronic communications that are grouped in a given cluster will be more similar to one another (based on the similarities utilized in the grouping) than to the reply messages grouped in other clusters. Each of the determined clusters may to a different semantic category of content of the reply message. In some implementations, the reply content features determination engine 144 may utilize one or more clustering algorithms in grouping electronic communications into a plurality of clusters based on similarity measures between the reply messages. For example, in some implementations x-means clustering may be utilized, with the distance between reply messages being based on the similarity measures between the original messages. Generally, x-means clustering is an unsupervised method of finding the ideal k to use for k-means clustering. Generally, k-means clustering aims to partition observations into a plurality of groups, with each observation being included in a group with which it is most related. Additional and/or alternative clustering techniques may optionally be used.

    [0123] Various original message features may be determined by the original message features determination engine 142 such as syntactic, semantic, n-gram, and/or metadata based features. For example, one or more original message features may indicate whether a particular n-gram is present in one or more locations of an original message, or whether any n-gram of a particular category of n-grams is present in one or more locations of an original message. A category of n-grams may be, for example, a group of n-grams that have similar semantic meaning. As another example, an original message feature may indicate a quantity of recipients of the original email, such as "one", "two to five", or "five or more." As yet another example, an original message feature may indicate a semantic feature of one or more portions of an original message, such as a semantic feature of a subject of the original message, all or portions of the body of the original message, etc.

    [0124] As described herein, in some implementations original message features of training examples may be paired with one or more features based on schedule data of a user that generated the reply message for which the corresponding reply content features are determined by reply content features determination engine 144. For example, for a given electronic communication, the original message features engine 142 may determine one or more message features based on the original message of the electronic communication, the reply content features determination engine 144 may determine one or more reply content features based on the reply message of the electronic communication, and the schedule data features engine 146 may determine one or more schedule data features based on schedule data 154 of the user that generated the reply message of the electronic communication, where that schedule data is related to an event of the original message. For example, the schedule data features engine 146 may determine the schedule data features based on the availability of the user that generated the reply to attend the event of the original message, where that availability indicates the availability at the time the reply message was authored (e.g., based on schedule data entries of the user that do not themselves reference the event of the original message). The message features and the schedule data features may be utilized as input features of a training example and the reply content features may be utilized as the output features of the training example.

    [0125] Various schedule data features may be determined by the schedule data features engine 146. For example, the schedule data features may indicate whether the user is "available", "unavailable", or "potentially unavailable" for an event of an original message. Also, for example, the schedule data features may indicate a property of a schedule data entry that conflicts with, or potentially conflicts with, an event of an original message. The property may be, for example, a title of the schedule data entry, a duration of the schedule data entry, a category of the schedule data entry, etc. In some implementations, the schedule data features engine 146 may determine the availability of a user for an event of an original message and/or other schedule data features by searching schedule data 154 of the user based on a temporal indication (i.e., indicating a date and/or time) associated with the event of the original message. For example, the user availability may be determined based on whether the user schedule data indicates the user had an already scheduled event during or near the date and/or time associated with the event.

    [0126] The training examples generated by the training examples system 140 for the machine learning system 135A are provided to the machine learning system 135A to train the machine learning system 135A. During training, the machine learning system 135A iteratively learns a hierarchy of feature representations based on the training examples generated by the training examples system 140.

    [0127] Turning now to FIG. 7, an example is provided of how training examples may be generated based on electronic communications and used to train a machine learning system to generate output of one or more reply content features based on input of one or more message features and one or more schedule data features. The selection engine 130 may select, based on one or more criteria, communications from electronic communications database 152 that are to be utilized to generate training examples for training the machine learning system 135A. For example, the selection engine 130 may select the electronic communications based on: those electronic communications including an "original" message and a "reply" message that is responsive to the original message; those electronic communications including a "reply" message that is by a recipient for which schedule data is available (e.g., available via schedule data 154); and/or those electronic communications likely pertaining to an event.

    [0128] For a given electronic communication of the electronic communications, the original message features determination engine 142 determines a vector of original message features based on the original message of the given electronic communication and includes the original message features as input features 145A of a corresponding training example 145.

    [0129] The reply content features determination engine 144 determines a vector of one or more reply content features based on the reply message of the given electronic communication and includes the reply content features as output features 145B of the corresponding training example 145.

    [0130] The schedule data features engine 146 determines a vector of one or more schedule data features based on schedule data 154 of the user that generated the reply message and that is temporally related to an event of the original message. The schedule data features engine 146 includes the schedule data feature(s) as additional input features of the input features 145A of the training example 145

    [0131] The training example 145 is utilized to train the machine learning system 135A. Although only a single training example 145 is illustrated in FIG. 7, it is understood that the engines 142, 144, and 146 will generate a plurality of training examples (each being based on a corresponding electronic communication) and the plurality of training examples utilized to train the machine learning system 135A.

    [0132] As one specific implementation of FIG. 7, the training example 145 and all additional training examples may each have an output parameter indicative of which of a plurality of semantic categories of n-grams is included in a reply message of a corresponding electronic communication and one or more input parameters based on the original message of the corresponding electronic communication and based on the schedule data of the user that generated the reply message of the corresponding electronic communication. For instance, the reply content features determination engine 144 may generate, based on a reply message that includes "I can make it. How about 7:30?", reply content features for an output of a first training example that includes an indication of a semantic category of "confirmatory reply, with time suggestion". The original message features determination engine 142 may generate, based on a corresponding original message, original message features as input of the first training example. The original message features may include, for example, one or more syntactic, semantic, and/or n-gram based features of the original message. The schedule data features engine 146 may generate, as further input of the first training example, an "available" availability of the user based on schedule data of the user that generated the reply message.

    [0133] Also, for instance, the reply content features determination engine 144 may generate, based on a reply message that includes "Sorry, can't make it", reply content features for an output of a second training example that includes an indication of a semantic category of "declining reply". The original message features determination engine 142 may generate, based on a corresponding original message, original message features as input of the first training example. The schedule data features engine 146 may generate, as further input of the first training example, an "unavailable" availability of the user based on schedule data of the user that generated the reply message.

    [0134] Additional training examples may be similarly generated, including additional examples each having output features based on other semantic categories of n-grams. The machine learning system may be trained based on the training examples. The trained machine learning system may receive, as input, one or more features of an original message and schedule data of a user that pertains to an event of the original message and provide, as output, one or more semantic categories of n-grams and optionally associated likelihoods to be included in a reply to the original message.

    [0135] FIG. 8 is a flow chart illustrating an example method of generating training examples and using the training examples to train a machine learning system to generate output of one or more reply content features based on input of one or more message features and one or more schedule data features. For convenience, the operations of the flow chart are described with reference to a system that performs the operations. This system may include various components of various computer systems. For instance, some operations may be performed by one or more components of the training example system 140 and/or the machine learning system 135A of FIG. 6. Moreover, while operations of the method of FIG. 8 are shown in a particular order, this is not meant to be limiting. One or more operations may be reordered, omitted or added.

    [0136] At block 800, the system identifies event electronic communications that each includes an original message and a reply message.

    [0137] At block 802, the system generates input features of a training example based on the original message of one of the electronic communications and user availability associated with the user that generated the corresponding reply message.

    [0138] At block 804, the system generates output feature(s) of the training example based on reply content associated with the reply message of the electronic communication. For example, in one implementation the output feature(s) may be either "true" or "false" and will be true if the reply message includes an invite and/or link to an invite, and false otherwise. Also, for example, in another implementation the output feature(s) may be include multiple features that are each either "true" or "false", and that are each indicative of whether the reply message includes a particular sematic and/or other category of n-gram . For instance, a first feature may indicate "confirmatory replies", a second feature may indicate "declining replies", etc.

    [0139] At block 806, the system trains a machine learning system based on the training example.

    [0140] Although the method of FIG. 8 is described with respect to a single training example, it is understood that one or more of the steps (e.g., blocks 802, 804, and 806) may be performed iteratively to determine multiple training examples and train the machine learning system based on the multiple training examples.

    [0141] In situations in which the systems described herein collect personal information about users, or may make use of personal information, the users may be provided with an opportunity to control whether programs or features collect user information (e.g., information about a user's social network, social actions or activities, profession, a user's preferences, or a user's current geographic location), or to control whether and/or how to receive content from the content server that may be more relevant to the user. Also, certain data may be treated in one or more ways before it is stored or used, so that personal identifiable information is removed. For example, a user's identity may be treated so that no personal identifiable information can be determined for the user, or a user's geographic location may be generalized where geographic location information is obtained (such as to a city, ZIP code, or state level), so that a particular geographic location of a user cannot be determined. Thus, the user may have control over how information is collected about the user and/or used.

    [0142] FIG. 9 is a block diagram of an example computing device 910. Computing device 910 typically includes at least one processor 914 which communicates with a number of peripheral devices via bus subsystem 912. These peripheral devices may include a storage subsystem 924, including, for example, a memory subsystem 925 and a file storage subsystem 926, user interface output devices 920, user interface input devices 922, and a network interface subsystem 916. The input and output devices allow user interaction with computing device 910. Network interface subsystem 916 provides an interface to outside networks and is coupled to corresponding interface devices in other computing devices.

    [0143] User interface input devices 922 may include a keyboard, pointing devices such as a mouse, trackball, touchpad, or graphics tablet, a scanner, a touchscreen incorporated into the display, audio input devices such as voice recognition systems, microphones, and/or other types of input devices. In general, use of the term "input device" is intended to include all possible types of devices and ways to input information into computing device 910 or onto a communication network.

    [0144] User interface output devices 920 may include a display subsystem, a printer, a fax machine, or non-visual displays such as audio output devices. The display subsystem may include a cathode ray tube (CRT), a flat-panel device such as a liquid crystal display (LCD), a projection device, or some other mechanism for creating a visible image. The display subsystem may also provide non-visual display such as via audio output devices. In general, use of the term "output device" is intended to include all possible types of devices and ways to output information from computing device 910 to the user or to another machine or computing device.

    [0145] Storage subsystem 924 stores programming and data constructs that provide the functionality of some or all of the modules described herein. For example, the storage subsystem 924 may include the logic to perform selected aspects of the methods of FIG. 3 and/or FIG. 8.

    [0146] These software modules are generally executed by processor 917 alone or in combination with other processors. Memory 925 used in the storage subsystem can include a number of memories including a main random access memory (RAM) 930 for storage of instructions and data during program execution and a read only memory (ROM) 932 in which fixed instructions are stored. A file storage subsystem 926 can provide persistent storage for program and data files, and may include a hard disk drive, a floppy disk drive along with associated removable media, a CD-ROM drive, an optical drive, or removable media cartridges. The modules implementing the functionality of certain implementations may be stored by file storage subsystem 926 in the storage subsystem 927, or in other machines accessible by the processor(s) 917.

    [0147] Bus subsystem 912 provides a mechanism for letting the various components and subsystems of computing device 910 communicate with each other as intended. Although bus subsystem 912 is shown schematically as a single bus, alternative implementations of the bus subsystem may use multiple busses.

    [0148] Computing device 910 can be of varying types including a workstation, server, computing cluster, blade server, server farm, or any other data processing system or computing device. Due to the ever-changing nature of computers and networks, the description of computing device 910 depicted in FIG. 9 is intended only as a specific example for purposes of illustrating some implementations. Many other configurations of computing device 910 are possible having more or fewer components than the computing device depicted in FIG. 9.


    Claims

    1. A computer-implemented method for training a machine learning system to provide reply content to an electronic communication and for sending a reply short message, comprising:

    identifying a corpus of event electronic communications of a plurality of users, the event electronic communications of the corpus each including original content that references an event, each including reply content that is responsive to the original content, and each being associated with user availability of an author of the reply content, wherein the user availability indicates availability of the author, when the reply content was authored, to attend the event;

    generating a plurality of training examples based on the event electronic communications, wherein generating each of the training examples is based on a corresponding event electronic communication of the event electronic communications and comprises:

    generating a plurality of input features based on the original content of the corresponding event electronic communication and the user availability associated with the corresponding reply event electronic communication, and

    generating at least one output feature based on the reply content of the corresponding event electronic communication;

    training a machine learning system based on the training examples to generate a trained machine learning system;

    receiving a new electronic communication sent to a user;

    generating new input features based on the new electronic communication and based on schedule data of the user, wherein the generation of new input features further comprises:

    determining a temporal indication associated with an event of the electronic communication, the temporal indication identifying at least a time or date associated with the event;

    searching the schedule data of the user based on the temporal indication;

    determining, based on the searching, the availability of the user for the event;

    determining one or more additional message features of the electronic communication, the additional message features being in addition to the temporal indication;

    providing the new input features as input to the trained machine learning system;

    receiving output from the trained machine learning system in response to providing the new input features to the trained machine learning system; and

    using the output from the trained machine learning system to generate textual reply content based on the availability of the user and based on the one or more additional message features, the textual reply content including one or more n-grams that are not included in the electronic communication for providing the textual reply content for presentation to the user via a computing device of the user for inclusion in a reply by the user to the new electronic communication;

    providing, by a presentation engine, the textual reply content for inclusion in the reply electronic communication via a graphical indication of the textual reply content;

    receiving an indication of the textual reply content via a user interface input device;

    selecting the textual reply content via the computing device; and

    in response to selecting the textual reply content, automatically populating the textual reply content into a body of the reply electronic communication to the new electronic communication, wherein the reply electronic communication is a short message that is sent via the computing device.


     
    2. The computer-implemented method of claim 1, wherein the at least one output feature indicates whether the reply content includes an invite or a link to an invite.
     
    3. The computer-implemented method of claim 1, wherein the at least one output feature indicates whether the reply content includes an availability poll or a link to an availability poll.
     
    4. The computer-implemented method of claim 1, wherein the at least one output feature indicates at least one textual feature of the textual reply content.
     
    5. The computer-implemented method of claim 1, wherein the input features of the training examples do not include any features from the textual reply content.
     
    6. The computer-implemented method of claim 1, wherein searching the schedule data of the user occurs independent of any textual input provided via a computing device of the user in generating the reply electronic communication, wherein the computing device of the user is one of the computing devices or is in addition to the computing devices, and wherein providing the textual reply content for inclusion in the reply electronic communication preferably occurs independent of any textual input provided via the computing device in generating the reply electronic communication.
     
    7. The computer-implemented method of claim 1, wherein determining the temporal indication associated with the event of the electronic communication comprises:
    determining the temporal indication based on one or more temporal n-grams of the electronic communication, and preferably further comprising:

    determining one or more event n-grams of the electronic communication that each reference a location of the event or a type of the event; and

    determining the temporal n-grams based on a syntactic relationship between the temporal n-grams and the event n-grams in the electronic communication.


     
    8. The computer-implemented method of claim 1, wherein generating the textual reply content comprises generating a first reply n-gram and generating a separate second reply n-gram; and
    wherein providing the reply content for inclusion in the reply electronic communication comprises:
    providing both the first reply n-gram and the second reply n-gram for inclusion in the reply to the electronic communication, and preferably further comprising:

    ranking the first reply n-gram and the second reply n-gram relative to one another; and

    determining, based on the ranking, a prominence for providing the first reply n-gram and the second reply n-gram;

    wherein providing the first reply n-gram and the second reply n-gram for inclusion in the reply electronic communication comprises providing the first reply n-gram and the second reply n-gram with an indication of the prominences.


     
    9. The computer-implemented method of claim 1, wherein providing the textual reply content for inclusion in the reply electronic communication comprises:
    providing a graphical indication of the textual reply content and providing a graphical indication that the textual reply content is based on the availability of the user.
     
    10. The computer-implemented method of claim 1, wherein providing the textual reply content for inclusion in the reply electronic communication comprises:
    incorporating the textual reply content in the reply electronic communication without requiring confirmation by the user via user interface input initiated by the user.
     
    11. The computer-implemented method of claim 1, wherein generating the textual reply content comprises generating a first reply n-gram and generating a separate second reply n-gram; and
    wherein providing the reply content for inclusion in the reply electronic communication comprises:

    providing a first graphical indication of the first reply n-gram and a second graphical indication of the second reply n-gram;

    receiving a selection of one of the first graphical indication and the second graphical indication via a user interface input device; and

    in response to receiving the selection, incorporating a corresponding one of the first reply n-gram and the second reply n-gram in the reply.


     
    12. The computer-implemented method of claim 1, wherein generating the textual reply content comprises:

    providing the additional message features and the availability of the user as input to a trained machine learning system;

    receiving at least one reply content feature as output from the trained machine learning system; and

    generating the textual reply content based on the at least one reply content feature received as output from the trained machine learning system, and wherein the additional message features preferably comprise a first message feature based on an n-gram in a body of the electronic communication.


     
    13. The computer-implemented method of claim 12, further comprising:

    labeling, by one or more of the computing devices, each of a plurality of n-grams of the electronic communication with at least one corresponding grammatical annotation;

    wherein determining the first message feature comprises selecting the n-gram based on the corresponding grammatical annotation of the n-gram, and determining the first message feature based on the n-gram.


     
    14. A system for training a machine learning system to provide reply content to an electronic communication and for sending a reply short message, comprising:

    at least one processor;

    memory coupled to the processor, wherein the memory stores instructions to be executed by the processor to perform steps comprising:

    identifying a corpus of event electronic communications of a plurality of users, the event electronic communications of the corpus each including original content that references an event, each including reply content that is responsive to the original content, and each being associated with user availability of an author of the reply content, wherein the user availability indicates availability of the author, when the reply content was authored, to attend the event;

    generating a plurality of training examples based on the event electronic communications, wherein generating each of the training examples is based on a corresponding event electronic communication of the event electronic communications and comprises:

    generating a plurality of input features based on the original content of the corresponding event electronic communication and the user availability associated with the corresponding reply event electronic communication, and

    generating at least one output feature based on the reply content of the corresponding event electronic communication;

    training a machine learning system based on the training examples to generate a trained machine learning system;

    receiving a new electronic communication sent to a user;

    generating new input features based on the new electronic communication and based on schedule data of the user, wherein the generation of new input features further comprises:

    determining a temporal indication associated with an event of the electronic communication, the temporal indication identifying at least a time or date associated with the event;

    searching the schedule data of the user based on the temporal indication;

    determining, based on the searching, the availability of the user for the event;

    determining one or more additional message features of the electronic communication, the additional message features being in addition to the temporal indication;

    providing the new input features as input to the trained machine learning system;

    receiving output from the trained machine learning system in response to providing the new input features to the trained machine learning system; and

    using the output from the trained machine learning system to generate textual reply content based on the availability of the user and based on the one or more additional message features, the textual reply content including one or more n-grams that are not included in the electronic communication for providing the textual reply content for presentation to the user via a computing device of the user for inclusion in a reply by the user to the new electronic communication;

    providing, by a presentation engine, the textual reply content for inclusion in the reply electronic communication via a graphical indication of the textual reply content;

    receiving an indication of the textual reply content via a user interface input device;

    selecting the textual reply content via the computing device; and

    in response to selecting the textual reply content, automatically populating the textual reply content into a body of the reply electronic communication to the new electronic communication, wherein the reply electronic communication is a short message that is sent via the computing device.


     


    Ansprüche

    1. Computerimplementiertes Verfahren zum Trainieren eines maschinellen Lernsystems, um Antwortinhalte für eine elektronische Kommunikation bereitzustellen, und zum Senden einer Antwortkurznachricht, wobei das Verfahren folgende Schritte umfasst:

    Identifizieren eines Korpus von elektronischen Ereigniskommunikationen einer Mehrzahl von Benutzern, wobei die elektronischen Ereigniskommunikationen des Korpus jeweils ursprünglichen Inhalt enthalten, der sich auf ein Ereignis bezieht, wobei jede einen Antwortinhalt enthält, der auf den ursprünglichen Inhalt reagiert, und wobei jede mit der Benutzerverfügbarkeit eines Autors des Antwortinhalts assoziiert ist, wobei die Benutzerverfügbarkeit die Verfügbarkeit des Autors anzeigt, wenn der Antwortinhalt verfasst wurde, um an dem Ereignis teilzunehmen;

    Erzeugen einer Mehrzahl von Trainingsbeispielen basierend auf den elektronischen Ereigniskommunikationen, wobei Erzeugen jedes der Trainingsbeispiele auf einer entsprechenden elektronischen Ereigniskommunikation der elektronischen Ereigniskommunikationen basiert und folgende Schritte umfasst:

    Erzeugen einer Mehrzahl von Eingabemerkmalen basierend auf dem ursprünglichen Inhalt der entsprechenden elektronischen Ereigniskommunikation und der mit der entsprechenden elektronischen Antwortereigniskommunikation verbundenen Benutzerverfügbarkeit, und

    Erzeugen mindestens eines Ausgabemerkmals basierend auf dem Antwortinhalt der entsprechenden elektronischen Ereigniskommunikation;

    Trainieren eines maschinellen Lernsystems basierend auf den Trainingsbeispielen, um ein trainiertes maschinelles Lernsystem zu erzeugen;

    Empfangen einer neuen elektronischen Mitteilung, die an einen Benutzer gesendet wurde;

    Erzeugen neuer Eingabemerkmale basierend auf der neuen elektronischen Kommunikation und basierend auf Zeitplandaten des Benutzers, wobei Erzeugen neuer Eingabemerkmale ferner umfasst:

    Bestimmen einer zeitlichen Angabe, die mit einem Ereignis der elektronischen Kommunikation verbunden ist, wobei die zeitliche Angabe mindestens eine Zeit oder ein Datum identifiziert, die mit dem Ereignis verbunden sind;

    Durchsuchen der Zeitplandaten des Benutzers basierend auf der zeitlichen Angabe;

    Bestimmen, basierend auf der Suche, der Verfügbarkeit des Benutzers für das Ereignis;

    Bestimmen eines oder mehrerer zusätzlicher Nachrichtenmerkmale der elektronischen Kommunikation, wobei die zusätzlichen Nachrichtenmerkmale zusätzlich zu der zeitlichen Angabe vorhanden sind;

    Bereitstellen der neuen Eingabemerkmale als Eingabe für das trainierte maschinelle Lernsystem;

    Empfangen der Ausgabe von dem trainierten maschinellen Lernsystem als Reaktion auf das Bereitstellen der neuen Eingangsmerkmale an das trainierte maschinelle Lernsystem; und

    Verwenden der Ausgabe von dem trainierten maschinellen Lernsystem, um textuellen Antwortinhalt basierend auf der Verfügbarkeit des Benutzers und basierend auf dem einen oder den mehreren zusätzlichen Nachrichtenmerkmalen zu erzeugen, wobei der textuelle Antwortinhalt ein oder mehrere n-Gramme enthält, die nicht in der elektronischen Kommunikation enthalten sind, um den textuellen Antwortinhalt zur Präsentation für den Benutzer über eine Computervorrichtung des Benutzers zur Aufnahme in eine Antwort durch den Benutzer auf die neue elektronische Kommunikation bereitzustellen;

    Bereitstellen des textuellen Antwortinhalts durch eine Präsentationsmaschine zur Aufnahme in die elektronische Antwortkommunikation mittels einer grafischen Anzeige des textuellen Antwortinhalts;

    Empfangen eines Hinweises auf den textuellen Antwortinhalt über eine Eingabevorrichtung der Benutzerschnittstelle;

    Auswählen des textuellen Antwortinhalts über die Computervorrichtung; und

    als Reaktion auf die Auswahl des textuellen Antwortinhalts, automatisches Einfügen des textuellen Antwortinhalts in einen Hauptteil der elektronischen Antwortkommunikation auf die neue elektronische Kommunikation, wobei die elektronische Antwortkommunikation eine Kurznachricht ist, die über die Computervorrichtung gesendet wird.


     
    2. Computerimplementiertes Verfahren nach Anspruch 1, wobei das mindestens eine Ausgabemerkmal anzeigt, ob der Antwortinhalt eine Einladung oder einen Link zu einer Einladung enthält.
     
    3. Computerimplementiertes Verfahren nach Anspruch 1, wobei das mindestens eine Ausgabemerkmal angibt, ob der Antwortinhalt eine Verfügbarkeitsabfrage oder einen Link zu einer Verfügbarkeitsabfrage enthält.
     
    4. Computerimplementiertes Verfahren nach Anspruch 1, wobei das mindestens eine Ausgabemerkmal mindestens ein Textmerkmal des textuellen Antwortinhalts angibt.
     
    5. Computerimplementiertes Verfahren nach Anspruch 1, wobei die Eingabemerkmale der Trainingsbeispiele keine Merkmale aus dem textuellen Antwortinhalt enthalten.
     
    6. Computerimplementiertes Verfahren nach Anspruch 1, wobei das Durchsuchen der Zeitplandaten des Benutzers unabhängig von jeglicher Texteingabe erfolgt, die über eine Computervorrichtung des Benutzers beim Erzeugen der elektronischen Antwortkommunikation bereitgestellt wird, wobei die Computervorrichtung des Benutzers eine der Computervorrichtungen ist oder zusätzlich zu den Computervorrichtungen vorhanden ist, und wobei das Bereitstellen des textuellen Antwortinhalts zur Aufnahme in die elektronische Antwortkommunikation vorzugsweise unabhängig von jeglicher Texteingabe erfolgt, die über die Computervorrichtung beim Erzeugen der elektronischen Antwortkommunikation bereitgestellt wird.
     
    7. Computerimplementiertes Verfahren nach Anspruch 1, wobei Bestimmen der zeitlichen Anzeige, die mit dem Ereignis der elektronischen Kommunikation verbunden ist, umfasst:
    Bestimmen der zeitlichen Angabe basierend auf einem oder mehreren zeitlichen n-Gramme der elektronischen Kommunikation, und vorzugsweise weiter umfasst:

    Bestimmen eines oder mehrerer Ereignis-n-Gramme der elektronischen Kommunikation, die sich jeweils auf einen Ort des Ereignisses oder einen Typ des Ereignisses beziehen; und

    Bestimmen der zeitlichen n-Gramme basierend auf einer syntaktischen Beziehung zwischen den zeitlichen n-Grammen und den Ereignis-n-Grammen in der elektronischen Kommunikation.


     
    8. Computerimplementiertes Verfahren nach Anspruch 1, wobei Erzeugen des textuellen Antwortinhalts Erzeugen eines ersten Antwort-n-Gramms und Erzeugen eines separaten zweiten Antwort-n-Gramms umfasst; und
    wobei das Bereitstellen des Antwortinhalts zur Aufnahme in die elektronische Antwortkommunikation umfasst:
    Bereitstellen sowohl des ersten Antwort-n-Grams als auch des zweiten Antwort-n-Grams zur Aufnahme in die Antwort auf die elektronische Kommunikation, und vorzugsweise weiter umfasst:

    Einstufen des ersten Antwort-n-Grams und des zweiten Antwort-n-Grams relativ zueinander; und

    Bestimmen, basierend auf dem Einstufen, einer Prominenz für das Bereitstellen des ersten Antwort-n-Grams und des zweiten Antwort-n-Grams;

    wobei das Bereitstellen des ersten Antwort-n-Gramms und des zweiten Antwort-n-Gramms zur Aufnahme in die elektronische Antwortkommunikation das Bereitstellen des ersten Antwort-n-Gramms und des zweiten Antwort-n-Gramms mit einem Hinweis auf die Prominenz umfasst.


     
    9. Computerimplementiertes Verfahren nach Anspruch 1, wobei das Bereitstellen des textuellen Antwortinhalts zur Aufnahme in die elektronische Antwortkommunikation umfasst:
    Bereitstellen einer grafischen Anzeige des textuellen Antwortinhalts und Bereitstellen einer grafischen Anzeige, dass der textliche Antwortinhalt auf der Verfügbarkeit des Benutzers basiert.
     
    10. Computerimplementiertes Verfahren nach Anspruch 1, wobei das Bereitstellen des textuellen Antwortinhalts zur Aufnahme in die elektronische Antwortkommunikation umfasst:
    Aufnehmen des textuellen Antwortinhalts in die elektronische Antwortkommunikation, ohne dass eine Bestätigung durch den Benutzer über eine vom Benutzer initiierte Eingabe auf der Benutzeroberfläche erforderlich ist.
     
    11. Computerimplementiertes Verfahren nach Anspruch 1, wobei Erzeugen des textuellen Antwortinhalts Erzeugen eines ersten Antwort-n-Grams und Erzeugen eines separaten zweiten Antwort-n-Grams umfasst; und
    wobei das Bereitstellen des Antwortinhalts zur Aufnahme in die elektronische Antwortkommunikation umfasst:

    Bereitstellen einer ersten grafischen Anzeige des ersten Antwort-n-Grams und einer zweiten grafischen Anzeige des zweiten Antwort-n-Grams;

    Empfangen einer Auswahl aus der ersten grafischen Anzeige und der zweiten grafischen Anzeige über eine Benutzerschnittstellen-Eingabevorrichtung; und

    als Reaktion auf den Empfang der Auswahl ein entsprechendes des ersten Antwort-n-Gramms und des zweiten Antwort-n-Gramms in die Antwort aufzunehmen.


     
    12. Computerimplementiertes Verfahren nach Anspruch 1, wobei Erzeugen des textuellen Antwortinhalts umfasst:

    Bereitstellen der zusätzlichen Nachrichtenmerkmale und der Verfügbarkeit des Benutzers als Eingabe für ein trainiertes maschinelles Lernsystem;

    Empfangen mindestens eines Antwortinhaltsmerkmals als Ausgabe von dem trainierten maschinellen Lernsystem; und

    Erzeugen des textuellen Antwortinhalts basierend auf dem mindestens einen Antwortinhaltsmerkmal, das als Ausgabe von dem trainierten maschinellen Lernsystem empfangen wird, und wobei die zusätzlichen Nachrichtenmerkmale vorzugsweise ein erstes Nachrichtenmerkmal basierend auf einem n-Gram in einem Hauptteil der elektronischen Kommunikation umfasst.


     
    13. Computerimplementiertes Verfahren nach Anspruch 12, das ferner Folgendes umfasst:

    Kennzeichnen jedes einer Mehrzahl von n-Grammen der elektronischen Kommunikation mit mindestens einer entsprechenden grammatikalischen Anmerkung durch eine oder mehrere der Computervorrichtungen;

    wobei das Bestimmen des ersten Nachrichtenmerkmals das Auswählen des n-Grams basierend auf der entsprechenden grammatikalischen Anmerkung des n-Grams und das Bestimmen des ersten Nachrichtenmerkmals basierend auf dem n-Gram umfasst.


     
    14. System zum Trainieren eines maschinellen Lernsystems zum Bereitstellen von Antwortinhalten für eine elektronische Kommunikation und zum Senden einer Antwort-Kurznachricht, wobei das System Folgendes umfasst:

    mindestens einen Prozessor;

    Speicher, der mit dem Prozessor verbunden ist, wobei der Speicher Anweisungen speichert, die von dem Prozessor ausgeführt werden sollen, um Schritte durchzuführen, die Folgendes umfasst:

    Identifizieren eines Korpus von elektronischen Ereigniskommunikationen einer Mehrzahl von Benutzern, wobei die elektronischen Ereigniskommunikationen des Korpus jeweils ursprünglichen Inhalt enthalten, der sich auf ein Ereignis bezieht, wobei jede einen Antwortinhalt enthält, der auf den ursprünglichen Inhalt reagiert, und wobei jede mit der Benutzerverfügbarkeit eines Autors des Antwortinhalts assoziiert ist, wobei die Benutzerverfügbarkeit die Verfügbarkeit des Autors anzeigt, wenn der Antwortinhalt verfasst wurde, um an dem Ereignis teilzunehmen;

    Erzeugen einer Mehrzahl von Trainingsbeispielen basierend auf den elektronischen Ereigniskommunikationen, wobei Erzeugen jedes der Trainingsbeispiele auf einer entsprechenden elektronischen Ereigniskommunikation der elektronischen Ereigniskommunikationen basiert und folgende Schritte umfasst:

    Erzeugen einer Mehrzahl von Eingabemerkmalen basierend auf dem ursprünglichen Inhalt der entsprechenden elektronischen Ereigniskommunikation und der mit der entsprechenden elektronischen Antwort-Ereigniskommunikation verbundenen Benutzerverfügbarkeit, und

    Erzeugen mindestens eines Ausgabemerkmals basierend auf dem Antwortinhalt der entsprechenden elektronischen Ereigniskommunikation;

    Trainieren eines maschinellen Lernsystems basierend auf den Trainingsbeispielen, um ein trainiertes maschinelles Lernsystem zu erzeugen;

    Empfangen einer neuen elektronischen Mitteilung, die an einen Benutzer gesendet wurde;

    Erzeugen neuer Eingabemerkmale basierend auf der neuen elektronischen Kommunikation und basierend auf Zeitplandaten des Benutzers, wobei Erzeugen neuer Eingabemerkmale ferner umfasst:

    Bestimmen einer zeitlichen Angabe, die mit einem Ereignis der elektronischen Kommunikation verbunden ist, wobei die zeitliche Angabe mindestens eine Zeit oder ein Datum identifiziert, die mit dem Ereignis verbunden sind;

    Durchsuchen der Zeitplandaten des Benutzers basierend auf der zeitlichen Angabe;

    Bestimmen, basierend auf der Suche, der Verfügbarkeit des Benutzers für das Ereignis;

    Bestimmen eines oder mehrerer zusätzlicher Nachrichtenmerkmale der elektronischen Kommunikation, wobei die zusätzlichen Nachrichtenmerkmale zusätzlich zu der zeitlichen Angabe vorhanden sind;

    Bereitstellen der neuen Eingabemerkmale als Eingabe für das trainierte maschinelle Lernsystem;

    Empfangen der Ausgabe von dem trainierten maschinellen Lernsystem als Reaktion auf das Bereitstellen der neuen Eingangsmerkmale an das trainierte maschinelle Lernsystem; und

    Verwenden der Ausgabe von dem trainierten maschinellen Lernsystem, um textuellen Antwortinhalt basierend auf der Verfügbarkeit des Benutzers und basierend auf dem einen oder den mehreren zusätzlichen Nachrichtenmerkmalen zu erzeugen, wobei der textuelle Antwortinhalt ein oder mehrere n-Gramme enthält, die nicht in der elektronischen Kommunikation enthalten sind, um den textuellen Antwortinhalt zur Präsentation für den Benutzer über eine Computervorrichtung des Benutzers zur Aufnahme in eine Antwort durch den Benutzer auf die neue elektronische Kommunikation bereitzustellen;

    Bereitstellen des textuellen Antwortinhalts durch eine Präsentationsmaschine zur Aufnahme in die elektronische Antwortkommunikation mittels einer grafischen Anzeige des textuellen Antwortinhalts;

    Empfangen eines Hinweises auf den textuellen Antwortinhalt über eine Eingabevorrichtung der Benutzerschnittstelle;

    Auswählen des textuellen Antwortinhalts über die Computervorrichtung; und

    als Reaktion auf die Auswahl des textuellen Antwortinhalts, automatisches Einfügen des textuellen Antwortinhalts in einen Hauptteil der elektronischen Antwortkommunikation auf die neue elektronische Kommunikation, wobei die elektronische Antwortkommunikation eine Kurznachricht ist, die über die Computervorrichtung gesendet wird.


     


    Revendications

    1. Un procédé mis en œuvre par ordinateur pour entraîner un système d'apprentissage automatique à fournir un contenu de réponse à une communication électronique et à envoyer un message court de réponse, comprenant :

    le fait d'identifier un corpus de communications électroniques d'événements d'une pluralité d'utilisateurs, les communications électroniques d'événements du corpus comprenant chacune un contenu original faisant référence à un événement, chacune comprenant un contenu de réponse répondant au contenu original, et chacune étant associée à une disponibilité d'utilisateur d'un auteur du contenu de réponse, la disponibilité d'utilisateur indiquant la disponibilité de l'auteur, lorsque le contenu de réponse a été créé, pour assister à l'événement ;

    le fait de générer une pluralité d'exemples d'entraînement à partir des communications électroniques d'événements, la génération de chacun des exemples d'entraînement étant sur la base une communication électronique d'événement correspondante des communications électroniques d'événements et comprend :

    le fait de générer une pluralité de caractéristiques d'entrée sur la base du contenu d'origine de la communication électronique d'événement correspondante et de la disponibilité d'utilisateur associée à la communication électronique d'événement de réponse correspondante, et

    le fait de générer au moins une caractéristique de sortie sur la base du contenu de réponse de la communication électronique événementielle correspondante ;

    le fait d'entraîner un système d'apprentissage automatique sur la base des exemples d'entraînement de façon à générer un système d'apprentissage automatique entraîné ;

    le fait de recevoir une nouvelle communication électronique adressée à un utilisateur ;

    le fait de générer de nouvelles caractéristiques d'entrée sur la base de la nouvelle communication électronique et sur la base de données d'emploi du temps de l'utilisateur, la génération de nouvelles caractéristiques d'entrée comprenant en outre :

    le fait de déterminer une indication temporelle associée à un événement de la communication électronique, l'indication temporelle identifiant au moins une heure ou une date associée à l'événement ;

    le fait de rechercher les données d'emploi du temps de l'utilisateur sur la base de l'indication temporelle ;

    le fait de déterminer, en fonction de la recherche, la disponibilité de l'utilisateur pour l'événement ;

    le fait de déterminer une ou plusieurs caractéristiques supplémentaires de message de la communication électronique, les caractéristiques supplémentaires de message s'ajoutant à l'indication temporelle ;

    le fait de fournir les nouvelles caractéristiques d'entrée en tant qu'entrée au système d'apprentissage automatique entraîné ;

    le fait de recevoir une sortie en provenance du système d'apprentissage automatique entraîné en réponse à la fourniture des nouvelles caractéristiques d'entrée au système d'apprentissage automatique entraîné ; et

    le fait d'utiliser la sortie provenant du système d'apprentissage automatique entraîné pour générer un contenu textuel de réponse basé sur la disponibilité de l'utilisateur et sur la base desdites une ou plusieurs caractéristiques de message supplémentaires, le contenu textuel de réponse comprenant un ou plusieurs n-grammes qui ne sont pas inclus dans la communication électronique pour fournir le contenu textuel de réponse en vue d'une présentation à l'utilisateur via un dispositif informatique de l'utilisateur pour inclusion dans une réponse par l'utilisateur à la nouvelle communication électronique ;

    le fait de fournir, par un moteur de présentation, le contenu textuel de réponse pour inclusion dans la communication électronique de réponse via une indication graphique du contenu textuel de réponse ;

    le fait de recevoir une indication du contenu textuel de réponse via un dispositif d'entrée d'interface utilisateur ;

    le fait de sélectionner le contenu textuel de réponse via le dispositif informatique ; et

    en réponse à la sélection du contenu textuel de réponse, le fait de remplir automatiquement le contenu textuel de réponse dans un corps de la communication électronique de réponse à la nouvelle communication électronique, la communication électronique de réponse étant un message court qui est envoyé via le dispositif informatique.


     
    2. Le procédé mis en œuvre par ordinateur selon la revendication 1, dans lequel ladite au moins une caractéristique de sortie indique si le contenu de réponse comprend une invitation ou un lien vers une invitation.
     
    3. Le procédé mis en œuvre par ordinateur selon la revendication 1, dans lequel ladite au moins une caractéristique de sortie indique si le contenu de réponse comprend une interrogation de disponibilité ou un lien vers une interrogation de disponibilité.
     
    4. Le procédé mis en œuvre par ordinateur selon la revendication 1, dans lequel ladite au moins une caractéristique de sortie indique au moins une caractéristique textuelle du contenu textuel de réponse.
     
    5. Le procédé mis en œuvre par ordinateur selon la revendication 1, dans lequel les caractéristiques d'entrée des exemples d'entraînement n'incluent aucune caractéristique provenant du contenu textuel de réponse.
     
    6. Le procédé mis en œuvre par ordinateur selon la revendication 1, dans lequel la recherche des données d'emploi du temps de l'utilisateur se produit indépendamment de toute entrée textuelle fournie via un dispositif informatique de l'utilisateur lors de la génération de la communication électronique de réponse, le dispositif informatique de l'utilisateur étant un dispositif informatique parmi les dispositifs informatiques ou s'ajoute aux dispositifs informatiques, et dans lequel la fourniture du contenu textuel de réponse à inclure dans la communication électronique de réponse se produit de préférence indépendamment de toute entrée textuelle fournie via le dispositif informatique lors de la génération de la communication électronique de réponse.
     
    7. Le procédé mis en œuvre par ordinateur selon la revendication 1, dans lequel la détermination de l'indication temporelle associée à l'événement de la communication électronique comprend :
    le fait de déterminer l'indication temporelle sur la base d'un ou plusieurs n-grammes temporels de la communication électronique, et de préférence comprenant en outre :

    le fait de déterminer un ou plusieurs n-grammes d'événement de la communication électronique qui référencent chacun un lieu de l'événement ou un type de l'événement ; et

    le fait de déterminer les n-grammes temporels sur la base d'une relation syntaxique entre les n-grammes temporels et les n-grammes d'événements dans la communication électronique.


     
    8. Le procédé mis en œuvre par ordinateur selon la revendication 1, dans lequel la génération du contenu textuel de réponse comprend le fait de générer un premier n-gramme de réponse et de générer un deuxième n-gramme de réponse séparé ; et
    la fourniture du contenu de réponse à inclure dans la communication électronique de réponse comprend :
    le fait de fournir à la fois le premier n-gramme de réponse et le deuxième n-gramme de réponse à inclure dans la réponse à la communication électronique, et comprenant en outre de préférence :

    le fait de classer le premier n-gramme de réponse et le deuxième n-gramme de réponse l'un par rapport à l'autre ; et

    le fait de déterminer, en fonction du classement, une proéminence pour fournir le premier n-gramme de réponse et le deuxième n-gramme de réponse ;

    le fait de fournir le premier n-gramme de réponse et le deuxième n-gramme de réponse pour inclusion dans la communication électronique de réponse comprend le fait de fournir une indication des proéminences au premier n-gramme de réponse et au deuxième n-gramme de réponse.


     
    9. Le procédé mis en œuvre par ordinateur selon la revendication 1, dans lequel la fourniture du contenu textuel de réponse à inclure dans la communication électronique de réponse comprend :
    le fait de fournir une indication graphique du contenu textuel de réponse et de fournir une indication graphique que le contenu textuel de réponse est basé sur la disponibilité de l'utilisateur.
     
    10. Le procédé mis en œuvre par ordinateur selon la revendication 1, dans lequel la fourniture du contenu textuel de réponse à inclure dans la communication électronique de réponse comprend :
    le fait d'incorporer le contenu textuel de réponse dans la communication électronique de réponse sans nécessiter de confirmation de la part de l'utilisateur via une saisie d'interface utilisateur initiée par l'utilisateur.
     
    11. Le procédé mis en œuvre par ordinateur selon l'une quelconque des revendications 1 à 10, dans lequel la génération du contenu textuel de réponse comprend le fait de générer un premier n-gramme de réponse et de générer un deuxième n-gramme de réponse séparé ; et
    la fourniture du contenu de réponse à inclure dans la communication électronique de réponse comprend :

    le fait de fournir une première indication graphique du premier n-gramme de réponse et une deuxième indication graphique du deuxième n-gramme de réponse ;

    le fait de recevoir une sélection de l'une parmi la première indication graphique et la deuxième indication graphique via un dispositif d'entrée d'interface utilisateur ; et

    en réponse à la réception de la sélection, le fait d'incorporer un n-gramme correspondant parmi le premier n-gramme de réponse et le deuxième n-gramme de réponse dans la réponse.


     
    12. Le procédé mis en œuvre par ordinateur selon la revendication 1, dans lequel la génération du contenu textuel de réponse comprend :

    le fait de fournir les caractéristiques de message supplémentaires et la disponibilité de l'utilisateur en tant qu'entrée pour un système d'apprentissage automatique entraîné ;

    le fait de recevoir au moins une caractéristique de contenu de réponse en tant que sortie provenant du système d'apprentissage automatique entraîné ; et

    le fait de générer le contenu textuel de réponse sur la base de ladite au moins une caractéristique de contenu de réponse reçue en tant que sortie provenant du système d'apprentissage automatique entraîné, et les caractéristiques de message supplémentaires comprenant de préférence une première caractéristique de message basé sur un n-gramme dans un corps de la communication électronique.


     
    13. Le procédé mis en œuvre par ordinateur selon la revendication 12, comprenant en outre :

    le fait d'étiqueter, par un ou plusieurs des dispositifs informatiques, chaque n-gramme d'une pluralité de n-grammes de la communication électronique avec au moins une annotation grammaticale correspondante ;

    la détermination de la première caractéristique de message comprend le fait de sélectionner le n-gramme sur la base de l'annotation grammaticale correspondante du n-gramme, et de déterminer la première caractéristique de message sur la base du n-gramme.


     
    14. Un système pour entraîner un système d'apprentissage automatique de façon à fournir un contenu de réponse à une communication électronique et pour envoyer un message court de réponse, comprenant :

    au moins un processeur ;

    une mémoire reliée au processeur, la mémoire stockant des instructions destinées à être exécutées par le processeur pour effectuer des étapes comprenant :

    le fait d'identifier un corpus de communications électroniques d'événements d'une pluralité d'utilisateurs, les communications électroniques d'événements du corpus comprenant chacune un contenu original faisant référence à un événement, chacune comprenant un contenu de réponse répondant au contenu original, et chacune étant associée à une disponibilité d'utilisateur d'un auteur du contenu de réponse, la disponibilité d'utilisateur indiquant la disponibilité de l'auteur, lorsque le contenu de réponse a été créé, pour assister à l'événement ;

    le fait de générer une pluralité d'exemples d'entraînement à partir des communications électroniques d'événements, la génération de chacun des exemples d'entraînement étant basé sur une communication électronique d'événement correspondante des communications électroniques d'événements, et comprend :

    le fait de générer une pluralité de caractéristiques d'entrée sur la base du contenu original de la communication électronique d'événement correspondante et de la disponibilité d'utilisateur associée à la communication électronique d'événement de réponse correspondante, et

    le fait de générer au moins une caractéristique de sortie sur la base du contenu de réponse de la communication électronique d'événement correspondante ;

    le fait d'entraîner un système d'apprentissage automatique sur la base des exemples d'entraînement pour générer un système d'apprentissage automatique entraîné ;

    le fait de recevoir une nouvelle communication électronique adressée à un utilisateur ;

    le fait de générer de nouvelles caractéristiques d'entrée à partir de la nouvelle communication électronique et à partir de données d'emploi du temps de l'utilisateur, la génération de nouvelles caractéristiques d'entrée comprenant en outre :

    le fait de déterminer une indication temporelle associée à un événement de la communication électronique, l'indication temporelle identifiant au moins une heure ou une date associée à l'événement ;

    le fait de rechercher les données d'emploi du temps de l'utilisateur en fonction de l'indication temporelle ;

    le fait de déterminer, en fonction de la recherche, la disponibilité de l'utilisateur pour l'événement ;

    le fait de déterminer une ou plusieurs caractéristiques supplémentaires de message de la communication électronique, les caractéristiques supplémentaires de message s'ajoutant à l'indication temporelle ;

    le fait de fournir les nouvelles caractéristiques d'entrée en tant qu'entrée au système d'apprentissage automatique entraîné ;

    le fait de recevoir une sortie en provenance du système d'apprentissage automatique entraîné en réponse à la fourniture des nouvelles caractéristiques d'entrée au système d'apprentissage automatique entraîné ; et

    le fait d'utiliser la sortie provenant du système d'apprentissage automatique entraîné pour générer un contenu textuel de réponse sur la base de la disponibilité de l'utilisateur et sur la base desdites une ou plusieurs caractéristiques de message supplémentaires, le contenu textuel de réponse comprenant un ou plusieurs n-grammes qui ne sont pas inclus dans la communication électronique pour fournir le contenu textuel de réponse pour présentation à l'utilisateur via un dispositif informatique de l'utilisateur pour inclusion dans une réponse de l'utilisateur à la nouvelle communication électronique ;

    le fait, par un moteur de présentation, de fournir le contenu textuel de réponse pour inclusion dans la communication électronique de réponse via une indication graphique du contenu textuel de réponse ;

    le fait de recevoir une indication du contenu textuel de réponse via un dispositif d'entrée d'interface utilisateur ;

    le fait de sélectionner le contenu textuel de réponse via le dispositif informatique ; et

    en réponse à la sélection du contenu textuel de réponse, le fait de remplir automatiquement le contenu textuel de réponse dans un corps de la communication électronique de réponse à la nouvelle communication électronique, la communication électronique de réponse étant un message court envoyé via le dispositif informatique.


     




    Drawing






































    Cited references

    REFERENCES CITED IN THE DESCRIPTION



    This list of references cited by the applicant is for the reader's convenience only. It does not form part of the European patent document. Even though great care has been taken in compiling the references, errors or omissions cannot be excluded and the EPO disclaims all liability in this regard.

    Patent documents cited in the description