Patent Description:
It is with respect to this general technical environment that aspects of the present technology disclosed herein have been contemplated. Furthermore, although a general environment has been discussed, it should be understood that the examples described herein should not be limited to the general environment identified in the background. <CIT> discloses a system for setting up meetings based on identified content. In "<NPL>et al. ) prior art techniques in the field of NPL are recited.

The subject-matter of the invention is defined by the appended claims. This summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description section. This summary is not intended to identify key features or essential features of the claimed subject matter. Additional aspects, features, and/or advantages of examples will be set forth in part in the description which follows and, in part, will be apparent from the description or may be learned by practice of the disclosure.

Non-limiting examples of the present disclosure describe systems, methods and devices for assisting with scheduling meetings via digital assistants and application of various artificial intelligence processing models. A first user may generate an electronic message for scheduling a meeting that implicitly or explicitly tags or identifies a digital assistant. A digital assistant service associated with that digital assistant applies a coarse-grained processing model to the message to identify potentially relevant meeting parameters in that message. The digital assistant service further applies a fine-grained processing model to the sentences, words, and/or phrases in the message that were identified as potentially being relevant to meeting parameters in the message to identify to a high degree of certainty which of those parameters relate to the messaging user's "meeting intent". Once the meeting parameters have been positively identified, the digital assistant service may perform one or more actions that assist with scheduling a meeting corresponding to the messaging user's meeting intent (e.g., the digital assistant service may automatically send a meeting invite to potential meeting attendees utilizing the identified meeting parameters, the digital assistant service may automatically send messages querying attendees for available times and/or dates to hold a meeting, etc.).

Non-limiting and non-exhaustive examples are described with reference to the following figures:.

The subject-matter of the invention is defined by the appended claims.

The various embodiments and examples described below are provided by way of illustration only and should not be construed to limit the scope of the claims attached hereto. Variations , modifications and alternate examples within the scope of the invention as defined by the claims may be apparent to persons having ordinary skill in the art.

Examples of the disclosure provide systems, methods, and devices for utilizing artificial intelligence in association with digital assistants to process natural language inputs associated with events to identify clear user intent. In examples, the natural language inputs may include multiple parameters of a same type (e.g., time, date, location, potential attendees), and in some cases, conflicting parameters. A digital assistant service may process a natural language input utilizing a coarse processing model comprising a hierarchical attention model, to disambiguate between different possible intents in the natural language input, and further process that natural language input utilizing a fine-grained processing model such as comprising a conditional random field model, with long-short term memory feature extractors. In some examples, the conditional random field model may be trained on one or more datasets comprising scheduling utterances. The systems, methods and devices described herein are described primarily in association with an electronic messaging digital assistant and an event scheduling helper. However, the two-model processing approach described herein may also be applied for proactive scheduling intent detection, user-assisted event creation (guided capture), and ambient device digital assistant utterance capture, which if applied in that scenario, provides higher accuracy compared with traditional time expression utterance detection models.

The systems, methods, and devices described herein provide technical advantages for identifying relevant content in electronic messages for utilization in scheduling meetings by digital assistants. Processing costs associated with scheduling group meetings are reduced via the mechanisms described herein due at least to the decreased number of electronic messages that must be sent back and forth between users to identify mutually acceptable meeting parameters (e.g., meeting time, date, location, type, etc.) associated with scheduling of meetings. Additionally, while users would traditionally have to access their own calendars to determine whether they are available at certain times and dates to attend a meeting, the digital assistant service as described herein can automatically perform those actions, further reducing processing costs associated with scheduling meetings. The user experience associated with scheduling meetings is also enhanced via the same mechanisms (e.g., users do not have to waste time identifying mutually convenient times, dates, places, meeting types, etc.). Processing costs are further reduced via the fine and coarse-grained processing models described herein, in that parameters that might otherwise be identified as relating to a user's meeting intent, can more easily and assuredly be ruled out via application of those models. Manual feedback that would otherwise be necessary to rule-out false positives relating to meeting parameters can also be substantially eliminated due to the heightened accuracy provided via the application of multiple models as described herein.

<FIG> is a schematic diagram illustrating an example distributed computing environment <NUM> for utilizing artificial intelligence to identify relevant content and user intent in a message related to scheduling a meeting and assisting with scheduling that meeting via a digital assistant. Computing environment <NUM> includes electronic message transmission sub-environment <NUM>; network and processing sub-environment <NUM>, which includes a digital assistant service for processing natural language inputs; and electronic message reception sub-environment <NUM>.

