Intelligent Email Subject Line Suggestion and Reproduction
Through machine learning technology, identifying key elements and intents of email content and generating personalized headline suggestions, solving the problem of lack of intelligent assistance in existing email applications and improving the efficiency and quality of email writing.
Patent Information
- Application Number
- CN202080075845.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2019-10-31
- Filing Date
- 2020-10-09
- Publication Date
- 2025-08-01
- Estimated Expiration
- 2040-10-09
AI Technical Summary
Existing email applications lack advanced features to improve sender and receiver productivity, especially in terms of suggestions for email title lines, lack of personalized and intelligent assistance.
Using machine learning technology to identify key elements and intents in email content, generate personalized, customized headline suggestions, including highlighting the actions, deadlines, critical attachments or links needed by the recipient, as well as key points and issues in the email, customized based on thread history or current topics and attributes.
Improves the efficiency and quality of email writing, enhances the productivity of senders and receivers by providing personalized headline suggestions, and simplifies the information communication process.
Smart Images

Figure CN114631094B_ABST
Abstract
Description
Background Art
[0001] Existing email applications and providers include features for assisting and enhancing user productivity. Examples of such features are in the form of an anticipatory typing feature, where, as the user begins to compose a word, phrase, or sentence, a set of letters, words, and / or phrases of ghost text representing suggestions for completing the initial word, phrase, and / or sentence composition is presented to the user. As another example, a user can compose an email and the email application can provide subject line suggestions when the send function is initiated. However, existing email applications often lack advanced features for enhancing the productivity of both senders and recipients.
[0002] Embodiments have been described with respect to these and other general considerations. Similarly, although relatively specific problems have been discussed, it should be understood that embodiments are not limited to solving the specific problems identified in the background. Summary of the Invention
[0003] The subject line in a message such as an email is a focus of attention and is thus important for communicating information via email. Accordingly, there is a need to provide intelligent assistance not only to one or more users composing and / or replying to an email, but also to a user acting as a recipient. According to some examples, a basic subject line can be suggested based on the content provided in the form of an email composition; in some examples, the subject line can be suggested based on existing email threads utilizing one or more machine learning techniques. In some examples, rather than providing a one-size-fits-all email subject line recommendation, the subject line can be customized and styled using key elements, such as highlighting whether there is an "action needed" by the recipient; highlighting whether there is a deadline that the recipient needs to be aware of; highlighting or making the user aware that a key attachment or link is being shared, such as a plane ticket, receipt, or link to an important article; and / or highlighting key points and / or questions raised in the email. According to some examples, an intelligent subject line can be suggested for each message, even if the message has an existing subject line based on thread history. In some cases, in addition to or instead of the message thread history, the suggested subject line can be based on the topic and attributes of the current message.
[0004] This summary is provided to introduce a selection of concepts in a simplified form that will be further described in the detailed description below. This summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter. Brief Description of the Drawings
[0005] Non-limiting and non-exhaustive examples are described with reference to the following figures.
[0006] Figure 1Illustrates one or more components of an intelligent email subject line suggestion and reformulation system and email content according to an example of the present disclosure.
[0007] Figure 2 Illustrates one or more topic vectors according to an example of the present disclosure.
[0008] Figure 3A Illustrates a first example of a template for formulating email subject line suggestions according to an example of the present disclosure.
[0009] Figure 3B Illustrates a second example of a template for formulating email subject line suggestions according to an example of the present disclosure.
[0010] Figure 3C Illustrates a third example of a template for formulating email subject line suggestions according to an example of the present disclosure.
[0011] Figure 3D Illustrates a fourth example of a template for formulating email subject line suggestions according to an example of the present disclosure.
[0012] Figure 4 Illustrates details of an intelligent email subject line suggestion and reformulation module according to an example of the present disclosure.
[0013] Figure 5 Illustrates details of a system for formulating and suggesting one or more subject lines according to an example of the present disclosure.
[0014] Figure 6 Illustrates a first method according to an example of the present disclosure.
[0015] Figure 7 Illustrates a second method according to an example of the present disclosure.
[0016] Figure 8 Illustrates a third method according to an example of the present disclosure.
[0017] Figure 9 Illustrates a fourth method according to an example of the present disclosure.
[0018] Figure 10 Is a block diagram of exemplary physical components of a computing device that can practice aspects of the present disclosure;
[0019] Figure 11A Is a simplified block diagram of a computing device that can practice aspects of the present disclosure;
[0020] Figure 11B Is another simplified block diagram of a mobile computing device that can practice aspects of the present disclosure; and
[0021] Figure 12 It is a simplified block diagram of a distributed computing system in which aspects of the present disclosure can be practiced. Detailed implementation mode
[0022] In the following detailed description, reference is made to the accompanying drawings which form a part hereof, and in which specific embodiments or examples are shown by way of illustration. These aspects may be combined, other aspects may be utilized, and structural changes may be made without departing from the present disclosure. The embodiments may be practiced as a method, system or device. Thus, the embodiments may take the form of a hardware implementation, a fully software implementation or an implementation combining software and hardware aspects. Accordingly, the following detailed description should not be construed as limiting, and the scope of the present disclosure is defined by the appended claims and their equivalents.
[0023] Figure 1 An exemplary email composition window 100 according to an example of the present disclosure is illustrated. The email composition window 100 can generally be used by a user to compose an email, where the user can provide the address from which the email is sent in the sender field 102, one or more recipient addresses in the recipient field 104, one or more recipient addresses in the cc field 106, one or more recipient addresses in the bcc field 108, and a subject in the subject line 110. The email composition window 100 can also include an email content 112, where the email content 112 can include a part of the email content. The subject provided by the user in the subject line 110 can include a summary description of the part of the email content 112.
[0024] According to an example of the present disclosure, an intelligent email subject line suggestion and reproduction system 101 can generate a subject to replace the subject provided by the user in the subject line 110 or otherwise be included as part of the subject. More specifically, the intelligent email subject line suggestion and reproduction system 101 can provide a subject based on one or more parts of the email content 112. In some examples, one or more parts of the email content 112 can correspond to one or more characteristics identified in the email, such as but not limited to a user's commitment 114, a general request 116, a statement of fact 124, a specific request for information 118, a general request for information 120, and / or a request for time 122. Of course, other characteristics can be determined by the intelligent email subject line suggestion and reproduction system 101 and can be used to formulate a subject for the subject line 110.
[0025] According to an example of the present disclosure, the intelligent email header line suggestion and reproduction system 101 can identify key topics of an email and / or an email thread. For example, if an email is written about a first topic, machine learning techniques can determine unique terms or unique vocabulary specific to that email. That is, common phrases (such as greetings and salutations like "Hi, how are you?") can be identified and removed from the content of the email to determine one or more possible headers. In some examples, the written email can be compared to an email domain, which is specific to the user who wrote the email, specific to a group of users, and / or dependent on email writing information for a general user population. Thus, common phrases specific to the user, specific to the group, and / or specific to the general user population can be removed; such common phrases can be removed from the email content 112 to generate unique vocabulary specific to the email being written. Thus, unique terms, tokens, and / or vocabulary elements can be determined. Given the unique terms, tokens, and / or vocabulary elements for an email, the most likely header is determined.
[0026] Figure 2 An example of header line formulation according to an example of the present disclosure is depicted. More specifically, a machine learning model can be employed to write a header based on the remaining unique terms 204 determined in the email. As an example, for a particular non-limiting example, the unique terms 208 can include "buffet", "Friday", and "User 3". The first vector 212 can include a first combination of unique terms, the second vector 216 can include a second combination of unique terms, the third vector 220 can include a third combination of key terms, and so on. Then, each vector can be scored relative to possible email headers, where the email topics are determined from the user's inbox and / or the inboxes of other users across an organization or corpus of user information. Thus, for example, the vector 224 with the highest score can be indicated as the most likely header line. As depicted in Figure 2 As shown, additional linking terms (such as "this" and "at") can be added to the vector based on other possible email headers; such linking terms can be generated by the intelligent email header line suggestion and reproduction system 101 and can be based on one or more natural language processing techniques, such as but not limited to part-of-speech tagging, shallow parsing and / or chunking, constituency parsing, and dependency parsing. Of course, other natural language processing techniques can be employed to generate a header based on the one or more tokens identified.
[0027] According to some examples of the present disclosure, the intelligent email header line suggestion and reproduction system 101 can generate a header based on one or more intents identified within the email content 112. For example, in addition to forming part of the header line or a header line based on the most likely combination of unique terms, the header line can also include information specific to one or more actions, such as but not limited to: requests, questions, and / or requests for time commitments included in the email content 112. That is, the email content 112 can include a commitment 114, for example, "I will send it to you on Friday." As another example, the email content 112 can include one or more general requests 116, such as "Can you send it to me on Monday?" As another example, the email content 112 can include one or more specific requests for information 118, such as "What items should we send to customer A?" As another example, the email content 112 can include a general request for information 120, such as "I am interested in learning about topic A. Please send me additional information about topic A." As another example, the email content 112 can include a request for time, such as "Can we meet for 5 minutes on Friday?" Of course, the email content 112 can include content classified as a statement 122, such as "This is a list of projects to be executed before October 1."
[0028] At least one non-limiting example for determining an intent can include vectorizing one or more portions of the email content and using an intent classifier to analyze such portions. The intent classifier can compare the vectorized portions of the content with one or more known intents and / or actions. The classifier can rely on any of many known schemes, including but not limited to: generalized linear models, support vector machines, nearest neighbors, decision trees, and neural networks. In some examples, the intent classifier vectorizes a portion of the email content and can perform a nearest neighbor algorithm comparison between the vectorized portion of the email content and one or more known intents. In some examples, the nearest neighbor vector identifies the intent.
[0029] Some intents can respond to objects in the described portions of the email content. Thus, an object classifier can be utilized to identify objects. The object classifier can work in the same or a similar manner as the intent classifier. The classifier can rely on any of a variety of machine learning methods, including but not limited to: any known generalized linear model, support vector machine, nearest neighbor, decision tree, and neural network. The object classifier can vectorize one or more object attributes, which can include but are not limited to: parsing one or more portions of the email content into parts of speech, extracting nouns or verbs, and matching to stored object data. In at least one non-limiting example, the object classifier can determine a closest match by running a nearest neighbor algorithm comparison; the nearest neighbor can identify one or more objects to be used as objects in the intent.
[0030] Thus, based on one or more of the identified intents, such as the identified actions and / or statements in the email content 112, one or more templates for use can be determined, and a header line 110 can be suggested and can include elements or objects from one or more of the identified actions and / or statements in the email content 112.
[0031] For example, templates can be defined and / or customized for a user, an organization, or otherwise, and the templates can include one or more slots to be filled based on the template and information related to the identified intent. As depicted in Figure 3A One or more templates 304 can be matched to the identified request; for example, the first template 304 can include a plurality of slots 308 associated with a request, a subject, and a due date 312. In some examples, the intelligent email header line suggestion and reproduction system 101 can identify information 316 to fill or otherwise place into one or more of the slots 308 / 312. Thus, the intelligent email header line suggestion and reproduction system 101 can generate a header 320 corresponding to at least one intent identified in the email content 112.
[0032] As another example depicted in Figure 3B One or more templates 324 can be matched to the identified request; for example, the fifth template 324 can include a plurality of slots 328 associated with a statement, a subject, and a specific portion specific to the subject 332. In some examples, the intelligent email header line suggestion and reproduction system 101 can identify information 336 to fill or otherwise place into one or more of the slots 332 / 328. Thus, the intelligent email header line suggestion and reproduction system 101 can generate a header 340 corresponding to at least one intent identified in the email content 112.
[0033] As another example depicted in Figure 3C one or more templates 344 may match the identified request; for example, the seventh template 344 may include a plurality of slots 348 associated with a request for a time including a requester, duration, and date 352. In some examples, the intelligent email header line suggestion and reproduction system 101 may identify information 356 to populate or otherwise place into one or more of the slots 352 / 348. Thus, the intelligent email header line suggestion and reproduction system 101 may generate a header 360 corresponding to at least one intent identified in the email content 112.
[0034] As another example depicted in Figure 3D one or more templates 364 may match the identified request; for example, the seventeenth template 364 may include a plurality of slots 368 associated with a request for content and a subject 372. In some examples, the intelligent email header line suggestion and reproduction system 101 may identify information 376 to populate or otherwise place into one or more of the slots 372 / 368. Thus, the intelligent email header line suggestion and reproduction system 101 may generate a header 38o corresponding to at least one intent identified in the email content 112.
[0035] As in Figure 4 It should be noted that there seems to be a typo in the original text where "38o" in the translated text of ID=8 should probably be "380".As depicted, the intelligent email subject suggestion and reproduction system 412 can be the same as or similar to the intelligent email subject suggestion and reproduction system 101, and can include an intelligent email subject suggestion and reproduction module 416, which can generate a proposed title and / or cause the proposed title to be displayed to the user for display. The intelligent email header line suggestion and reproduction system 412 can include a title term generator 420, an intent recognizer 424, a header line formulator 452, and a storage device 456. The title term generator 420 can be used to generate one or more vectors, such as vectors 212 - 220. In some examples, the title term generator 420 can include a content parser 428, a key term recognizer 432, and a term vector evaluator 436. The content parser can receive email content (such as email content 112) and parse such content to identify one or more characteristics of the email content 112. For example, at least one characteristic can indicate an existing thread in the email content 112. As another example, and in the case where the email content corresponds to the email content of the entire email message, the at least one characteristic can indicate an existing header field and / or recipient field. The key term recognizer 432 can utilize the content provided by the content parser 428 and remove content determined to be common to previous emails written by the user and / or previous emails associated with a corpus of email content. The key term recognizer 432 can then provide the key terms to the term vector evaluator 436, where the term vector evaluator can score different combinations (including ordered combinations and combinations including additional linking words) to identify the highest-scoring vector. The highest-scoring vector can then be provided to the header line formulator 452.
[0036] In some examples, the intent recognizer 424 can include a content parser 440, an intent extractor 444, and a template selector 448. The intent recognizer 424 can be used to determine the intent of an email content, such as the email content 112. The intent of the email content can include, but is not limited to: an action, a request for information, a request for time, a statement, a commitment, a specific or general request for information, etc. The content parser 440 can receive the email content, such as the email content 112, and parse such content to identify one or more characteristics of the email content 112 and / or mark one or more parts in the email content that indicate or otherwise appear to express an intent. For example, at least one characteristic can indicate a new sentence, phrase, and / or word, which can indicate the start of a part of the email content that includes an intent. As another example, at least one characteristic can indicate a question, a statement, an exclamation, or an attachment to a document and / or file. As another example, one or more machine learning methods can be used to determine the intent and / or object in the manner described above.
[0037] The intent extractor 444 can evaluate one or more parts of the email content provided by the content parser 440 and extract an intent from such parts. In some examples, one or more of the machine learning schemes described above can be used. In some examples, one or more natural language processing techniques can be utilized to identify the intent of one or more parts of the email content. Based on the determined intent, a template can be selected, such as one or more of the previously described templates, including but not limited to templates 304, 324, 344, and 364. One or more of the templates can be specific to a user, an organization, and / or other user groups. As previously described, the template selector 448 can also populate one or more slots of the template. In some cases, the header line formulator 452 can utilize the selected template to formulate a proposed header line. In some cases, the header line formulator 452 can utilize one or more terms from the header term generator and the selected template to formulate a proposed header line. According to an example of the present disclosure, the storage device 456 can store the selected or otherwise provided formulated header line, one or more term vectors in the term vectors, the email content 112, one or more extracted intents, and / or one or more of the templates.
[0038] In some examples, an email written by a user can have multiple intents, such as multiple statements of fact and / or one or more commitments. In such a case, each of the intents can be identified, ranked, and one or more of the multiple intents can be selected based on which intent has been statistically determined to be the most appropriate. In some examples, the multiple intents can indicate that a header line is to be generalized to accommodate the multiple intents. For example, in the case where an email written by a user contains three statements of fact, such as "First part of the FY20 budget", "Second part of the FY20 budget", and "Third part of the FY20 budget", the suggested header line can be generalized to, for example, "FY20 budget information", where a common element or object of the budget and / or FY20 is identified, and the first part, second part, and third part belong to the same category or are otherwise classified as the same or similar.
[0039] In some examples, one type of intent can take precedence over another type of intent. For example, in the case where an email section includes a request and a commitment, the suggested header line can include the request rather than the commitment. In some examples, an email section can include three facts and one request; in such a case, the request may take precedence and can be included in the suggested header line rather than the three facts. As previously described, the determination and / or selection of which intent and / or object should be included in the suggested header line can be based on heuristics and / or user preferences.
[0040] In some examples, the header line generator 452 can save a conversation identifier associated with the email content. For example, at the moment when a user replies to an existing email or email thread, the header of the email thread can be modified or replaced by the header line generator 452; however, in order to save the email thread or session, where the thread or session can be grouped by a common header line, the intelligent email header line suggestion and reproduction system 412 can save the session identifier in metadata, for example, and the conversation identifier can be included as part of the email message.
[0041] Figure 5Depicts an exemplary system 500 for formulating and suggesting an email header line according to an example of the present disclosure. More specifically, the system 500 may include an email header line suggestion and reproduction system 502, which may be the same as or similar to the previously described email header line suggestion and reproduction system 412. An indication that the user is composing an email may be received at 504, where such an indication may correspond to the email content or a portion of the email content received in an email composition window (such as the email composition window 100). In some examples, for instance, the indication received at 504 may correspond to the user selecting an option, button, and / or control to send an email and / or may correspond to an inactive period, where the inactive period may correspond to an inactive period in the email composition window 100. For example, with the personal email storage 508, the email content or a portion of the email content can be compared with emails previously composed by the user to determine common portions of the email content that can be removed from the email content or a portion of the email content. Additionally, key term vectors may be generated as previously described, and may rely on the key terms of the email content or a portion of the email content, which is the remaining portion after the common portion has been removed and / or an email corpus (such as the common email storage 512), to score and rank one or more key term vectors. Thus, at 516, for example, a term vector with the highest score may be generated, as at 518.
[0042] In some examples, and at 520, the email content or a portion of the email content may be parsed so that the intent of the email content or a portion of the email content can be determined. For example, the email content or a portion of the email content may include a question or an action, and such a question or action may be considered the "intent" of the email and may be extracted at 520 to produce an intent 510. In some examples, the intent may be used to select a template, and the key term vector 518 may be used to fill at least a portion of the template — that is, one or more slots may be filled with one or more key terms from the key term vector 518.
[0043] Based on one or more key terms in the key term vector 518 and based on the intent 510, a title line can be formulated. At 528, for example, the title line 110 of the email composition window 100 can be populated with the formulated title line. In some examples, the formulated title line can be presented to the user before being provided to or otherwise presented at the title line 110 of the email composition window 100. For example, the user can select the formulated title line or reject using the formulated title line; the selected formulated title line can be presented in the title line 110, while rejecting the formulated title line may cause the title line (if any) to remain in the title line 110. As depicted in Figure 5 The portion within the region 522 can be performed by one or more of the machine learning schemes discussed above; that is, 522 can be a machine learning model trained to suggest one or more title lines, where such a model can be trained for one or more users and / or one or more organizations. In some cases, the model is consistently retrained based on the acceptance and / or rejection of the suggested title lines.
[0044] Figure 6 Details of a method 600 for suggesting and formulating intelligent title lines according to an example of the present disclosure are depicted. In Figure 6 The general order of steps for the method 600 is shown. Generally, the method 600 begins at 604 and ends at 620. The method 600 can include more or fewer steps, or can be arranged in an order different from the steps shown in Figure 6 The method 600 can operate as a set of computer-executable instructions run by a computer system and encoded or stored on a computer-readable medium. Additionally, the method 600 can be performed by gates or circuits associated with a processor, application specific integrated circuit (ASIC), field programmable gate array (FPGA), system on a chip (SOC), or other hardware device. Hereinafter, the method 600 will be explained with reference to the Figures 1-5 systems, components, modules, software, data structures, user interfaces, etc. described in conjunction with
[0045] Method 600 begins at 604, where an indication that the user is composing an email is received. For example, an indication that the user has selected an option, command, button, or other means to send an email and / or an indication corresponding to an inactive period may be received. Based on the received indication, the method may proceed to 608, where the email content or a portion of the email content may be parsed to identify one or more topics of the email content and / or the portion of the email content. Based on the one or more topics, a topic vector may be determined as previously described. Method 600 may proceed to 612 where the intent of the email may be identified. For example, the intent may correspond to an action, a request for content, a request for specific content, a question, and / or a request for time. Although 608 is depicted as occurring before 612, it should be understood that 608 may be performed after 612 or in parallel with 612. Method 600 may then flow to 616, where a new header line may be customized based on the previously identified topic vector and the intent that has been identified or determined. For example, and as previously described, a template may be selected based on the intent; for example, one or more of the topic vectors from 608 may be used to populate such a template. At 616, one or more slots of the template may be populated with one or more words or combinations of words present in the topic vector. Method 600 may then proceed to 620, where the newly formulated header line may be presented to the user. It should be understood that method 600 may be run multiple times when the user adds additional content to the email content and / or the portion of the email content. Thus, on the first time, the first newly formulated header may be presented to the user. On the second time, the second newly formulated header may be presented to the user. Thus, method 600 may run in real time and / or near real time.
[0046] Figure 7 Details of a method 700 for identifying and / or determining a possible topic vector according to an example of the present disclosure are depicted. In Figure 7 The general order of steps for method 700 is shown. Generally, method 700 begins at 704 and ends at 724. Method 700 may include more or fewer steps, or may be arranged in a different order than the steps shown in Figure 7 Method 700 is capable of running as a set of computer-executable instructions run by a computer system and encoded or stored on a computer-readable medium. Additionally, method 700 may be performed by gates or circuits associated with a processor, an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a system on a chip (SOC), or other hardware device. Hereinafter, reference will be made in connection with [[ID=The systems, components, modules, software, data structures, user interfaces, etc. described are used to explain method 700.
[0047] Method 700 begins at 704, where an email content can be received. A portion of the email content can correspond to the content of email 112 and / or the header line 110. At 708, the commonalities between the email content received at 704 and the email content corresponding to an existing email corpus can be determined, and such commonalities can be removed, leaving unique vocabulary and / or topic content. The existing email corpus can correspond to a personal email storage, where the emails written by the user can be used as a source for identifying commonly used expressions and commonly used vocabulary in previous email writings. Alternatively or additionally, the existing email corpus can correspond to a public email storage, where the emails written by multiple users can be used as a source for identifying commonly used expressions and commonly used vocabulary. At 708, the commonly used vocabulary and / or commonly used expressions can be removed from the email content received at 704.
[0048] At 712, the remaining content can be tokenized, and multiple topic vectors can be determined at 716, as previously described. At 720, each new possible topic vector can be scored using the existing email corpus of the email content. In some examples, the existing email corpus of the email content can be the same as or similar to the existing email corpus used at 708. In some examples, the existing email corpus of the email content can be different from the existing email corpus utilized at 708. Based on the scores of each topic vector, the topic vector with the most likely topic ordering can be selected for deployment. For example, the topic vector with the highest score can be selected. Then, the selected topic vector can be used to generate a new header line, such as in 616 as previously described.
[0049] Details of method 800 for determining intent based on email content according to an example of the present disclosure are depicted. In The general order of the steps for method 800 is shown. Generally, method 800 begins at 804 and ends at 816. Method 800 can include more or fewer steps, or can be arranged in an order different from the order of the steps shown in Method 800 can operate as a set of computer-executable instructions run by a computer system and encoded or stored on a computer-readable medium. Additionally, method The described systems, components, modules, software, data structures, user interfaces, etc. are used to explain method 800.
[0050] Method 800 begins at 804, where an email content can be received. The email content can correspond to a part of the email content 112, the content of the header line 110, and / or the content regarding the content of one or more of the described fields. At 808, one or more characteristics of the email can be extracted and / or determined. For example, a part of the email content 112 can indicate that the email sender (the user who composed the email) needs to take an action on that part. Thus, the characteristic can indicate the action to be performed; thus, the intent of the email may be to provide an action to the recipient. As another example, the email content 112 can indicate that a problem is being presented to the email recipient. Thus, the characteristic of the email can indicate that the intent of the email is to present a problem.
[0051] Details of another method 900 for providing email header line suggestions are depicted. In the general order of the steps of method 900 is shown. Generally, method 900 begins at 904 and ends at 916. Method 900 can include more or fewer steps, or can be arranged in an order different from the order of the steps shown in Method 900 can operate as a set of computer-executable instructions run by a computer system and encoded or stored on a computer-readable medium. Additionally, method 900 can be executed by gates or circuits associated with a processor, an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), a system-on-chip (SOC), or other hardware devices. Hereinafter, method 900 will be explained with reference to the described systems, components, modules, software, data structures, user interfaces, etc.
[0052] Method 900 begins at 904, where an email content can be received. The email content can correspond to a part of the email content 112, the content of the header line 110, and / or the content regarding The content of one or more fields described. At 908, an email containing content closely matching the received email content can be identified and / or determined at 908. For example, a user has sent an email to a first recipient; among them, the email for the first recipient includes the same or similar information to be sent to a second separate recipient. Therefore, the email sent to the first recipient can be determined / identified. At 912, the header of the identified / determined email can be copied. That is, if the information going to the second recipient is substantially similar to the information going to the first recipient, the header line of the email going to the first recipient can be used as a template or basis for formulating the header line. Therefore, at 916, one or more topics identified from the topic vectors as previously described can be used to update / populate the copied header line.
[0053] and the associated description provide a discussion of various operating environments in which aspects of the present disclosure can be practiced. However, regarding the devices and systems illustrated and discussed are for purposes of example and illustration and do not limit the numerous computing device configurations that can be used to practice aspects of the present disclosure described herein.
[0054] is a block diagram illustrating the physical components (e.g., hardware) of a computing device 1000 that can be utilized to practice aspects of the present disclosure. The computing device components described below can be suitable for the computing device described above. In a basic configuration, the computing device 1000 can include at least one processing unit 1002 and a system memory 1004. Depending on the configuration and type of the computing device, the system memory 1004 can include, but is not limited to: volatile storage devices (e.g., random access memory), non-volatile storage devices (e.g., read-only memory), flash memory, or any combination of such memories.
[0055] The system memory 1004 can include an operating system 1005 and one or more program modules 1006 suitable for running software applications 1020, such as one or more components supported by the system described herein. As an example, the system memory 1004 can store an intelligent email header line suggestion and reproduction module 1024. For example, the operating system 1005 can be suitable for controlling the operation of the computing device 1000.
[0056] In addition, embodiments of the present disclosure can be practiced in conjunction with graphics libraries, other operating systems, or any other application programs and are not limited to any specific application or system. This basic configuration is in are illustrated by those components within the dashed line 1008. The computing device 1000 may have additional features or functionality. For example, the computing device 1000 may also include additional data storage devices (removable and / or non-removable), such as, for example, magnetic disks, optical disks, or magnetic tapes. Such additional storage devices are shown in by the removable storage device 1009 and the non-removable storage device 1010.
[0057] As stated above, many program modules and data files may be stored in the system memory 1004. When run on at least one processing unit 1002, the program modules 1006 (e.g., applications 1020) may execute processes including but not limited to aspects as described herein. Other program modules that may be used in accordance with aspects of the present disclosure may include email and contact applications, word processing applications, spreadsheet applications, database applications, slide presentation applications, drawing or computer-aided applications, etc.
[0058] In addition, embodiments of the present disclosure may be practiced in a circuit that includes discrete electronic elements, a packaged or integrated electronic chip that contains logic gates, a circuit that utilizes a microprocessor, or on a single chip that contains electronic elements or a microprocessor. For example, embodiments of the present disclosure may be practiced via a system-on-a-chip (SOC), where each or many of the components illustrated therein may be integrated onto a single integrated circuit. Such an SOC device may include one or more processing units, graphics units, communication units, system virtualization units, and various application functions, all of which are integrated (or "burned") onto a chip substrate as a single integrated circuit. When operated via an SOC, the functionality regarding the client switching protocol capabilities described herein may be operated via dedicated logic integrated with other components of the computing device 1000 on a single integrated circuit (chip). Embodiments of the present disclosure may also be practiced using other technologies capable of performing logical operations, such as, for example, AND, OR, and NOT, including but not limited to mechanical, optical, fluidic, and quantum technologies. Additionally, embodiments of the present disclosure may be practiced within a general-purpose computer or any other circuit or system.
[0059] The computing device 1000 may also have one or more input devices 1012, such as a keyboard, mouse, pen, voice or speech input device, touch or swipe input device, etc. (One or more) output devices 1014, such as a display, speaker, printer, etc., may also be included. The foregoing devices are examples and other devices may be used. The computing device 1000 may include one or more communication connections 1016 that allow communication with other computing devices 1050. Examples of suitable communication connections 1016 include, but are not limited to: radio frequency (RF) transmitter, receiver, and / or transceiver circuits; universal serial bus (USB), parallel, and / or serial ports.
[0060] As used herein, the term "computer-readable medium" may include computer storage media. Computer storage media may include volatile and non-volatile, removable and non-removable media implemented in any method or technology for storing information, such as computer-readable instructions, data structures, or program modules. System memory 1004, removable storage device 1009, and non-removable storage device 1010 are all examples of computer storage media (e.g., memory storage devices). Computer storage media may include: RAM, ROM, electrically erasable programmable read-only memory (EEPROM), flash memory, or other memory technologies, CD-ROM, digital versatile disk (DVD), or other optical storage devices, magnetic cassettes, magnetic tape, magnetic disk storage, or other magnetic storage devices, or any other article of manufacture capable of storing information and accessible by the computing device 1000. Any such computer storage media may be part of the computing device 1000. Computer storage media does not include carrier waves or other propagated or modulated data signals.
[0061] Communication media may be embodied by computer-readable instructions, data structures, program modules, or other data in a modulated data signal, such as a carrier wave or other transmission mechanism, and includes any information delivery media. The term "modulated data signal" may describe a signal that sets or changes one or more characteristics in a manner that encodes information in the signal. By way of example, and not limitation, communication media may include wired media, such as a wired network or direct wired connection, and wireless media, such as acoustic, radio frequency (RF), infrared, and other wireless media.
[0062] and Illustrated is a mobile computing device 1100, such as a mobile phone, smartphone, wearable computer (such as a smartwatch), tablet computer, laptop computer, etc., which may utilize embodiments of the present disclosure. In some aspects, the client may be a mobile computing device. Refer to , which illustrates one aspect of a mobile computing device 1100 for implementing these aspects. In a basic configuration, the mobile computing device 1100 is a handheld computer with both input and output components. The mobile computing device 1100 typically includes a display 1105 and one or more input buttons 1110 that allow a user to input information into the mobile computing device 1100. The display 1105 of the mobile computing device 1100 can also be used as an input device (e.g., a touchscreen display).
[0063] An optional side input component 1115, when included, allows additional user input. The side input component 1115 can be a rotary switch, a button, or any other type of manual input component. In alternative aspects, the mobile computing device 1100 can incorporate more or fewer input components. For example, the display 1105 may not be a touchscreen in some embodiments.
[0064] In yet another alternative embodiment, the mobile computing device 1100 is a portable telephone system, such as a cellular phone. The mobile computing device 1100 may also include an optional keypad 1135. The optional keypad 1135 can be a physical keypad or a "soft" keypad generated on a touchscreen display.
[0065] In various embodiments, the output components include a display 1105 for presenting a graphical user interface (GUI), a visual indicator 820 (e.g., a light-emitting diode), and / or an audio transducer 1125 (e.g., a speaker). In some aspects, the mobile computing device 1100 incorporates a vibration transducer for providing haptic feedback to the user. In yet another aspect, the mobile computing device 1100 incorporates input ports and / or output ports, such as an audio input (e.g., a microphone jack), an audio output (e.g., a headphone jack), and a video output (e.g., an HDMI port) for sending signals to or receiving signals from external devices.
[0066] is a block diagram illustrating the architecture of one aspect of a mobile computing device. That is, the mobile computing device 1100 is capable of incorporating a system (e.g., an architecture) 1102 to implement some aspects. In one embodiment, the system 1102 is implemented as a "smartphone" capable of running one or more applications (e.g., a browser, an email client, a calendar, a contact manager, a messaging client, a game, and a media client / player). In some aspects, the system 1102 is integrated as a computing device, such as an integrated personal digital assistant (PDA) and a wireless phone.
[0067] One or more applications 1166 may be loaded into the memory 1162 and run on or in association with the operating system 1164. Examples of applications include a telephone dialer program, an e-mail program, a personal information management (PIM) program, a word processing program, a spreadsheet program, an Internet browser program, a messaging program, and the like. System 1102 also includes a non-volatile storage area 1168 within the memory 1162. The non-volatile storage area 1168 may be used to store persistent information that should not be lost when system 1102 is powered down. Applications 1166 may use and store information in the non-volatile storage area 1168, such as e-mail or other messages used by an e-mail application. A synchronization application (not shown) also resides on system 1102 and is programmed to interact with a corresponding synchronization application residing on a host computer to keep the information stored in the non-volatile storage area 1168 synchronized with corresponding information stored at the host computer. It should be appreciated that other applications may be loaded into the memory 1162 and run on the mobile computing device 1100 described herein (e.g., a search engine, an extractor module, a relevance ranking module, an answer scoring module, etc.).
[0068] System 1102 has a power supply 1170, which may be implemented as one or more batteries. The power supply 1170 may also include an external power source, such as an AC adapter or a power docking station that supplements or charges the battery.
[0069] System 1102 may also include a radio interface layer 1172 that performs the functions of transmitting and receiving radio frequency communications. The radio interface layer 1172 facilitates a wireless connection between system 1102 and the "outside world" via a communications carrier or service provider. Transmissions to and from the radio interface layer 1172 occur under the control of the operating system 1164. In other words, communications received by the radio interface layer 1172 may be propagated to the applications 1166 via the operating system 1164, and vice versa.
[0070] The visual indicator 1120 can be used to provide visual notifications, and / or the audio interface 1174 can be used to generate audible notifications via the audio transducer 1125. In the illustrated embodiment, the visual indicator 1120 is a light-emitting diode (LED), and the audio transducer 1125 is a speaker. These devices can be directly coupled to the power supply 1170 such that when activated, they remain on for a duration specified by the notification mechanism even if the processor 1160 and other components may be turned off to conserve battery power. The LED can be programmed to remain on indefinitely until the user takes an action to indicate the powered-on state of the device. The audio interface 1174 is used to provide audible signals to the user and receive audible signals from the user. For example, in addition to being coupled to the audio transducer 1125, the audio interface 1174 can also be coupled to a microphone to receive audible input, such as during a phone conversation. According to an embodiment of the present disclosure, the microphone can also be used as an audio sensor to facilitate control of notifications, as will be described below. The system 1102 can also include a video interface 1176 that supports the operation of the on-board camera 1130 to record still images, video streams, etc.
[0071] The mobile computing device 1100 implementing the system 1102 can have additional features or functionality. For example, the mobile computing device 1100 can also include additional data storage devices (removable and / or non-removable), such as magnetic disks, optical disks, or magnetic tapes. Such additional storage is illustrated by the non-volatile storage area 1168 in .
[0072] Data / information generated or captured by the mobile computing device 1100 and stored via the system 1102 can be stored locally on the mobile computing device 1100 as described above, or the data can be stored on any number of storage media that can be accessed by the device via the radio interface layer 1172 or via a wired connection between the mobile computing device 1100 and a separate computing device associated with the mobile computing device 1100 (e.g., a server computer in a distributed computing network such as the Internet). It should be appreciated that such data / information can be accessed via the mobile computing device 1100 via the radio interface layer 1172 or via a distributed computing network. Similarly, such data / information can be easily transferred between computing devices for storage and use according to well-known data / information transfer and storage means, including email and collaborative data / information sharing systems.
[0073] FIG. illustrates an aspect of a system architecture for processing data received at a computing system from remote sources such as personal computer 1204, tablet computing device 1206, or mobile computing device 1208 as described above. Content displayed at server device 1202 can be stored in different communication channels or other storage types. For example, directory service 1222, web portal 1224, mailbox service 1226, instant messaging storage 1228, or social networking site 1230 can be used to store various documents.
[0074] Clients communicating with server device 1202 can employ intelligent email header line suggestion and reproduction module 1220, and / or server device 1202 can employ intelligent email header line suggestion and reproduction module 1221. Server device 1202 can provide data to and from client computing devices (such as personal computer 1204, tablet computing device 1206, and / or mobile computing device 1208 (e.g., smart phone)) via network 1215. By way of example, the computer systems described above can be embodied in personal computer 1204, tablet computing device 1206, and / or mobile computing device 1208 (e.g., smart phone). In addition to receiving graphical data that can be used for preprocessing at a graphics initiation system or postprocessing at a receiving computing system, any of these embodiments of the computing device can obtain content from storage 1216.
[0075] FIG. illustrates an exemplary mobile computing device 1200 that can operate in one or more aspects disclosed herein. Additionally, the aspects and functions described herein can operate on a distributed system (e.g., a cloud-based computing system), where application functions, memory, data storage and retrieval, and various processing functions can run remotely from each other via a distributed computing network (e.g., the Internet or an intranet). Various types of user interfaces and information can be displayed via an on-board computing device display or via a remote display unit associated with one or more computing devices. For example, various types of user interfaces and information can be displayed on and interacted with a wall surface on which the user interface and various types of information are projected. Interaction with the numerous computing systems that can practice embodiments of the present invention includes keystroke input, touch screen input, voice or other audio input, gesture input where the associated computing device is equipped with a detection (e.g., camera) function for capturing and interpreting user gestures that control the functions of the computing device, and so on.
[0076] According to at least one example, a system including a processor and a memory is provided. The memory stores instructions that, when executed by the processor, cause the system to perform a set of operations. The set of operations may include: receiving content corresponding to one or more parts of an email; determining one or more email topics based on the one or more parts of the email; determining at least one intent of the email based on the one or more parts of the email; formulating a subject line suggestion based on the one or more email topics and the at least one intent of the email; and causing the subject line suggestion to be output to a display device. At least one aspect of the above example includes: wherein determining the one or more email topics includes: comparing the content with a plurality of emails sent by a user to identify a portion common to the received content and at least one of the plurality of emails; removing the common portion from the received content; and generating a plurality of topic vectors based on the content remaining after removing the common portion. At least one aspect of the above example includes: wherein the set of operations includes: sorting each of the plurality of topic vectors based on similarity to one or more topic vectors provided from a corpus of emails; and formulating the subject line suggestion based on the topic vectors and the sorting. At least one aspect of the above example includes: wherein the intent is at least one of the following: a question, an action, a request for time, or a request for information. At least one aspect of the above example includes: wherein the one or more parts of the email include the subject line. At least one aspect of the above example includes: wherein the set of operations includes: selecting a subject line template based on the determined intent of the email; and populating one or more slots of the template with the determined one or more email topics to generate the subject line suggestion. At least one aspect of the above example includes: wherein the set of operations includes: identifying an email sent by the user that is similar to the received content corresponding to the one or more parts of the email; extracting the subject line from the email sent by the user as the subject line suggestion; and updating one or more topics of the subject line suggestion with the one or more email topics. At least one aspect of the above example includes: wherein the set of operations includes: replacing an existing subject line of the email with the subject line suggestion.
[0077] According to at least one example, a method is provided. The method may include: receiving content corresponding to one or more parts of an email; determining one or more email subjects based on the one or more parts of the email; determining at least one intent of the email based on the one or more parts of the email; formulating a subject line suggestion based on the one or more email subjects and the at least one intent of the email; and causing the subject line suggestion to be output to a display device. At least one aspect of the above method includes: wherein, determining the one or more email subjects includes: comparing a first part of the content with a plurality of emails sent by a user to identify a part common to the first part of the received content and at least one of the plurality of emails; removing the common part from the first part of the received content; and generating a plurality of topic vectors based on the first part of the content remaining after removing the common part. At least one aspect of the above method may include: sorting each of the plurality of topic vectors based on similarity to one or more topic vectors provided from a corpus of emails; and formulating the subject line suggestion based on the topic vectors and the sorting. At least one aspect of the above method may include: wherein, the intent is at least one of the following: a question, an action, a request for time, or a request for information. At least one aspect of the above method may include: wherein, the one or more parts of the email include the subject line. At least one aspect of the above method may include: selecting a subject line template based on the determined intent of the email; and populating one or more slots of the template with the determined one or more email subjects to generate the subject line suggestion. At least one aspect of the above method may include: identifying an email sent by the user that is similar to a second part of the content of the one or more parts of the email; extracting the subject line from the email sent by the user as a subject line suggestion for the email sent by the user; and updating one or more topics of the subject line suggestion with the one or more email subjects. At least one aspect of the above method may include: in response to receiving an indication that the user is composing an email, receiving content corresponding to one or more parts of the email. At least one aspect of the above method may include: using the subject line suggestion to replace an existing subject line of the email.
[0078] According to at least one example, a method is provided. The method may include: receiving content corresponding to one or more portions of an email; identifying an email sent by the user, the email including content similar to a first portion of the content of the one or more portions of the email; extracting a header line from the email sent by the user as a header line suggestion; updating one or more topics of the header line suggestion; and causing the header line suggestion to be output to a display device. At least one aspect of the above example may include: determining one or more email topics based on a first portion corresponding to one or more portions of the email; and updating the header line suggestion based on the determined one or more topics. At least one aspect of the above example includes: using the header line suggestion to replace an existing header line of the email.
[0079] For example, aspects of the present disclosure have been described above with reference to block diagrams and / or operational descriptions of methods, systems, and computer program products according to aspects of the present disclosure. The functions / actions noted in the blocks may not occur in any order shown in any flowchart. For example, depending on the functions / actions involved, two consecutive blocks shown may actually be executed substantially simultaneously, or these blocks may sometimes be executed in the reverse order.
[0080] The description and illustration of one or more aspects provided in this application are not intended to limit or restrict the scope of the claimed disclosure in any way. The aspects, examples, and details provided in this application are considered sufficient to convey the subject matter and enable others to make and use the best mode of the claimed disclosure. The claimed disclosure should not be construed as limited to any aspect, example, or detail provided in this application. Various features (of structures and methods) are intended to be selectively included or omitted, whether shown and described in combination or separately, to produce embodiments having a particular set of features. After the description and illustration of this application have been provided, those skilled in the art may envision variations, modifications, and alternative aspects that fall within the spirit of the broader aspects of the general inventive concept embodied in this application and do not depart from the broader scope of the claimed disclosure.
Claims
1. A system, comprising: a processor; and a memory storing instructions that, when executed by the processor, cause the system to perform a set of operations, the set of operations including: receiving content corresponding to one or more portions of a current email being composed by a user; parsing the received content corresponding to the one or more portions of the current email to identify one or more email topics; evaluating the one or more email topics to determine the intent of the current email, wherein the determined intent is associated with one of: a request, a question, a statement, or an action; matching, based on the determined intent, one or more templates, the one or more templates including a plurality of slots that are customized to formulate a subject line suggestion for one of the request, the question, the statement, or the action, wherein the content of the plurality of slots is generated based on the one or more identified email topics; formulating the subject line suggestion by populating at least one slot of the selected template with at least one email topic from the one or more email topics associated with the determined intent; wherein determining the one or more email topics further includes: comparing the received content with the content of a plurality of previous emails to identify common content and identifying other non - common content in the previous emails that includes the common content; generating a plurality of additional topic vectors based on the content remaining after removing the common content, the remaining content providing a plurality of key terms for the plurality of topic vectors to determine an order of a plurality of combinations of the plurality of topic vectors, and providing the highest - ordered vector for the subject line suggestion; sorting each of the plurality of topic vectors based on a similarity to one or more topic vectors provided from a corpus of emails; and formulating the subject line suggestion based on populating the selected template with a topic vector that has a higher rank than other topic vectors of the plurality of topic vectors; and causing the subject line suggestion to be output to a display device.
2. The system according to claim 1, wherein The determined intent is a request for time or a request for information.
3. The system according to claim 1, wherein The one or more portions of the current email include the subject line.
4. The system according to claim 1, wherein, The set of operations includes: identifying content in previous emails that is similar to the received content corresponding to the one or more portions of the current email; extracting subject lines from the previous emails as email topics; and updating at least one slot of the selected template with the email topics including the extracted subject lines.
5. The system according to claim 1, wherein The set of operations includes: replacing an existing subject line of the current email with the subject line suggestion.
6. A method, comprising: receiving content corresponding to one or more portions of a current email being composed by a user; parsing a first portion of the received content to identify one or more email topics of the current email; Determine the intent of the current email based on a second portion of the received content, wherein the determined intent is associated with one of: a request, a question, a statement, or an action; Match one or more templates according to the determined intent, the one or more templates including a plurality of slots that are customized to formulate a subject line suggestion for one of the request, the question, the statement, or the action, wherein the content of the plurality of slots is generated based on one or more identified email subjects; Formulate the subject line suggestion by populating at least one slot of the selected template with at least one email subject among the one or more email subjects associated with the determined intent; wherein determining the one or more email subjects further includes: Compare the first portion of the received content with the content of a plurality of previous emails to identify common content, and identify other non-common content in the plurality of previous emails that contains the common content; Generate a plurality of topic vectors based on the content remaining after removing the common content of the first portion of the received content, the remaining content providing a plurality of key terms to the plurality of topic vectors to determine the order of a plurality of combinations of the plurality of topic vectors, and providing the highest-order vector to the subject line suggestion; Rank each of the plurality of topic vectors based on similarity to one or more topic vectors provided from a corpus of emails; and Formulate the subject line suggestion based on populating the selected template with a topic vector having a higher rank than other topic vectors among the plurality of topic vectors; and Cause the subject line suggestion to be output to a display device.
7. The method according to claim 6, wherein, The determined intent is a request for time or a request for information.
8. The method according to claim 6, wherein The one or more portions of the current email include the subject line.
9. A method, comprising: Receive content corresponding to one or more portions of a current email being composed by a user; Parse a first portion of the received content to identify one or more email subjects of the current email; Determine the intent of the current email based on a second portion of the received content, wherein the determined intent is associated with one of: a request, a question, a statement, or an action; Match one or more templates according to the determined intent, the one or more templates including a plurality of slots that are customized to formulate a subject line suggestion for one of the request, the question, the statement, or the action, wherein the content of the plurality of slots is generated based on one or more identified email subjects; Identify previous emails sent by the user that include content similar to the first portion of the received content of the current email; Extract the subject line from the previous emails sent by the user as the extracted email subjects of the previous emails; Update the one or more email subjects of the current email using the extracted email subjects of the previous email; Formulate the subject line suggestion by populating at least one of the one or more slots of the selected template with the extracted email subject of the previous email; wherein determining the one or more email subjects further comprises: Comparing the received content with the content of the first part and a plurality of previous emails to identify common content; Identifying other non-common content in the plurality of previous emails that contains the common content; Generating a plurality of topic vectors based on the content remaining after removing the common content of the first part of the received content, the remaining content providing a plurality of key terms to the plurality of topic vectors to determine the order of a plurality of combinations of the plurality of topic vectors, and providing the vector of the highest order to the subject line suggestion; Sorting each topic vector in the plurality of topic vectors based on similarity to one or more topic vectors provided from a corpus of emails; and Formulating the subject line suggestion based on populating the selected template with the topic vector having a higher rank than other topic vectors in the plurality of topic vectors; and Causing the subject line suggestion to be output to a display device.
Citation Information
Patent Citations
Automated electronic mail assistant
EP3654258A1
Natural Language System Question Classifier, Semantic Representations, and Logical Form Templates
US20170177715A1
Content subject suggestions
US20170295118A1