U.S. patent application number 14/675575 was filed with the patent office on 2016-06-16 for enhancing a message by providing supplemental content in the message.
The applicant listed for this patent is Nuance Communications, Inc.. Invention is credited to Sundar Balasubramanian, Michael McSherry.
Application Number | 20160171538 14/675575 |
Document ID | / |
Family ID | 56111572 |
Filed Date | 2016-06-16 |
United States Patent
Application |
20160171538 |
Kind Code |
A1 |
Balasubramanian; Sundar ; et
al. |
June 16, 2016 |
ENHANCING A MESSAGE BY PROVIDING SUPPLEMENTAL CONTENT IN THE
MESSAGE
Abstract
The present technology relates to enhancing a message with
supplemental content. The system may enhance a message based on
topics identified in past correspondence messages or topics
anticipated based on an intended recipient of a correspondence
message being drafted. The system can operate in combination or
conjunction with a language prediction system, an optimizing
language model, and a text input method. The systems and methods
provide users with supplemental content at a time and in a specific
situation, which allows for effective targeting of content.
Inventors: |
Balasubramanian; Sundar;
(Seattle, WA) ; McSherry; Michael; (Seattle,
WA) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
Nuance Communications, Inc. |
Burlington |
MA |
US |
|
|
Family ID: |
56111572 |
Appl. No.: |
14/675575 |
Filed: |
March 31, 2015 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
14633088 |
Feb 26, 2015 |
|
|
|
14675575 |
|
|
|
|
14570934 |
Dec 15, 2014 |
|
|
|
14633088 |
|
|
|
|
Current U.S.
Class: |
705/14.53 |
Current CPC
Class: |
G06Q 30/0255 20130101;
H04L 51/08 20130101; G06F 16/3322 20190101; G06F 16/335 20190101;
G06F 16/9535 20190101; H04L 51/16 20130101; G06F 17/3051
20130101 |
International
Class: |
G06Q 30/02 20060101
G06Q030/02; H04L 12/58 20060101 H04L012/58 |
Claims
1. A method of displaying advertising content in a conversation
thread between multiple users based on two or more topics
identified in the conversation thread, the method comprising:
accessing a conversation thread between two users that is displayed
in an interface, the conversation thread comprised of a series of
messages containing text that are exchanged between two or more
users; analyzing words or phrases in the conversation thread to
identify two or more topics in the conversation thread, the two or
more topics being identified when a keyword-analysis threshold
associated with each topic is exceeded; using the two or more
identified topics in the conversation thread to select advertising
content to display to the users, wherein the advertising content is
associated with the two or more topics in the conversation thread;
and providing the selected advertising content in the conversation
thread to the users.
2. The method of claim 1, wherein the first party is a user of a
portable device operating a language prediction application,
wherein the messages were sent or received by the user, and wherein
identifying the two or more topics in the messages includes
identifying keywords associated with the topics in the
messages.
3. The method of claim 1, wherein a threshold associated with one
topic is different than a threshold associated with another
topic.
4. The method of claim 1, wherein the advertising content includes
a link, a video, GPS coordinates, a menu, advertiser contact
information, an audio clip, a photo, or a phone number.
5. The method of claim 1, wherein the series of messages includes
messages that are being drafted by a user, but are not yet
transmitted to another user.
6. The method of claim 1, wherein identifying the two or more
topics in the messages further comprises using information about
users sending or receiving the messages.
7. The method of claim 1, wherein the method further comprises:
determining when a topic is no longer active in the conversation
thread; and in response thereto, ceasing to provide the selected
advertising content in the conversation thread.
8. The method of claim 1, further comprising: gathering metrics
associated with topics identified in the conversation thread; and
generating a report based on the metrics.
9. A non-transitory computer-readable storage medium containing
machine-implementable instructions for performing a method of
displaying advertising content in a conversation window, the method
comprising: receiving a first message from at least one participant
in the conversation window, the first message including textual
content; receiving a draft message entered by the recipient of the
first message, the draft message including textual content;
determining whether the first message and the draft message relate
to two topics based on an analysis for the textual content of each
message; when the first message and draft message relate to two
topics, accessing a data structure containing advertising content
associated with topics; identifying advertising content associated
with the combination of the two topics; displaying within the
conversation window an option to include the identified advertising
content with the draft message; receiving a selection to include
the advertising content with the draft message; and after the draft
message is transmitted to another participant, at least partially
displaying the identified advertising content within the
conversation window.
10. The non-transitory computer-readable storage medium of claim 9,
wherein the advertising content includes a link, a video, GPS
coordinates, a menu, advertiser contact information, an audio clip,
a photo, or a phone number.
11. The non-transitory computer-readable storage medium of claim 9,
further comprising receiving an indication that an object or finger
is hovering over the advertising content, and in response to
receiving the indication, enlarging the advertising content in the
conversation window.
12. The non-transitory computer-readable storage medium of claim 9,
wherein determining whether the first message and the draft message
relate to two topics comprises determining that a keyword analysis
of the messages exceeds thresholds associated with the two
topics.
13. The non-transitory computer-readable storage medium of claim
12, wherein the threshold associated with one topic is different
than the threshold associated with the other topic.
14. The non-transitory computer-readable storage medium of claim 9,
further comprising: after transmitting the draft message, but
before transmitting a third message, automatically inserting
advertising content such that the advertising content is at least
partially visible in the conversation window.
15. A system for entering advertising content in a message
contained in a conversation thread of a messaging application, the
system comprising: memory containing a data structure and
computer-executable instructions; wherein the data structure
includes multiple topics and advertising content for enhancing a
text-based message, the advertising content being associated with
each of the multiple topics; wherein the computer-executable
instructions include instructions to: analyze transmitted or
received text-based messages to identify two or more topics,
wherein the text-based messages are exchanged between a user and
another party, and wherein the two or more topics are associated
with specific advertising content; determine a time to provide to
the user an indication of an availability of the specific
advertising content; provide to the user an option to add the
specific advertising content to a draft text-based message; and
insert the specific advertising content into the draft text-based
message after the user selects the option; and at least one
processor for executing the computer-executable instructions stored
in the memory.
16. The system of claim 15, wherein the system includes a
touch-screen display, a portable power source, a wireless
transceiver, and a hand-held housing for carrying the memory,
processor, display, power source and transceiver.
17. The system of claim 15, wherein the text-based message is an
SMS or MMS message, and wherein the advertising content includes a
link, GPS coordinates, a portion of formatted content obtained from
a website, a hover button, or contact information.
18. The system of claim 15, wherein analyzing text-based messages
to identify two or more topics includes comparing, to a threshold
value, a frequency that a specific word or phrase associated with
each topic is used within a predetermined period of time.
19. The system of claim 15, wherein the data structure further
stores weights associated with the topics, and wherein determining
the time to provide the indication includes analyzing the weights
in relation to text in the text-based messages.
20. The system of claim 15, wherein a weight associated with one
topic is different than a weight associated with another topic.
Description
CROSS-REFERENCE TO RELATED APPLICATIONS AND PRIORITY CLAIM
[0001] The present application is a continuation of U.S. patent
application Ser. No. 14/633,088 filed Feb. 26, 2015, entitled
ENHANCING A MESSAGE BY PROVIDING SUPPLEMENTAL CONTENT IN THE
MESSAGE; which is a continuation-in-part of U.S. patent application
Ser. No. 14/570,934, filed Dec. 15, 2014, entitled OPTIMIZING A
LANGUAGE MODEL BASED ON A TOPIC OF CORRESPONDENCE MESSAGES; which
applications are incorporated herein by reference in their
entireties.
BACKGROUND
[0002] Messaging applications receive content from users in a
variety of ways. Users can fill messages with text or media,
entering this content using a keyboard, touchscreen, or the like.
Sometimes users wish to enter more information than is practical in
a given message. For example, a user may wish to send reviews of a
restaurant to his friend. Messaging applications permit users to
link to supplementary information, via, for example, a web site
address. But entering the link can be cumbersome, and finding the
correct information to link to consumes an inordinate amount of
time. Further, at times the supplementary information, if provided,
is provided at an inopportune or inappropriate time.
[0003] The need exists for a system that overcomes the above
problems, as well as one that provides additional benefits.
Overall, the above examples of prior or related systems and their
associated limitations are illustrative, but not exclusive. Other
limitations of existing or prior systems will become apparent to
those of skill in the art upon reading the following Detailed
Description.
BRIEF DESCRIPTION OF THE DRAWINGS
[0004] Embodiments of the present disclosure will be described and
explained through the use of the accompanying drawings in
which:
[0005] FIG. 1 is a diagram of a suitable environment in which a
system for entering supplemental content in a message may
operate;
[0006] FIG. 2 is a block diagram of a system for entering
supplemental content in a message;
[0007] FIG. 3 is a flow diagram depicting a method performed by a
system for optimizing a language model based on a topic identified
in correspondence messages, this method can work in conjunction
with the method described in FIG. 7;
[0008] FIG. 4 shows representative correspondence messages between
a user and a party;
[0009] FIG. 5 is a representative table showing topics and text
associated with those topics;
[0010] FIG. 6 shows a representative user interface including a
virtual keyboard using a language prediction application that
utilizes an optimized language model generated by a system
according to the present disclosure;
[0011] FIG. 7 is a flow diagram depicting a method performed by a
system for entering supplemental content in a message for receiving
a message from a user and identifying and entering supplemental
content in the message;
[0012] FIGS. 8A, 8B, and 8C show representative interfaces for
entering and viewing supplemental content in a message; and
[0013] FIG. 9 shows a table containing representative triggers and
supplemental content for enhancing a message.
DETAILED DESCRIPTION
[0014] The following method and system describe enhancing a message
with supplemental content. Enhancing a message with supplemental
content includes leveraging topical language models for
scenario-based advertising. For example, the system enhances a
correspondence between two parties using a text messaging platform.
On the text message platform, the message correspondence between
the two users may include words and phrases such as: "meet at 8:00
pm tonight," "the Beatles," "rock music," "did you buy tickets
yet?," "is it raining?," or "which bar do you want to meet at
before the Beatles concert?". These phrases and words trigger the
system to present supplemental content in the message; for example,
the system will embed a link to buy concert tickets in the message
based on the trigger "tickets". In another example, the system
includes the location and velocity of each user as supplemental
content to assist each user in planning the event. In general, the
supplemental content can be in several forms including, but not
limited to: a link, a deep link, or a menu display that appears
when the user's finger hovers over a certain part of the
message.
[0015] Furthermore, the system may continuously, sporadically, or
periodically enhance messages with supplemental content in several
ways. The system will enhance the conversation based on topics
identified in past messages, topics anticipated based on an
intended recipient of a message, or the context in which a party is
sending or receiving a message. The system can operate in
combination or conjunction with a language prediction system, such
as a next word prediction application used by a virtual keyboard,
which provides improved supplemental content for conversations
related to identified topics.
[0016] The disclosed technology has several advantages. First,
users will easily navigate between the conversation and enhanced
conversation with supplemental content. This will allow the user to
quickly verify information, make plans, and execute operations
without having to consult a different resource. Second, advertising
businesses will better be able to target users because users will
view supplemental content (e.g., ads, links, business locations) at
the exact time a user needs the information, that is, the disclosed
technology identifies the right moment to engage the user and
insert an ad or other supplemental content. Specifically, the
system will enhance a conversation based on the topic of
conversation, and this allows the system to use different moments
(e.g., anxiety, excitement, hunger, frustration, success, etc.) to
insert supplemental content related to the topic of conversation at
an opportune time. Third, the supplemental content integrates a
user's preferences, past and present conversations, language
selection, and user context to enhance a message, which is not
traditionally done. Fourth, the disclosed technology can assist
companies in taking advantage of the sequence of events in
conversation. Specifically, once the disclosed technology gains
insight into an upcoming event between two parties based on a topic
of conversation, the disclosed technology can suggest supplemental
content at certain times. For example, if two parties plan to
attend a movie, the disclosed technology may first suggest
supplemental content like movie trailers and movie showing times;
then later in the conversation, it may suggest a place to get a
drink after the movie. Also, after the movie is over, the disclosed
technology may suggest contacting a cab service in a message from
one party to another regarding returning home. Overall, the
disclosed technology factors in the sequence of events, weather,
time of day, and the like to determine when and what type of
supplemental content to suggest to a user for insertion in to a
conversation.
[0017] For enhancing a message with supplemental content in
messages, a dialogue-based language model can be helpful.
Specifically, if the system identifies a topic in past
correspondence messages or anticipates a topic for text being
entered by a user, it can keep all topics active in a
correspondence or "conversation". Then, as described above, the
topics trigger supplemental content associated with word lists
available to users in a conversation. As an example of how a
company uses this information to advertise, a "scenario" may be
defined as the intersection of two topics, with a pre-defined
threshold for each topic. For example, the scenario may be defined
as "hunger and interested in baseball", and the system has
determined that the intersection of baseball is at or above a 30%
threshold and the intersection of hungry is at or above a 50%
threshold. This means of all active topics of conversation,
baseball is above a 30% in importance and hunger is above a 50% in
importance. If an advertiser determines this is scenario is
relevant, the advertiser could use the system to identify these
moments and display an ad (e.g., buy baseball tickets and nachos),
which is relevant supplemental content. The users will likely find
this supplemental content useful given their topic of conversation
is food and baseball, and an embedded link with a sale will enhance
their conversation.
[0018] Furthermore, advertisers can exploit topic correlations to
cross advertise. For example, football and pizza companies can work
together to advertise to customers interested in supplemental
content related to football and pizza for conversation.
Specifically, if one party sends a message to another party stating
"let's watch the game and eat some pizza," the other party may
respond with a message including an embedded link to a pizza coupon
valid for the day of the game. Moreover, while pizza and football
companies benefit from exploiting a known topic correlation of
pizza and football, there are unknown correlations that companies
can also exploit. The present technology reveals new trends in
language that would not otherwise be obvious. For example, while
pizza and football involve a known correlation, there may be
unknown topic correlations in a conversation regarding football and
gym memberships. With the lexical analysis and topic correlation
described in this disclosure, companies can exploit the unknown
correlations and new language trends in a conversation to include
supplemental content and target a specific audience.
[0019] The system of the present disclosure receives all
correspondence messages of a conversation. As a result, it can
identify topics discussed by parties other than the user of the
device, and the system can adjust a language model to account for
the topics identified. When the system determines that a topic has
gone idle or changed, it can shift priorities of words or
combinations of words in a language model. Several topics can be
accounted for at a given time, and the disclosed system can
optimize a language model for the multiple topics. In some
implementations, the system forms a linguistic graph across
multiple users, enabling the system to anticipate lexical needs
before a party even starts drafting a correspondence message. For
example, the system may disseminate an optimized language model
among related parties. Accordingly, if two parties are discussing a
particular subject, and a user initiates a conversation with one of
the two parties, the system may utilize a language model optimized
for the conversation between the two parties, anticipating the
lexical needs of the user for the new conversation.
[0020] The disclosed system and method incorporate the above
mentioned optimized language model into enhancing the supplemental
content of a message. For example, the system creates a language
model and optimizes as described above. Then, the system uses the
language model in conjunction with triggers for supplemental
content. In some embodiments of the system, if the language module
includes ballet, evening plans, and holidays, the system may
display supplemental content for tickets to the Nutcracker Ballet
within the text messaging platform. The supplemental content can be
in the form of a link or a menu for selecting dates to attend the
performance.
[0021] The following paragraphs describe various implementations of
the invention and specific details for a thorough understanding and
an enabling description of these implementations. One skilled in
the art will understand, however, that the invention may be
practiced without many of these details. Additionally, some
well-known structures or functions may not be shown or described in
detail, so as to avoid unnecessarily obscuring the relevant
description of the various implementations. The terminology used is
intended to be interpreted in its broadest reasonable manner, even
though it is used in conjunction with a detailed description of
certain specific implementations of the invention.
[0022] The following discussion includes examples of a system for
entering enhanced content in a message. The system is described
with respect to a number of processes that it may implement and
numerous examples of how it may be implemented.
Suitable Environments
[0023] FIG. 1 and the following discussion provide a brief, general
description of a suitable computing environment 100 in which a
system for enhancing a message, as described herein, can be
implemented. Although not required, aspects and implementations of
the invention will be described in the general context of
computer-executable instructions, such as routines executed by a
general-purpose computer, a personal computer, a server, or other
computing system. The invention can also be embodied in a special
purpose computer or data processor that is specifically programmed,
configured, or constructed to perform one or more of the
computer-executable instructions explained in detail herein.
Indeed, the terms "computer" and "computing device," as used
generally herein, refer to devices that have a processor and
non-transitory memory, like any of the above devices, as well as
any data processor or any device capable of communicating with a
network. Data processors include programmable general-purpose or
special-purpose microprocessors, programmable controllers,
application-specific integrated circuits (ASICs), programmable
logic devices (PLDs), or the like, or a combination of such
devices. Computer-executable instructions may be stored in memory,
such as random access memory (RAM), read-only memory (ROM), flash
memory, or the like, or a combination of such components.
Computer-executable instructions may also be stored in one or more
storage devices, such as magnetic or optical-based disks, flash
memory devices, or any other type of non-volatile storage medium or
non-transitory medium for data. Computer-executable instructions
may include one or more program modules, which include routines,
programs, objects, components, data structures, and so on that
perform particular tasks or implement particular abstract data
types.
[0024] The system and method can also be practiced in distributed
computing environments, where tasks or modules are performed by
remote processing devices, which are linked through a
communications network 160, such as a Local Area Network ("LAN"),
Wide Area Network ("WAN"), or the Internet. In a distributed
computing environment, program modules or subroutines may be
located in both local and remote memory storage devices. Aspects of
the invention described herein may be stored or distributed on
tangible, non-transitory computer-readable media, including
magnetic and optically readable and removable computer discs,
stored in firmware in chips (e.g., EEPROM chips). Alternatively,
aspects of the invention may be distributed electronically over the
Internet or over other networks (including wireless networks).
Those skilled in the relevant art will recognize that portions of
the invention may reside on a server computer, while corresponding
portions reside on a client computer. Data structures and
transmission of data particular to aspects of the invention are
also encompassed within the scope of the invention.
[0025] Referring to the example of FIG. 1, a system according to
embodiments of the invention operates in or among wearable devices
102, mobile devices 105, laptop computers 108, personal computers
110, video game systems 112, and/or one or more server computers
115. The mobile devices 105, laptop computers 108, personal
computers 115, and video game systems 112 communicate through one
or more wired or wireless networks 160 with the server 115. The
wearable computer 102 can communicate via a wireless connection
(e.g., via a short-range wireless protocol) with, for example, the
mobile devices 105. A data storage area 120 contains data utilized
by the system, and, in some implementations, software necessary to
perform functions of the system. For example, the data storage area
120 may contain language models and correspondence messages.
[0026] The system communicates with one or more third-party servers
125 via public or private networks. The third-party servers 125
include servers maintained by entities, such as third-party
corporations, and provide enhanced or supplementary content for
entering in a message. The third-party servers may communicate with
data storage area 130. The wearable computer 102, mobile devices
105, laptop computer 108, personal computers 110, video game
consoles 112, and/or another device or system, display a user
interface for receiving input by a user to a message and for
displaying enhanced content.
Suitable System
[0027] FIG. 2 is a block diagram of a system 200 for enhancing a
message by associating supplemental content with a portion of the
message. The system 200 can operate on or among the wearable
computer 102, mobile devices 105, laptop computer 108, personal
computer 110, video game consoles 112, and/or another device or
system, and it may be distributed among such devices and, for
example, the server 115. The block diagram of system 200 enhances a
message by associating supplemental content with a portion of the
message as in the process described in FIG. 7. Also, block diagram
of system 200 incorporates optimizing a language model based on a
topic of correspondence messages as in FIG. 3. Importantly, one
with ordinary skill in the relevant the art will appreciate how
enhancing a message with supplemental content relates to optimizing
a language model based on topic correspondence because the topics
in the correspondence relate to enhancing messages.
[0028] The system 200 include a message analysis module 205, a
supplemental content maintenance module 210, a supplemental content
identification module 215, a message enhancement module 220,
enhancement analytics module 225, a message filtering module 230, a
language model identification module 240, and a language model
optimization module 245. The system reads data from and stores data
in advertising content data storage 250, supplemental content data
storage 255, and analytics data storage 260. The system stores data
in and accesses data from analytics database 260, language models
data storage 265, topic data storage database 270, and
correspondence messages data storage 275. Other databases, not
shown, can be connected. Also, while the databases are shown
separately, the databases can be integrated into one database.
[0029] The system receives messages, including messages sent by a
user and text or other content entered into a message but not yet
sent. The system also receives user selections, language models,
and text input. The system outputs enhanced messages, analytics,
and language models.
[0030] The message filtering module 230 maintains and filters
messages for identifying relevant topics for a user. The message
filtering module 230 receives messages, text input, user
selections, and retrieves from and stores correspondence messages
in correspondence messages data storage 275. The message filtering
module 230 also filters correspondence messages based on various
criteria. In some implementations, the message filtering module
filters correspondence messages based on a user of a mobile device
having sent or received a message. The message filtering module 230
can filter messages based on a party to whom a message was sent, a
party from whom a messages was received, and so forth. For example,
the message filtering module 230 may filter messages according to a
user and a party to whom the user addressed a message. In some
implementations, the system filters messages based on a time a
message was sent. For example, the system filters messages
according to a predetermined time period before the system
optimizes the language model. The message filtering module 230 also
can filter messages based on an application used for generating or
sending a message, or based on a format of a message.
[0031] The message analysis module 205 identifies topics in
filtered correspondence messages. The message analysis module 205
also examines new messages to determine whether
previously-identified topics are still active. A topic is something
referred to, explicitly or implicitly, in one or more
correspondence messages. Topics include objects, ideas, feelings,
places, and the like. The system can identify multiple topics in
correspondence messages. For example, successive correspondence
messages may refer to a Mariners baseball game, and the system
identifies both "Mariners" and "baseball" topics. In some
implementations, the system raises priorities for words associated
with a topic by a greater degree than priorities for words
associated with other topics.
[0032] Topics are identified in many ways. In some implementations,
a topic is identified based on keywords appearing or repeated in
correspondence messages. For example, the message analysis module
205 may compare correspondence messages to a list of keywords and
determine that a topic has been referred to if an associated
keyword is found in the correspondence messages. In some
implementations, the message analysis module identifies a topic
based on a word's or phrase's frequency is used in correspondence
messages. For example, if a word is used three times among five
messages sent and received by a user, the system may identify the
word or an associated word as a topic. In some implementations, the
message analysis module 205 identifies a topic based on a question
and answer pair. For example, the system may identify a question in
a message from a user to a party and a one word response by the
user, and the system may determine that the word responded with by
the user is a topic. Thus, for the question and answer pair, "Where
are you going to visit on vacation?" and, "London," the system may
identify "London" as a topic.
[0033] The language model identification module 240 identifies a
language model to optimize. Language models may be received by the
system or identified in language models data storage 265. In some
implementations, the language model identification module 240
identifies a default language model. In other implementations, the
language model 240 identification module selects a language model
to optimize based on a language model previously used for a user.
For example, the language model 240 identification module may
identify a language model to optimize based on a language model
that was previously used by a language prediction application for
predicting input by a user, or a language model previously used for
predicting input by the user for a message sent to a particular
recipient. The identified language model may comprise a language
model that has already been optimized by the system 200.
[0034] The language model optimization module 245 optimizes the
language model identified by the language model identification
module 240 based on topics identified by the message analysis
module 205 and/or topics anticipated based on a received user
selection. As discussed above, the message analysis module 205 can
identify topics in past correspondence messages. The language model
optimization module 245 also identifies topics in a received user
selection. For example, user selection includes that the intended
recipient of a draft message is a particular party or type of
party. For example, a user selection may indicate that the user has
chosen to initiate an instant messaging session with customer
service related to a particular technology or product. The language
model may determine that the technology or product contained in the
customer service request is initiated is a topic.
[0035] The language model optimization module 245 optimizes a
language model by increasing or reducing a priority of a word in
the language model. For example, the language model optimization
module 245 may adjust a probability associated with a word or
multiple words from the language model based on topics identified
by the message analysis module 205 and topics in user selections.
The language model optimization module 245 optimizes a language
model based on information associated with topics identified in
correspondence messages.
[0036] Topics identified by the message analysis module 205 may be
compared to data stored in topic data storage 270. Topic data
storage may contain data correlating words and phrases with topics.
For example, a topic, "Baseball," may be associated with words and
phrases including "Babe Ruth," "Ichiro," "homer," "grand slam,"
"Cooperstown," "7th inning stretch," "Take Me Out to the Ballgame,"
and "hot dog."
[0037] In some implementations, system 200 may generate data
correlating topics and associated words and phrases by examining
correspondence messages identified as being related to a topic. In
some implementations, a technician creates data correlating topics
and associated words and phrases. The data correlating words and
phrases with topics may include a ranking or weight indicating a
degree to which a word or phrase is related to a topic. In some
implementations, the language model optimization module 245 alters
a priority associated with a word in a language model based on a
ranking or weight associated with the word. For example, "Babe
Ruth" and "Ichiro" may be associated with a weight of five, and
"Cooperstown" and "7th inning stretch" may be associated with a
weight of three, and the language model optimization module may
alter a priority associated with these words by a factors of five
and three, respectively.
[0038] Also, the message analysis module 205 receives messages from
a user of a device and analyzes the messages to determine whether
supplemental content is available that relates to the message. The
received messages include a message being drafted by a user. For
example, the system can receive text input directly from a keyboard
being used to type a message. The message analysis module 205
compares messages to triggers stored in supplemental content data
storage 255. As discussed herein, triggers are words, phrases, and
the like, that are associated with supplemental content. The
message analysis module 205 can identify a trigger in a message
despite the precise trigger not being recited in the message. For
example, the message analysis module may identify synonyms of
triggers in a message, may use stemming to identify related words,
etc.
[0039] The message analysis module 205 can also include topics in
its analysis. For example, while the message may not contain an
exact phrase or word, the message analysis module 205 may identify
related supplemental content from the topic of conversation. Also,
the message analysis module 205 can communicate with the language
model optimization module 245, which identifies past/present
topics. The message analysis module 205 can use the optimized
language to determine if a particular conversation includes
triggers for supplemental content.
[0040] The supplemental content maintenance module 210 maintains
supplemental content stored in supplemental content data storage
255. Supplemental content includes text, images, video, and audio,
which the system can associate with a portion of a message and
display to a user viewing the message. For example, supplemental
content may be a dinner menu from a restaurant, comprising text and
images. The system may also store links, URLs, or logical network
locations where supplemental content may be accessed or retrieved
from the network, rather than storing the content in the data
storage. The supplemental content maintenance module 210 also
maintains metadata associated with supplemental content. Metadata
associated with supplemental content describes triggers that are
associated with the supplemental content. FIG. 5 shows a table
correlating representative supplemental content and triggers.
[0041] The supplemental content can be received from entities or
users. For example, a restaurant may submit supplemental content
and related triggers to the system. The supplemental content
maintenance module 210 can store supplemental content in
association with triggers for quick identification of supplemental
content to add to a message. The supplemental content
identification module 215 identifies supplemental content to enter
in a message based on triggers identified by the message analysis
module 205. In some implementations, a trigger is associated with
variations of supplemental content, and the supplemental content
identification module identifies the relevant supplemental content
for a particular message. For example, a user may refer to a
restaurant that has different locations, and supplemental content
associated with a trigger for the restaurant (e.g., the
restaurant's name) may include address information for the various
locations. The supplemental content identification module 215 can
identify the relevant supplemental content for the message based,
for example, on a location of a device that is receiving or
displaying the message. Thus, the system may determine the
appropriate supplemental content based not only on the trigger
obtained from the message(s), but also on context data (e.g.
location data, applications active on the device, time of day),
sensor data (e.g. temperature, acceleration/velocity, heading), or
both. Identifying supplemental content can also be related to
probabilities within the database. For example, the described
technology may assign probability to triggers for supplemental
content: hot dogs (0.2), hungry (0.5), baseball (0.7), and tickets
(0.8). The supplemental content associated with these triggers may
be displaying baseball tickets for purchase. Thus, if users are
corresponding regarding hot dogs, baseball, and buying tickets, the
system will display baseball tickets and a coupon for hotdogs as
supplemental content because there is a high probability the
parties intend to go a baseball game and eat (the conversation
involves several triggers with significant probability of relating
to specific supplemental content). A technician can arbitrarily set
the probability or include an algorithm to estimate the probability
for including or not including supplemental content.
[0042] The message enhancement module 220 receives identified
supplemental information from the supplemental content
identification module 215 and enters the supplemental content in
the message analyzed by the message analysis module 205. The
message enhancement module 220 can embed supplemental content in
the message. It can also embed a link to the supplemental content
in the message. In some implementations, the message enhancement
module 220 accesses templates in the supplemental content storage
area 255 for formatting the supplemental content. The message
enhancement module can also modify the supplemental content for
entry into a message. The message enhancement module 220 outputs an
enhanced message, which includes the identified supplemental
content. The message enhancement module also displays supplemental
content in a received message if a user selects to view
supplemental content.
[0043] The enhancement analytics module 225 analyzes the usage of
supplemental content, including whether a user selects to add
identified supplemental content to a message. Likewise, the
enhancement analytics module 225 analyzes a user's engagement with
a received message that includes supplemental content, including,
for example, whether the user selects to view or otherwise engage
with the supplemental content included in the message. The
enhancement analytics module stores analytics data in analytics
data storage area 260. The enhancement analytics module 225
accesses analytics data and templates in analytics data storage
area and generates analytics reports, which the system outputs.
Suitable Processes
[0044] The system 200 enhances a message by associating
supplemental content with a portion of the message. The system 200
uses a variety of methods to first identify portions of a message
to enhance and then content with which to enhance those
portions.
[0045] FIG. 3 is a flow diagram of a process 300 performed by the
system 200. The process 300 is related to identifying an optimized
language model based on content of correspondence messages, which
can be incorporated into enhancing a message with supplemental
content for a user as in FIG. 7.
[0046] At a block 305, the system 200 maintains past correspondence
messages. As discussed above, correspondence messages include
text-based messages exchanged between two or more parties. The
parties can include a user of a computing device on which the
system is operating and/or other parties. The correspondence
messages may be received by the system continuously, sporadically
or periodically.
[0047] At a block 310 the system 200 receives an instruction to
optimize a language model for a language prediction application.
The instruction may be generated when the language prediction
application is launched, such as after a user selects to enter text
into a correspondence message or while a user is entering text. The
instruction may also be received after a device launches a virtual
keyboard. In some implementations, the system is configured to
continuously or periodically optimize a language model based on new
correspondence messages drafted by the user or by other
parties.
[0048] The instruction to identify an optimized language model may
include parameters or other information related to the instruction.
In some implementations, the system receives context information
related to text entry by a user. For example, the system may
receive information related to a party to whom the user is drafting
a message, such as the party's name or occupation, whether multiple
parties are addressed by the message, and so forth. Context
information also includes an application to receive text entry by a
user, and text already entered by the user.
[0049] At a block 315, the system 200 identifies an existing
language model. The system may identify a default language model
used by the language prediction application. In some
implementations, the system identifies a language model from among
multiple language models, or identifies parameters to apply to a
default language model. For example, the system may identify a
language model that has been modified based on information learned
about a user or based on a user's use of a device. The existing
language model may already have been optimized by the system 200.
For example, the system may identify an existing language model
that was already optimized for the user based on topics identified
in correspondence messages.
[0050] At a block 320, the system 200 filters the correspondence
messages. The system may filter messages according to various
criteria. In some implementations, messages are filtered based on
the parameters or other information related to the instruction
received at block 310. For example, the system may identify in
information related to a received instruction that a user is
drafting a message to one or more of his or her contacts, and the
system may filter messages to identify only those transmitted
between the user and the contact, or between the contact and
another party.
[0051] At a block 325, the system 200 identifies a topic in the
filtered correspondence messages. In some implementations, the
system identifies a topic in information related to the instruction
received at block 310. For example, the instruction may include
that a message being drafted is addressed to a customer service
representative for a particular product. The system may identify
the product as a topic. The system also identifies topics based on
identifying topics or words or phrases related to topics in
correspondence messages.
[0052] FIG. 4 shows representative correspondence messages 400
transmitted between a user and a party. The system may identify a
number of different topics in the messages. For example, the system
may identify a topic, "Alaska," based on a question and answer pair
405. The system may also identify a topic, "weather," based on
keyword 410 "warm" and phrase 415 "mid 60s to 70s." The system can
also identify a topic, "vacation," based on a first usage 420a and
a second usage 420b in successive messages.
[0053] Returning to FIG. 3, at a decision block 330, the system 200
determines whether a topic was identified in the correspondence
messages. If no topic was identified, the system proceeds to a
block 335 and outputs the existing language model. Alternatively,
the system may generate a notification that no optimized language
model has been generated (not shown). If a topic is identified, the
system proceeds to a decision block 340.
[0054] At decision block 340, the system 200 determines whether the
identified topic has a predetermined association with any words or
sequence of words of the existing language model. In some
implementations, the system maintains a list of topics with
predetermined associations, which it then compares to the
identified topics in the filtered messages.
[0055] FIG. 5 shows a representative table 500 correlating topics
with associated words, containing topics in a first row and
associated words in subsequent rows of each respective topic's
column. The table 500 includes topic "Basketball" with associated
words "Lakers," "Durant," and "SuperSonics." Similarly, topics
"Mountain," "Mexico," and "Hunger," have associated words.
[0056] If the identified topic does not have predetermined
associations, the process 300 proceeds to a block 335, and the
system 200 outputs the existing language model. In some
implementations, rather than identifying topics before determining
whether the topics have predetermined associations, the system 200
identifies topics only if they have predetermined associations. For
example, the system may compare a list of topics and related words
to words and phrases in correspondence messages. If at block 340
the system determines that the identified topic does have
predetermined associations, the process proceeds to block 345.
[0057] At block 345, the system 200 optimizes an existing language
model based on the identified topic and corresponding associations.
The system optimizes the existing language model by raising a
priority in the existing language model of a word or sequence of
words associated with the identified topic. For example, the system
may assign a greater probability to a word or phrases considered by
the language model. Referring to the Table 500 of FIG. 5, if topic
"Mexico" is identified, the system would assign higher priority to
words "Tequila," "Cabo San Lucas," and "Mazatlan" than the
probabilities assigned to these words in the existing language
model. In some implementations, the system identifies a
pre-existing language model to be used based on an identified
topic.
[0058] In some implementations, the system increases, by a
predetermined or variable amount or percentage, a probability of a
word or phrase associated with an identified topic. The system may
implement this change by weighting or otherwise modifying a
probability associated with a word according to the language model.
In some implementations, a probability or weight is associated with
each of the words or phrases associated with a topic, indicating a
strength of association or relatedness between the topic and the
associated word. The probability or weight may be used for
optimizing the language model. For example, associated word
"Lakers" may have an association weight of three while associated
word "SuperSonics" has an association weight of two. Thus, when the
language model is optimized, the probability associated with
"Lakers" will triple and the probability associated with
"SuperSonics" will double.
[0059] When the system identifies multiple active topics in a
conversation, it raises the priority for associated words of each
topic. Sometimes, a word's priority is increased by a relatively
greater amount as a result of it being associated with two or more
topics identified in a conversation. In some implementations, the
system applies a function to a language model, which causes the
probability associated with a word to change over time or as a
result of an event or a criteria being met. For example,
optimizations for a language model may expire after a certain time
period. Similarly, priority for a word may be reduced over time or
as further messages are transferred between parties and words
associated with an identified topic are not identified in new
correspondence messages. By doing this, the system may observe a
shift in conversation and re-optimize the language model
accordingly. At a block 350, the system 200 outputs the optimized
language model. In some implementations, the system passes the
optimized language model to devices associated with other parties.
Accordingly, language prediction applications operating on the
other devices can receive the benefits of a language model
optimized based on topics that the other parties are likely to
discuss.
[0060] The system 200 can anticipate a topic for a conversation
between two parties and adjust a language model accordingly. In
some implementations, the system anticipates a topic not identified
in past correspondence messages. As discussed above, the system can
anticipate a topic based on a received user selection. One such
topic may include customer service related to a particular product
or service. Other topics that may be identified based on a received
user selection include a region or geographic location of the user,
an industry or business associated with the user, a group or type
of group that a message is addressed to, or the like, and the
system can optimize a language model according to the region or
geographic location.
[0061] FIG. 6 shows a representative interface 600 for an instant
messenger application displaying correspondence messages between a
user and a customer service representative of an insurance company.
A cursor 605 indicates a location that where a user is entering
text. A virtual keyboard 610 displays keys and predicted text 615
that a user may select for entering at the cursor. The predicted
text 615 includes "accident report," "claim," and "statement." The
predicted text has been identified using a language model optimized
for customer service related to auto insurance. For example, a user
may select via a computing device to commence an instant messaging
session with a customer service representative for an auto
insurance company. The system may receive information related to
the request, including that the request is being sent to a
representative of an auto insurer. Based on this information, the
system identifies "auto insurance" and "customer service" as topics
for the conversation. The system then optimizes a language model
based on these topics, raising a priority for "accident report,"
"claim," and "statement" in a language model. Finally, when the
keyboard 610 using next word prediction predicts a next word to
display to the user based on the language model, the keyboard
identifies words related to "auto insurance" and "customer service"
topics.
[0062] FIG. 7 is a flow diagram of process 700 performed by the
system 200 for enhancing a message drafted by a user by associating
supplemental content with a portion of the message. The
supplemental content is displayed on a device of a user that the
message is sent to FIG. 8C shows a representative user interface of
a device that is displaying a received message that has been
enhanced. For example, words "Capitol Grille" are associated with a
menu, which is displayed after a user of the device has selected
the link associated with "Capitol Grille."
[0063] At a block 705, the system 200 maintains supplemental
content. Supplemental content includes text, images, video, and
audio, and is stored in association with at least one trigger. In
some implementations, supplemental content is unformatted data, and
the system formats and configures the data after it is identified
for inclusion in a message. For example, the system may modify the
unformatted data for appropriate display on a particular device
(e.g. a particular brand particular model or brand of smart phone,
tablet, laptop, wearable computer (or based on the size of a
display on such a device)). The system also maintains metadata
associated with the supplemental content. This metadata includes
triggers that are associated with the supplemental content, which
the system compares to a message for identifying relevant
supplemental content for the message.
[0064] At a block 710, the system 200 receives a message. Messages
include text-based messages, media-based messages, and so forth. In
some implementations, the system may receive an entire message,
such as one that a user has typed into an instant messaging
application, which the user has elected to send to another user.
But in other implementations, the system receives a message as it
is created, such as when a user types a letter or word in a
message, or when a user inserts an image in a message.
[0065] At a block 715, the system 200 searches for triggers in the
received message. Triggers include letters, symbols, numbers,
words, phrases, topics, locations, businesses information, contact
information, trademarks, emoji's, and the like, included in a
message, which are associated with supplemental information for
display to a user. In some implementations, the system searches for
triggers by comparing content in a message with stored triggers.
For example, the system may identify a trigger word appearing in a
list of trigger words if a user types the word in a message.
[0066] At a decision block 720, the system 200 determines whether
any triggers have been identified. If no trigger has been
identified, the process proceeds to a decision block 745, and the
system determines whether the search for triggers is complete. In
some implementations, if a user has not selected to send a message,
the search for triggers is not complete. The search for triggers
may end for other reasons (e.g., a certain amount of time has
elapsed or the system determines the device is low on power). This
block is described in more detail below.
[0067] If at decision block 720, the system determines that a
trigger has been identified, the process proceeds to a block 725,
and the system 200 identifies the supplemental content associated
with the trigger. Supplemental content is stored in association
with a trigger. FIG. 9 shows a representative table storing
triggers in association with supplemental content. If a word or
phrase from a trigger column is entered by a user, the system
identifies supplemental content associated with that word or
phrase. Supplemental content associated with "Capital Grille"
includes a PDF of a menu, maps and directions to Capital Grille,
Capital Grille's phone number, weather conditions at Capital
Grille, and the like. Supplemental content associated with "Space
Needle" includes times that reservations are available, hours of
operation, map and directions, contact information for the Space
Needle, and the like. Supplemental content associated with various
words and phrases pertaining to Mariners baseball includes
ticketing information (including links that a user may select to
buy tickets), weather at the Mariners' stadium, baseball season
opening and closing dates, and the like. In some implementations,
the system compares triggers associated with supplemental content
to text or other content entered by a user in a message, and if a
trigger is similar to text or other content entered by the user, or
if a trigger is otherwise associated with entered content, the
system identifies the supplemental content associated with the
related trigger for entry in the message. The system can use the
optimized language model, from block 345, to identify triggers. In
some embodiments, based on the language model and assigned
probabilities to different trigger words (e.g., "baseball" is 0.1,
"hungry" is 0.5, "baseball and food" together is a 0.7), the system
will identify supplemental content that should be included with
each message, and then display this supplemental content to the
user.
[0068] Also, in some implementations, the system 200 compares
triggers associated with context. For example, if a user writes a
message that states "let's go to the game," at block 725, the
system 200 uses the trigger ("game") with user GPS coordinates. If
the user's GPS coordinates indicate that the user is close to a
Mariners game, then system 200 displays an option at block 730 to
the user to buy tickets for the Mariner's game that evening.
Furthermore, the system uses other context information to display
an option to the user at block 730 including, but not limited to,
weather, season, and time. Thus, if the user's GPS coordinates
indicate the user is in Seattle, it is spring time, and it is in
the evening, system 200 displays an option for the user to enter to
buy tickets to a Mariner's game because the system 200 determines
the trigger for enhanced content based on the identified words and
the context input. Specifically, system 200 determines that
baseball is played in the spring time, and there is a game this
evening based on information stored in the relevant databases.
[0069] In some embodiments, system 200 saves a user's response to
display supplemental content information in a database. For
example, the system 200 saves information that a user selected to
enter in supplemental content to buy Mariner's tickets. The system
can save this information in a database (e.g., correspondence
message data storage 275). Then, if the user begins a conversation
with the same person with similar language, the system 200 can
suggest another Mariner's game ticket.
[0070] Additionally, in some embodiments, system 200 identifies
supplemental content to be displayed based on a sensor in the
user's mobile device 102 or 105. For example, a user may send a
message to his or her parent stating "I'm sick," "my back hurts,"
or "I feel like I have a fever." The mobile device 102 contains a
sensor to notice the user's blood pressure is high or the user's
temperature is high. Also, in a trigger table similar to FIG. 9
(not shown for this example), the topic for health includes a
supplemental content for scheduling an doctor's appointment. At
block 725, the system 200 determines that based on the language
used in the correspondence and the user's temperature from the
mobile device 105, it will display the location of a hospital for a
user to go to or the phone number for a doctor. Also, the
supplemental content to recommend an over-the-counter medicine and
location to purchase the medicine. Either the user writing the
message or the user receiving the message can use the supplemental
content use (e.g., a parent receives a text message from a child
that the child is not feeling well, the parent can locate a
hospital or pick up medicine at a local pharmacy described in the
supplemental content).
[0071] At a block 730, the system 200 displays an option to the
user to enter the supplemental content associated with the trigger.
The option may include instructions for entering supplemental
content. FIG. 8A shows a representative interface 800 generated by
a device for a messaging application, displaying correspondence
messages between a user of the device and a friend. The user has
entered "Mariners game," which the system has identified as a
trigger 905, and underlined to indicate that it is a trigger. The
system generates a text box 810 which includes an instruction to
the user to select the text box in order to enter supplemental
information. In some implementations, the system automatically
enters supplemental content without receiving instructions from a
user to do so.
[0072] At a decision block 735, the system 200 determines whether
an option to enter supplemental content has been selected. If the
user has not selected to enter supplemental content, or selects to
not enter supplemental content, the process proceeds to block 745.
If the user does select to enter supplemental content in the
message, the process proceeds to a block 740.
[0073] At block 740, the system 200 associates supplemental content
with the identified trigger. Associating supplemental content with
the trigger includes formatting the supplemental content. In some
implementations, associating supplemental content includes
filtering or otherwise modifying identified supplemental content.
The system can tailor identified supplemental content based on any
of a number of factors. Supplemental content can be modified based
on a user, a physical setting for the mobile device, an intended
recipient of a message, content in a message, user input, and the
like. For example, referring to the table of FIG. 9, if a user
entered in a message the phrase "Let's go to the Space Needle for
dinner," the system may truncate the reservation information
associated with "Space Needle," and offer the user the option to
enter only reservation information related to dinner. The system
can associate supplemental content with a trigger by adding the
supplemental content directly to the message. For example, the
supplemental content may be added to a window within a messaging
application. The system can also associate supplemental content
with a trigger by adding a link (e.g., an html link, a deep link,
an link to an application a mobile device, a menu, and the like) to
the supplemental content.
[0074] At decision block 745, the system 200 determines whether the
search for triggers is complete. In some implementations, the
system determines that a search for triggers is complete based on
the user selecting to send a message. In some implementations, the
system determines that a search is not complete based on the user
continuing to enter content in the message. In some
implementations, the system searches for triggers after a word is
typed by a user, determined, for example, when the user selects to
enter a space or a predetermined punctuation mark (e.g., a period).
In some implementations, the system searches for triggers after an
amount of time has passed (e.g., 2 minutes after a message has been
entered). If the system determines that the search for triggers is
not complete, the process returns to block 710, and the system
receives a message. As mentioned above, the message may include new
content entered by the user in a message already being processed by
the system. If the system determines that the search for triggers
is complete, the process proceeds to a block 750, and the system
outputs a message that includes supplemental content.
[0075] The message outputted by the system can include supplemental
content displayed in a number of ways. In some implementations,
supplemental content is embedded in the message. For example,
supplemental content may be added next to text of a message. Also,
for example, supplemental content may be underlined, bolded, or
appear differently compared to other text in the message.
Supplemental content may also be automatically displayed by a
messaging application. In some implementations, a trigger word in
the message acts as a link, and when a user hovers over or selects
the trigger word, supplemental content is displayed. For example,
referring again to FIG. 8A, user John may select to add
supplemental information to the message, linking trigger 905
"Mariners game" with supplemental information. FIG. 8B shows a
representative interface 802 generated by a device for an instant
messaging application, displaying correspondence messages between a
user of the device (i.e., Bill) and the user of the device. The
interface 802 shows the trigger 805 corresponding to "Mariners
game," and supplemental content 815 displaying the upcoming
schedule for the Seattle Mariners. The system displays the
supplemental content 815 after receiving a selection of trigger
805, displaying the supplemental content in a text box over a
virtual keyboard and the messaging interface.
[0076] While it is not shown in FIG. 8B, the system 200 may modify
the display of the supplemental content based on context input. For
example, if the user's GPS coordinates indicate the user is not in
Seattle at the present moment, and there is a game that evening,
the system may display supplemental content for the game, but for
the following day. Also, in system 200, the trigger 805
corresponding to a Mariner's game includes supplemental information
for weather, the system 200 may display a small icon indicating it
is a raining or it may display options to buy tickets on a
different day.
[0077] The system 200 also provides supplemental content analytics.
The system can measure the sending, viewing, and engagement of
supplemental content. In some implementations, the system performs
sentiment analysis related to the usage of supplemental content and
provides feedback to a creator of the supplemental content related
to its usage.
[0078] FIG. 8C shows a representative interface 900 on a user's
mobile device. The user's device displays an instant messaging
application with a correspondence message chain between a two
users. An entity 902 (e.g., a business like Capital Grille)
registers their name and provides information (e.g., locations,
contact information, website, menu, coupons, and the like) in a
advertising content database 250. Then, one party 910 enters text
(e.g., "what's the plan after work?") and sends it to another party
915. Another party 915 replies (e.g., "let's grab a beer at the
Capital Grille") to the other party. The interface 900 displays
supplemental content 920 after receiving the trigger 930 ("Capital
Grille"). The user can view or select the supplemental content by
hovering over or selecting the underlined trigger on the interface
900. The supplemental content 920 may be a deep link or a push menu
button (in FIG. 8C the hours of operation, an option to call the
business, and a link to the business website is included). When the
other party 915 replies with the trigger words "I'm on way my way,"
system 200 will identify supplemental content associated with this
trigger such as the location of the user similar to 935. The system
may display the supplemental content to the user as an icon 945,
which when a user hovers over displays the location of the user
based on GPS coordinates of the user.
[0079] While this example shows an entity registering their
information before a conversation takes places, an entity could
register their information before, during, or after a conversation.
For example, if an entity registers their information after a
conversation, the parties can now review the conversation with an
enhanced message including supplemental content with a portion of
the message. The advertising content database 250 may be updated
regularly to reflect changes, and an advertising business may bid
to have certain trigger words associated with supplemental content
related to their business.
[0080] While not shown in FIG. 8C, a representative interface 900
can include private data as supplemental content. For example, if
User A asks User B for User C's contact information in a text
messaging platform (e.g., User A writes "what is User C's phone
number?"), system 200 will recognize "User C's phone number," as a
trigger for C's contact information. Then, when User B replies to
User A, system 200 will suggest to User B to include supplemental
content (e.g., an embedded link or attachment) with User C's
contact information. Furthermore, system 200 now understands that
User A intends to contact User C, and system 200 can incorporate
language and topics from User A's conversation with User B in a
language model. For example, if User A and User B were coordinating
a trip to a winery in Woodinville, system 200 would include words
like "Woodinville," and "winery," in the anticipated language model
for a conversation between User A and User C. System 200 would also
use the anticipated language model to incorporate supplemental
content into a conversation between User A and User C (e.g., hours
of operation for a winery in Woodinville or location of the
winery). Finally, system 200 can incorporate privacy settings into
the supplemental content. For example, User's C contact information
may only be available for 5 min after User A receives the contact
information. The timing of when system 200 incorporates a specific
language model or privacy setting may vary.
CONCLUSION
[0081] Those skilled in the art will appreciate that the actual
implementation of a data storage area may take a variety of forms,
and the phrase "data storage" is used herein in the generic sense
to refer to any storage device that allows data to be stored in a
structured and accessible fashion using such applications or
constructs as databases, tables, linked lists, arrays, and so
on.
[0082] The words "herein," "above," "below," and words of similar
import, when used in this application, refer to this application as
a whole and not to any particular portions of this application.
Where the context permits, words in the above Detailed Description
using the singular or plural number may also include the plural or
singular number respectively. The word "or," in reference to a list
of two or more items, covers all of the following interpretations
of the word: any of the items in the list, all of the items in the
list, and any combination of the items in the list.
[0083] The above Detailed Description of examples of the disclosure
is not intended to be exhaustive or to limit the disclosure to the
precise form disclosed above. While specific examples for the
disclosure are described above for illustrative purposes, various
equivalent modifications are possible within the scope of the
disclosure, as those skilled in the relevant art will recognize.
For example, while processes or blocks are presented in a given
order, alternative implementations may perform routines having
steps, or employ systems having blocks, in a different order, and
some processes or blocks may be deleted, moved, added, subdivided,
combined, and/or modified to provide alternative or sub
combinations. Each of these processes or blocks may be implemented
in a variety of different ways. Also, while processes or blocks are
at times shown as being performed in series, these processes or
blocks may instead be performed or implemented in parallel, or may
be performed at different times. Further, any specific numbers
noted herein are only examples: alternative implementations may
employ differing values or ranges.
[0084] The teachings of the disclosure provided herein can be
applied to other systems, not necessarily the system described
above. The elements and acts of the various examples described
above can be combined to provide further implementations of the
disclosure. Some alternative implementations of the disclosure may
include not only additional elements to those implementations noted
above, but also may include fewer elements.
[0085] These and other changes can be made to the disclosure in
light of the above Detailed Description. While the above
description describes certain examples of the disclosure, and
describes the best mode contemplated, no matter how detailed the
above appears in text, the disclosure can be practiced in many
ways. Details of the system may vary considerably in its specific
implementation, while still being encompassed by the disclosure
disclosed herein. As noted above, particular terminology used when
describing certain features or aspects of the disclosure should not
be taken to imply that the terminology is being redefined herein to
be restricted to any specific characteristics, features, or aspects
of the disclosure with which that terminology is associated. In
general, the terms used in the following claims should not be
construed to limit the disclosure to the specific examples
disclosed in the specification, unless the above Detailed
Description section explicitly defines such terms. Accordingly, the
actual scope of the disclosure encompasses not only the disclosed
examples, but also all equivalent ways of practicing or
implementing the disclosure under the claims.
[0086] To reduce the number of claims, certain aspects of the
disclosure are presented below in certain claim forms, but the
applicant contemplates the various aspects of the disclosure in any
number of claim forms. For example, while only one aspect of the
disclosure is recited as a computer-readable medium claim, other
aspects may likewise be embodied as a computer-readable medium
claim, or in other forms, such as being embodied in a
means-plus-function claim. (Any claims intended to be treated under
35 U.S.C. .sctn.112, 6 will begin with the words "means for", but
use of the term "for" in any other context is not intended to
invoke treatment under 35 U.S.C. .sctn.112, 6.) Accordingly, the
applicant reserves the right to pursue additional claims after
filing this application to pursue such additional claim forms, in
either this application or in a continuing application.
* * * * *