In electronic message transmission sub-environment <NUM> a first user <NUM>, Pamela, has composed an email <NUM> to a second user <NUM>, Barun, utilizing computing device <NUM>. While email <NUM> is addressed to second user <NUM>, that message is also addressed to [DIGITAL ASSISTANT] in the carbon copy field. Email <NUM> states: "Hi Barun - It was great meeting you on May 21st. I thought our discussion was very productive. Let's continue it on Friday, the 23rd. My assistant @[DIGITAL ASSISTANT], will figure out a time to meet.

Once first user <NUM> sends email <NUM>, that message is routed to network and processing sub-environment <NUM>, and in particular, a digital assistant service associated with network and processing sub-environment <NUM>. Email <NUM> may be directed to the digital assistant service based on the digital assistant being included in the carbon copy field of email <NUM> and/or email <NUM> including the "@[DIGITAL ASSISTANT]" tag in its body. The digital assistant service may be at least partially cloud-based, and operate on one or more server computing devices, such as server computing device <NUM>. Email <NUM> may be routed to the digital assistant service via network <NUM>, and any of the computing devices described in relation to <FIG> may communicate with one another via network <NUM>. In some examples, the digital assistant service may communicate with one or more data stores, such as training data store <NUM>, which may include natural language data sets for training various aspects of a digital assistant.

In this example, the digital assistant service receives the entirety of email <NUM>, including the addressees (in this case second user <NUM> "Barun" in the "to" field, and itself [DIGITAL ASSISTANT] in the "Cc" field), the subject line "Nice to meet you!", and the text in the body of the email. Although not shown, in examples where the digital assistant service receives an electronic message with other tags, such as designated meeting times, time zones, places, meeting types, etc., the digital assistant may also receive and process that information. In some examples, the digital assistant service may analyze received email <NUM> and determine whether there is a specific command in the that message that it should respond to (e.g., "schedule meeting", "add to my calendar", etc.). In this example, there is no direct command. However, the digital assistant service may process the text with a natural language processing engine and determine that the text "My assistant @[DIGITAL ASSISTANT], will figure out a time to meet" is a command to schedule a meeting for the first user based on information in email <NUM>.

Upon determining that email <NUM> contains a command to the digital assistant to help schedule/organize a meeting, the digital assistant service may perform a two-step processing of the text in the body of the message to determine one or more intents associated with the command. While the specifics of the processing are set forth in more detail in relation to <FIG> and <FIG>, at a basic level, the digital assistant service performs a first, coarse level natural language processing on the text in email <NUM>, and a second, fine-grained natural language processing on the text in email <NUM>. The coarse level processing may be performed to identify which sentences, and aspects thereof, are relevant to the received command (i.e., the command to assist with scheduling of a meeting), and the fine-grained processing may be performed to disambiguate between entities relevant to scheduling of the meeting. That is, the coarse level processing may identify sentences in the received text that include one or more potential meeting parameters (e.g., time, place, attendees), and the fine-grained processing may identify whether one or more of those sentences and/or meeting parameters are false positives (e.g., whether a sentence that includes a meeting parameter is not relevant to the received command to assist with scheduling of a new meeting, whether a perceived meeting parameter is not relevant to the received command to assist with scheduling of a new meeting).

According to some examples, the coarse level processing comprises processing of the text utilizing a hierarchical attention model, and the second level processing may comprise a conditional random field model, with long short-term feature extractors. In additional examples, one or more of the following may be applied to a received message in performing coarse and/or fine-grained processing of that message to assist with meeting scheduling: topic detection using clustering, hidden Markov models, maximum entropy Markov models, support vector machine models, decision tree models, deep neural network models, general sequence-to-sequence models (e.g., conditional probability recurrent neural networks, transformer networks), generative models, recurrent neural networks for feature extractors (e.g., long short-term memory models, GRU models), deep neural network models for word-by-word classification, and latent variable graphical models).

In this example, based on processing of the text from email <NUM>, the digital assistant service has identified that the first user <NUM> "Pamela" would like to schedule a meeting with the second user <NUM> "Barun". The digital assistant service may have also utilized the "to" field in making this determination (i.e., "BARUN" is included in the "to" field). The digital assistant service has also determined that although there are multiple dates included in the body of email <NUM>, the date that is relevant to the scheduling of the new meeting is "Friday, the 23rd". As such, the digital assistant service automatically generates and sends email <NUM> to the second user <NUM>, which second user <NUM> may view via computing device <NUM>. Email <NUM> from the digital assistant states: "Hi Barun - Pamela would like to schedule a meeting with you on Friday, May 23rd. Are you available on May 23rd from 10am-11am?". Although in this example the digital assistant service is asking the second user <NUM> "Barun" whether he is available to meet during specific hours on the proposed meeting date (May 23rd), if the digital assistant service has access to the second user's <NUM> calendar, in some examples, it might be able to bypass this step and automatically generate a meeting invite for a mutually available timeframe on the proposed meeting date. Additional details regarding processing of email <NUM> by the digital assistant service are provided in relation to <FIG> below.

<FIG> illustrates processing of an email <NUM> by a digital assistant service to assist with scheduling a meeting. Email <NUM> is the same email as email <NUM> discussed in relation to <FIG>. All of the steps and elements shown in <FIG>, except those in electronic message transmission sub-environment <NUM>, are illustrative of processing steps and elements that may be performed by a digital assistant service in processing electronic messages and/or utterances.

Email <NUM> composed by first user <NUM> "Pamela" has been transmitted to a digital assistant service that may help users schedule meetings and events. In some examples, email <NUM> may be transmitted to the digital assistant service based on email <NUM> including the digital assistant in the carbon copy line and/or including the "@[DIGITAL ASSISTANT]" tag in the body of email <NUM>. Regardless, once received by the digital assistant service, the service first determines whether there is a command specified in email <NUM>. In this example, the digital assistant service has identified that the first user <NUM> would like to have the digital assistant service assist with scheduling of a meeting, as indicated at element <NUM> "basic command identified by DA".

Once the digital assistant service has identified the basic command associated with email <NUM>, it can process text and/or other data (e.g., tags, explicit meeting parameters, etc.) associated with email <NUM>. In this example, although not shown, the digital assistant service may identify users that email <NUM> is addressed to in the "To" and "Cc" fields of that email. As shown in relation to element <NUM>, the digital assistant service may also analyze the text in the body of the email. In this example, as with the example in <FIG>, the text of email <NUM> states: "Hi Barun - It was great meeting you on May 21st. I thought our discussion was very productive. Let's continue it on Friday, the 23rd. My assistant @[DIGITAL ASSISTANT], will figure out a time to meet.

When the digital assistant service extracts the text from the body of email <NUM>, it processes that text with a hierarchical attention model, as illustrated by element <NUM>. For example, each sentence from the body of email <NUM> may be broken into its corresponding words. Then, a word encoder is applied to each word for each sentence, and a resulting vector for each sentence is determined based on the applied word encoders. Once the hierarchical attention model is sufficiently trained, it may be utilized to identify, by the digital assistant service, each sentence from the email text that is potentially related to a "schedule meeting" intent. The hierarchical attention model may be trained with training data obtained from a set of manually tagged sentences and/or emails, which may be stored in a store, such as training data store <NUM> in <FIG>.

The coarse-grained processing model comprising the hierarchical attention model, when applied to the text of email <NUM>, has split that text into a first set of sentences that meet a minimum threshold value for relating to a "schedule meeting" intent, and a second set of sentences that do not meet that minimum threshold value. In this example, the first set of sentences (sentences that do meet the minimum threshold value for relating to a "schedule meeting" intent) are shown in relation to element <NUM>, and the second set of sentences (sentences that do not meet the minimum threshold value for relating to a "schedule meeting" intent) are shown in relation to element <NUM>. For example, sentence <NUM> "Hi Barun - It was great meeting you on May 21st" may have a relatively high encoding score (i.e., high enough to meet the minimum threshold value) based on including two potential meeting parameter words/terms, each of which has its own encoding score based on the application of the hierarchical attention model. Those two words/terms are "Barun", potentially relating to a meeting attendee, and "May 21st", potentially relating to a meeting date. Similarly, sentence <NUM> "Let's continue it on Friday, the 23rd" may have a relatively high encoding score (high enough to meet the minimum threshold value) based on including two potential meeting parameter words/terms, each of which has its own encoding score based on the application of the hierarchical attention model. Those two words/terms are "Friday", potentially relating to a meeting day, and "23rd", potentially relating to a meeting date.

Alternatively, as shown in relation to element <NUM>, sentence <NUM> "I thought our discussion was very productive", and sentence <NUM> "My assistant @[DIGITAL ASSISTANT], will try to figure out a time to meet", when run through the hierarchical attention model, may have relatively low encoding scores, as there are no words with high encoding scores in either of those sentences related to meeting parameters. As such, sentence <NUM> and sentence <NUM> can be filtered from further processing by the digital assistant service for the purposes of assisting with scheduling of the meeting.

Because sentence <NUM> and sentence <NUM> both have met a minimum threshold value associated with the hierarchical attention model, a fine-grained processing model which may comprise a conditional random field model is applied to both of those sentences, as illustrated by element <NUM>. Although a conditional random field model is utilized in this example, other models (e.g., a topic detection clustering model; a statistical Markov model; a supervised learning model; a decision tree; a deep neural network model; a general sequence-to-sequence model; a generative model; a recurrent neural network model; a latent variable graphical model) may additionally or alternatively be applied for determining whether sentence <NUM>, words/terms in sentence <NUM>, sentence <NUM>, and/or words/terms in sentence <NUM> likely relate to the first user <NUM>'s "schedule meeting" intent. Like with the hierarchical attention model, the conditional random field model may be trained on a dataset that has been manually tagged. The conditional random field model acts as a more specific filter than the hierarchical attention model, in that it is specifically trained to identify words and sentences that relate to the specific intent to schedule the meeting that a user has instructed the digital assistant to assist with, while differentiating those words and sentences from other words and sentences in analyzed text that may "look" like meeting parameters (e.g., time, place, attendees), but which nonetheless do not directly relate to the user's "schedule meeting" intent.

In this example, the conditional random field model, when applied to sentence <NUM> and sentence <NUM>, has identified that sentence <NUM> and the words/terms "Friday" and "23rd" relate to the user's "schedule meeting" intent, as illustrated by element <NUM>, and that sentence <NUM> does not directly relate to the user's "schedule meeting" intent. However, the conditional random field model does not necessarily identify only entire sentences and words in those sentences as being related to a "schedule meeting" intent. That is, while not the case here, the conditional random field model may identify words in either or both of sentences <NUM> and <NUM> that have a high degree of likelihood of relating to the "schedule meeting" intent. Thus, a percentage and/or likelihood that each word, term, and/or sentence in each of sentences <NUM> and <NUM> relates to first user <NUM>'s "schedule meeting" intent may be determined by the digital assistant service, via the conditional random field model. The digital assistant service then utilizes a threshold associated with that percentage and/or likelihood for determining which parameters to include in its follow-up actions in assisting with scheduling of the meeting.

<FIG> illustrates processing of another email <NUM> by a digital assistant service to assist with scheduling another meeting. Email <NUM>, which is displayed on computing device <NUM>, has been drafted by first user <NUM> "Charles". That email includes second user "Alice" in the "To" field, and the digital assistant "[DIGITAL ASSISTANT]" in the "Cc" field. Email <NUM> states, in its body: "Hi Alice - it was great seeing you today. Thanks for filling me in on the Madrid account. @[DIGITAL ASSISTANT], find a time for us to meet over Skype in the next few weeks. " All of the steps and elements shown in <FIG>, except those in electronic message transmission sub-environment <NUM>, are illustrative of processing steps and elements that may be performed by a digital assistant service in processing electronic messages and/or utterances. For example, the processing steps described herein may be performed by one or more server computing devices, such as server computing device <NUM>, which may host a digital assistant service.

Email <NUM> composed by first user <NUM> "Charles" has been transmitted to a digital assistant service that may help users schedule meetings and events. In some examples, email <NUM> may be transmitted to the digital assistant service based on email <NUM> including the digital assistant in the carbon copy field and/or including the "@[DIGITAL ASSISTANT]" tag in the body of email <NUM>. Regardless, once received by the digital assistant service, the service may first determine whether there is a command specified in email <NUM>. In this example, the digital assistant service has identified that the first user <NUM> would like to have the digital assistant service assist with scheduling of a meeting, as indicated at element <NUM> "basic command identified by DA".

Once the digital assistant service has identified the basic command associated with email <NUM>, it can process text and/or other data associated with email <NUM>. In this example, although not shown, the digital assistant service may identify users that email <NUM> is addressed to in the "To" and "Cc" fields of that email. As shown in relation to element <NUM>, the digital assistant service may also analyze the text in the body of the email.

When the digital assistant service extracts the text from the body of email <NUM>, it processes that text with a course-graine processing model comprising a hierarchical attention model, as illustrated by element <NUM>. For example, each sentence from the body of email <NUM> may be broken into its corresponding words. Then, a word encoder is applied to each word for each sentence, and a resulting vector for each sentence is determined based on the applied word encoders. Once the hierarchical attention model is sufficiently trained, it may identify each sentence, to a degree of certainty, that is related to a "schedule meeting" intent. The hierarchical attention model may be trained with training data obtained from a set of manually tagged sentences and/or emails, which may be stored in a store, such as training data store <NUM> in <FIG>.

When applied to the text of email <NUM>, the hierarchical attention model may calculate a value for each word/term and sentence corresponding to a likelihood that each word/term and sentence corresponds to a "schedule meeting" intent of first user <NUM>. For exemplary purposes, in element <NUM>, the words "Alice" (a potential meeting attendee) and "today" (a potential meeting date) have been highlighted from sentence <NUM> as potentially relating to the "schedule meeting" intent based on the values calculated for them via application of the hierarchical attention model; the word "Madrid" (a potential meeting location) has been highlighted from sentence <NUM> as potentially relating to the "schedule meeting" intent based on its calculated value; and the word "Skype" (a potential meeting type), and the phrase "next few weeks" (potential meeting date window) have been highlighted from sentence <NUM> as potentially relating to the "schedule meeting" intent based on their calculated values. Thus, each of those words, phrases, and/or sentences may have a relatively high encoding score associated with it. As such, the digital assistant service may pass each of those words, phrases, and/or sentences along for processing through application of a conditional random field model.

Thus, each of the words, phrases and sentences illustrated in element <NUM> have a fine-grained processing model comprising a conditional random field model applied to them, as illustrated by element <NUM>. Although a conditional random field model is utilized in this example, other models (e.g., a topic detection clustering model; a statistical Markov model; a supervised learning model; a decision tree; a deep neural network model; a general sequence-to-sequence model; a generative model; a recurrent neural network model; a latent variable graphical model) may additionally or alternatively be applied for determining whether words/terms in sentences <NUM>, <NUM> and/or <NUM> likely relate to first user <NUM>'s "schedule meeting" intent. Like with the hierarchical attention model, the conditional random field model may be trained on a dataset that has been manually trained and tagged. The conditional random field model acts as a more specific filter than the hierarchical attention model, in that it is specifically trained to identify words and sentences that relate to the specific intent to schedule the meeting that a user has instructed the digital assistant to assist with, while differentiating those words and sentences from other words and sentences in analyzed text that may "look" like meeting parameters (e.g., time, place, attendees), but which nonetheless do not directly relate to the user's "schedule meeting" intent.

In this example, the digital assistant service makes the determination that, based on values associated with the words/terms and/or sentences corresponding to sentences <NUM>, <NUM> and <NUM>, which have been calculated based on application of the conditional random field model, the words "today" and "Madrid" should be ignored for scheduling purposes as indicated by element <NUM>, and the words "Alice" (a meeting attendee), "Skype" (a meeting type), and "next few weeks" (a date range when the meeting should be scheduled) correspond to first user <NUM>'s "schedule meeting" intent.

In some examples, developers may manually set and/or adjust a threshold value and/or percentage that must be met by each word/term corresponding to a meeting parameter for that word/term to be positively indicated (and therefore utilized by the digital assistant service for assisting with scheduling a corresponding meeting) as being associated with a user's "schedule meeting" intent. For example, a developer may set an initial percentage threshold (calculated by a conditional random field model) for a word/term to be positively indicated as being associated with a user's "schedule meeting" intent in order for the digital assistant service to utilize the corresponding parameter in performing scheduling assistance actions, and the developer may adjust that percentage depending on whether the results appear to be satisfactory. For example, if the digital assistant service is not able to identify sufficient meeting parameters in a high percentage of use cases, the developer may lower the threshold from <NUM>% to <NUM>%, and if the digital assistant service is including too many false positive parameters in a high percentage of use cases, the developer may raise the threshold from <NUM>% to <NUM>%.

<FIG> illustrates an exemplary email <NUM> that a digital assistant may generate and send to assist with scheduling a meeting based on processing of a message related to scheduling of that meeting. Email <NUM>, displayed on computing device <NUM> in electronic message reception environment <NUM>, has been generated based on the processing of email <NUM> that the digital assistant service performed as described in relation to <FIG> above. Specifically, the digital assistant service has determined, via application of the hierarchical attention model and conditional random field model to the text of email <NUM>, that meeting parameters that are relevant to Charles' "schedule meeting" intent are "Skype" (a meeting type), and "next few weeks" (a date range when the meeting is to take place). The digital assistant service may also determine based on its analysis that Alice is a potential meeting attendee. Additionally, the digital assistant service has determined that the parameters "today" and "Madrid" should be ignored based on the application of the two models. In some examples, values calculated for the parameters "today" and "Madrid" via the conditional random field model may have fallen below a threshold for utilization in providing meeting assistance by the digital assistant, and values calculated for the parameters "Skype", and "next few weeks" may have met or exceeded that threshold. As such, the digital assistant service has sent an email to Alice that states: "Hi Alice - Charles would like to meet with you over Skype in the next few weeks. Are you available at any of the following times and dates? -[Date/Time <NUM>] -[Date/Time <NUM>] -[Date/Time <NUM>]". Although not shown, each of the three dates/times may correspond to dates and times that fall within the "next few weeks", corresponding to the "date range when the meeting is to take place" parameter identified as being relevant to the user's schedule meeting intent. Additionally, the meeting has been listed as a Skype meeting, corresponding to the "meeting type" parameter identified as being relevant to the user's "schedule meeting" intent.

<FIG> is an exemplary method <NUM> for assisting with scheduling a meeting via processing of a message by a digital assistant service. The method <NUM> begins at a start operation and moves to operation <NUM> where a message comprising a plurality of sentences is received. Although a plurality of sentences is used for purposes of this example, operation <NUM> may alternatively be performed on a message comprising one sentence. In some examples, one or more of the plurality of sentences may include an explicit or implied request to have a digital assistant associated with the digital assistant service assist with scheduling of a meeting. For example, a user may add a digital assistant in the "to" and/or "cc" fields of the message and/or a user may include a digital assistant, or reference to a digital assistant, in the body of the message. In additional examples, the message may be manually tagged with a request to have the digital assistant assist with scheduling of a meeting (e.g., a user may choose a selectable option for directing the message to a digital assistant service, a messaging account may automatically route messages to a digital assistant service for processing).

From operation <NUM> flow continues to operation <NUM> where a subset of sentences of the plurality of sentences that are relevant to scheduling of the meeting are identified. The subset of sentences may be identified as being relevant to scheduling of the meeting based on scores and/or values that have been calculated for those sentences based on application of a hierarchical attention model of a course-graine processing model to each of those sentences. The model applied at operation <NUM> is the coarse chunking model applied to the plurality of sentences to disambiguate between different possible intents of the user that drafted the message. Application of the hierarchical attention model to the plurality of sentences may comprise separating each of the sentences into its corresponding words, applying a word encoder to each of those words, and identifying a vector for each sentence based on those encodings.

From operation <NUM> flow continues to operation <NUM> where a subset of words in the subset of sentences that are potentially relevant to scheduling of the meeting are identified based on relating to at least one meeting parameter. The subset of words may be identified as being relevant to scheduling of the meeting based on scores and/or values that have been calculated for those words based on application of a second-level processing model that is a more fine-grained model than the model applied at operation <NUM>. The model applied at operation <NUM> may comprise a fine-grained event tagger, such as a conditional random field model, with long short-term memory feature extractors. In some examples, the model applied at operation <NUM> may be trained on one or more datasets of scheduling messages and/or utterances.

The coarse-grained processing model applied at operation <NUM> comprises a hierarchical attention model. Although the fine-grained processing model applied at operation <NUM> is described primarily as a conditional random field model, other models may be utilized (e.g., top detection using clustering, hidden Markov models, maximum entropy Markov models, support vector machine models, decision tree models, deep neural network models, general sequence-to-sequence models (e.g., conditional probability recurrent neural networks, transformer networks), generative models, recurrent neural networks for feature extractors (e.g., long short-term memory models, GRU models), deep neural network models for word-by-word classification, and latent variable graphical models).

From operation <NUM> flow continues to operation <NUM> where the subset of words is split, based on the fine-grained processing model applied at operation <NUM>, into a first group comprising words from the subset of words that are above a meeting relevance threshold value, and a second group comprising words from the subset of words that are below a meeting relevance threshold value. In some examples, the type of fine-grained processing model applied to the subset of words at operation <NUM> may determine the threshold value at which the first and second group are split at. For example, if the fine-grained processing model has a relatively higher error rate associated with it, the threshold value may be relatively lower than if the fine-grained processing model has a relatively lower error rate associated with it.

From operation <NUM> flow continues to operation <NUM> where an automated action associated with scheduling the meeting is caused to be performed, wherein the automated action includes at least one meeting parameter from one of the words of the first group of words split at operation <NUM>. In examples, the automated action may be a meeting request sent to one or more potential attendees of a meeting that the digital assistant service has determined the message sender would like to have scheduled, a query to one or more potential attendees of a meeting for confirming potential times and/or dates for holding a meeting that the digital assistant service has determined the message sender would like to have scheduled, etc..

From operation <NUM> flow continues to an end operation and the method <NUM> ends.

<FIG> and <FIG> illustrate a mobile computing device <NUM>, for example, a mobile telephone, a smart phone, wearable computer (such as smart eyeglasses), a tablet computer, an e-reader, a laptop computer, or other AR compatible computing device, with which embodiments of the disclosure may be practiced. With reference to <FIG>, one aspect of a mobile computing device <NUM> for implementing the aspects is illustrated. In a basic configuration, the mobile computing device <NUM> is a handheld computer having both input elements and output elements. The mobile computing device <NUM> typically includes a display <NUM> and one or more input buttons <NUM> that allow the user to enter information into the mobile computing device <NUM>. The display <NUM> of the mobile computing device <NUM> may also function as an input device (e.g., a touch screen display). If included, an optional side input element <NUM> allows further user input. The side input element <NUM> may be a rotary switch, a button, or any other type of manual input element. In alternative aspects, mobile computing device <NUM> may incorporate more or fewer input elements. For example, the display <NUM> may not be a touch screen in some embodiments. In yet another alternative embodiment, the mobile computing device <NUM> is a portable phone system, such as a cellular phone. The mobile computing device <NUM> may also include an optional keypad <NUM>. Optional keypad <NUM> may be a physical keypad or a "soft" keypad generated on the touch screen display. In various embodiments, the output elements include the display <NUM> for showing a graphical user interface (GUI), a visual indicator <NUM> (e.g., a light emitting diode), and/or an audio transducer <NUM> (e.g., a speaker). In some aspects, the mobile computing device <NUM> incorporates a vibration transducer for providing the user with tactile feedback. In yet another aspect, the mobile computing device <NUM> incorporates input 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., a HDMI port) for sending signals to or receiving signals from an external device.

<FIG> is a block diagram illustrating the architecture of one aspect of a mobile computing device. That is, the mobile computing device <NUM> can incorporate a system (e.g., an architecture) <NUM> to implement some aspects. In one embodiment, the system <NUM> is implemented as a "smart phone" capable of running one or more applications (e.g., browser, e-mail, calendaring, contact managers, messaging clients, games, and media clients/players). In some aspects, the system <NUM> is integrated as a computing device, such as an integrated personal digital assistant (PDA) and wireless phone.

One or more application programs <NUM> may be loaded into the memory <NUM> and run on or in association with the operating system <NUM>. Examples of the application programs include phone dialer programs, e-mail programs, personal information management (PIM) programs, word processing programs, spreadsheet programs, Internet browser programs, messaging programs, and so forth. The system <NUM> also includes a non-volatile storage area <NUM> within the memory <NUM>. The non-volatile storage area <NUM> may be used to store persistent information that should not be lost if the system <NUM> is powered down. The application programs <NUM> may use and store information in the non-volatile storage area <NUM>, such as e-mail or other messages used by an e-mail application, and the like. A synchronization application (not shown) also resides on the system <NUM> and is programmed to interact with a corresponding synchronization application resident on a host computer to keep the information stored in the non-volatile storage area <NUM> synchronized with corresponding information stored at the host computer. As should be appreciated, other applications may be loaded into the memory <NUM> and run on the mobile computing device <NUM>, including instructions for providing and operating a digital assistant computing platform.

The visual indicator <NUM> may be used to provide visual notifications, and/or an audio interface <NUM> may be used for producing audible notifications via the audio transducer <NUM>. In the illustrated embodiment, the visual indicator <NUM> is a light emitting diode (LED) and the audio transducer <NUM> is a speaker. These devices may be directly coupled to the power supply <NUM> so that when activated, they remain on for a duration dictated by the notification mechanism even though the processor <NUM> and other components might shut down for conserving battery power. The LED may be programmed to remain on indefinitely until the user takes action to indicate the powered-on status of the device. The audio interface <NUM> is used to provide audible signals to and receive audible signals from the user. For example, in addition to being coupled to the audio transducer <NUM>, the audio interface <NUM> may also be coupled to a microphone to receive audible input, such as to facilitate a telephone conversation. In accordance with embodiments of the present disclosure, the microphone may also serve as an audio sensor to facilitate control of notifications, as will be described below. The system <NUM> may further include a video interface <NUM> that enables an operation of an on-board camera <NUM> to record still images, video stream, and the like.

<FIG> is a block diagram illustrating physical components (e.g., hardware) of a computing device <NUM> with which aspects of the disclosure may be practiced. The computing device components described below may have computer executable instructions for assisting with scheduling a meeting. In a basic configuration, the computing device <NUM> includes at least one processing unit <NUM> and a system memory <NUM>. Depending on the configuration and type of computing device, the system memory <NUM> may comprise, but is not limited to, volatile storage (e.g., random access memory), non-volatile storage (e.g., read-only memory), flash memory, or any combination of such memories. The system memory <NUM> may include an operating system <NUM> suitable for running one or more digital assistant programs. The operating system <NUM>, for example, may be suitable for controlling the operation of the computing device <NUM>. Furthermore, embodiments of the disclosure may be practiced in conjunction with a graphics library, other operating systems, or any other application program and is not limited to any particular application or system. This basic configuration is illustrated in <FIG> by those components within a dashed line <NUM>. The computing device <NUM> may have additional features or functionality. For example, the computing device <NUM> may also include additional data storage devices (removable and/or non-removable) such as, for example, magnetic disks, optical disks, or tape. Such additional storage is illustrated in <FIG> by a removable storage device <NUM> and a non-removable storage device <NUM>.

As stated above, a number of program modules and data files may be stored in the system memory <NUM>. While executing on the processing unit <NUM>, the program modules <NUM> (e.g., digital assistant meeting application <NUM>) may perform processes including, but not limited to, the aspects, as described herein. According to examples, the meeting parameter identification engine <NUM> may perform one or more operations associated with identifying meeting parameters (e.g., time, place, date, location, type) in a message. Hierarchical attention model engine <NUM> may perform one or more operations associated with assigning weights and/or values to words and sentences in a message to identify potential meeting parameters in that message. Random field model engine <NUM> may perform one or more operations associated with fine-grained identification of meeting parameters from a message (e.g., ruling out false positives from the hierarchical attention model processing). Meeting follow-up engine <NUM> may automatically perform, by a digital assistant service, one or more follow-up actions associated with scheduling a meeting based on parameters identified via coarse and fine-grained processing by a digital assistant service on one or more messages.

For example, embodiments of the disclosure may be practiced via a system-on-a-chip (SOC) where each or many of the components illustrated in <FIG> may be integrated onto a single integrated circuit. Such an SOC device may include one or more processing units, graphics units, communications units, system virtualization units and various application functionality all of which are integrated (or "burned") onto the chip substrate as a single integrated circuit. When operating via an SOC, the functionality, described herein, with respect to the capability of client to switch protocols may be operated via application-specific logic integrated with other components of the computing device <NUM> on the single integrated circuit (chip). Embodiments of the 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.

The computing device <NUM> may also have one or more input device(s) <NUM> such as a keyboard, a mouse, a pen, a sound or voice input device, a touch or swipe input device, etc. The output device(s) <NUM> such as a display, speakers, a printer, etc. may also be included. The aforementioned devices are examples and others may be used. The computing device <NUM> may include one or more communication connections <NUM> allowing communications with other computing devices <NUM>. Examples of suitable communication connections <NUM> include, but are not limited to, radio frequency (RF) transmitter, receiver, and/or transceiver circuitry; universal serial bus (USB), parallel, and/or serial ports.

<FIG> illustrates one aspect of the architecture of a system for processing data received at a computing system from a remote source, such as a personal/general computer <NUM>, tablet computing device <NUM>, or mobile computing device <NUM>, as described above. Content displayed at server device <NUM> may be stored in different communication channels or other storage types. For example, various documents may be stored using a directory service <NUM>, a web portal <NUM>, a mailbox service <NUM>, an instant messaging store <NUM>, or a social networking site <NUM>. The program modules <NUM> may be employed by a client that communicates with server device <NUM>, and/or the program modules <NUM> may be employed by server device <NUM>. The server device <NUM> may provide data to and from a client computing device such as a personal/general computer <NUM>, a tablet computing device <NUM> and/or a mobile computing device <NUM> (e.g., a smart phone) through a network <NUM>. By way of example, the computer system described above with respect to <FIG> may be embodied in a personal/general computer <NUM>, a tablet computing device <NUM> and/or a mobile computing device <NUM> (e.g., a smart phone). Any of these embodiments of the computing devices may obtain content from the store <NUM>, in addition to receiving graphical data useable to be either pre-processed at a graphic-originating system, or post-processed at a receiving computing system.

Claim 1:
A method (<NUM>) for assisting with scheduling a meeting, the method performed by a digital assistant service comprising:
receiving (<NUM>) an electronic message (<NUM>; <NUM>; <NUM>) comprising a plurality of sentences (<NUM>, <NUM>, <NUM>, <NUM>; <NUM>, <NUM>, <NUM>) composed by a first user (<NUM>; <NUM>; <NUM>) to a second user (<NUM>) and addressed to a digital assistant associated with the digital assistant service;
extracting each sentence from the electronic message (<NUM>; <NUM>; <NUM>);
applying a word encoder to each word for each sentence utilizing a coarse-grained processing model (<NUM>; <NUM>) comprising a hierarchical attention model;
determining, based on the applied word encoders, a resulting vector for each sentence utilizing the course-grained processing model (<NUM>; <NUM>);
identifying (<NUM>), utilizing the coarse-grained processing model (<NUM>; <NUM>), a subset of sentences (<NUM>; <NUM>) of the plurality of sentences that are relevant to scheduling of the meeting, based on the sentences meeting a minimum threshold value;
identifying (<NUM>), utilizing a fine-grained processing model (<NUM>; <NUM>), a subset of words in the identified subset of sentences (<NUM>; <NUM>) that are potentially relevant to scheduling of the meeting based on relating to at least one meeting parameter;
splitting (<NUM>), utilizing the fine-grained processing model (<NUM>; <NUM>), the identified subset of words into a first group (<NUM>) comprising words from the subset of words that are above a meeting relevance threshold value, and a second group (<NUM>) comprising words from the subset of words that are below a meeting relevance threshold value; and
causing (<NUM>) an automated action associated with scheduling the meeting to be performed, wherein the automated action includes at least one meeting parameter from one of the words of the first group of words.