Concept identification and capture

Disclosed methods and systems are directed to concept identification and capture. The methods and systems may include receiving, by a device, a first natural language input comprising one or more terms, and analyzing the first natural language input via a natural language processing engine to identify one or more named entities associated with the one or more terms, wherein each of the one or more named entities is associated with at least one category of a plurality of categories. The methods and systems may also include detecting a text field configured to receive text, the text field being associated with one of the plurality of categories, and inputting into the text field one of the one or more identified named entities based on the text field being associated with a same category as the one of the one or more named entities.

FIELD

This application generally relates to computers and computer software. More specifically, aspects described herein relate to natural language processing software applications, and to a language parsing mechanism for concept identification and capture.

BACKGROUND

Natural Language Processing (NLP) and Natural Language Understanding (NLU) involve using computer processing to extract meaningful information from natural language inputs (e.g., spoken or text-based). More applications are using NLP and NLU to interact with users. Users face the problem of having to type text over and over again in multiple applications, which wastes time and effort.

SUMMARY

The following presents a simplified summary in order to provide a basic understanding of some aspects of the disclosure. This summary is not an extensive overview of the disclosure. It is intended neither to identify key or critical elements of the disclosure nor to delineate the scope of the disclosure. The following summary merely presents some concepts of the disclosure in a simplified form as a prelude to the description below.

In view of an identified need for applications to provide users with the ability to input text in a less cumbersome manner, one or more aspects of the disclosure provide for a method that may include receiving, by a device, a first natural language input comprising one or more terms; and analyzing the first natural language input via a natural language processing engine to identify one or more named entities associated with the one or more terms, wherein each of the one or more named entities is associated with at least one category of a plurality of categories. The method may also include detecting a text field configured to receive text, the text field being associated with one of the plurality of categories; and inputting into the text field one of the one or more identified named entities based on the text field being associated with a same category as the one of the one or more named entities.

One or more aspects of the disclosure provide for a system that includes at least one processor; and at least one memory storing instructions that, when executed by the at least one processor, cause the system to perform one or more steps. The steps the system may perform may include receiving, by a device, a first natural language input comprising one or more terms; and analyzing the first natural language input via a natural language processing engine to identify one or more named entities associated with the one or more terms, wherein each of the one or more named entities is associated with at least one category of a plurality of categories. The steps may also include detecting a text field configured to receive text, the text field being associated with one of the plurality of categories; and inputting into the text field one of the one or more identified named entities based on the text field being associated with a same category as the one of the one or more named entities.

One or more aspects of the disclosure provide for one or more non-transitory computer-readable storage media having instructions stored thereon, that when executed by one or more processors, may cause the one or more processors to perform steps. The steps that the one or more processors perform may include receiving, by a device, a first natural language input comprising one or more terms; and analyzing the first natural language input via a natural language processing engine to identify one or more named entities associated with the one or more terms, wherein each of the one or more named entities is associated with at least one category of a plurality of categories. The steps may also include detecting a text field configured to receive text, the text field being associated with one of the plurality of categories; and inputting into the text field one of the one or more identified named entities based on the text field being associated with a same category as the one of the one or more named entities.

DETAILED DESCRIPTION

FIG. 1illustrates one example of a network architecture and data processing device that may be used to implement one or more illustrative aspects described herein. Various network nodes103,105,107, and109may be interconnected via a wide area network (WAN)101, such as the Internet. Other networks may also or alternatively be used, including private intranets, corporate networks, LANs, wireless networks, personal networks (PAN), and the like. Network101is for illustration purposes and may be replaced with fewer or additional computer networks. A local area network (LAN) may have one or more of any known LAN topology and may use one or more of a variety of different protocols, such as Ethernet. Devices103,105,107,109and other devices (not shown) may be connected to one or more of the networks via twisted pair wires, coaxial cable, fiber optics, radio waves or other communication media.

Devices103,105,107,109may be automatic conversational systems having multiple computer-implemented dialogue components for conducting an automated dialogue process with a user. Devices103,105,107,109may allow for a human-machine dialogue arrangement. According to some aspects, Devices103,105,107,109may include multiple computer-implemented dialogue components, which may be configured to intercommunicate and use context to narrow down understanding, recognition, and/or reasoning errors. In some embodiments, Devices103,105,107,109may detect and/or resolve anaphora based on linguistic cues, dialogue context, and/or general knowledge.

Each component103,105,107,109may be any type of known computer, server, or data processing device. Data server103, e.g., may include a processor111controlling overall operation of the rate server103. Data server103may further include RAM113, ROM115, network interface117, input/output interfaces119(e.g., keyboard, mouse, display, printer, etc.), and memory121. I/O119may include a variety of interface units and drives for reading, writing, displaying, and/or printing data or files. Memory121may further store operating system software123for controlling overall operation of the data processing device103, control logic125for instructing data server103to perform aspects described herein, and other application software127providing secondary, support, and/or other functionality which may or might not be used in conjunction with other aspects described herein. The control logic may also be referred to herein as the data server software125. Functionality of the data server software may be operations or decisions made automatically based on rules coded into the control logic, made manually by a user providing input into the system, and/or a combination of automatic processing based on user input (e.g., queries, data updates, etc.).

One or more aspects described herein are directed toward natural language understanding. According to disclosed aspects, a text sample may be a string of one or more words and/or terms. A substring may be one or more consecutive words of a string in which the order of the words is preserved. One or more words of a text sample may be hyponyms (relatively low-level concepts) that correspond to or are otherwise associated with one or more hypernyms (relatively high-level concepts). An ontology may define a semantic relationship between hyponyms and hypernyms. A hyponym may be a single word of a text sample or multiple consecutive words of a text sample. It will be appreciated that a hypernym may, in some instances, be a hyponym of another hypernym. For example, “Chicago” may be a hyponym of the hypernym “CITY,” which may in turn be a hyponym of the hypernym “LOCATION.” Thus, a hypernym may be a category or label attached to and/or otherwise associated with a hyponym. In another example of an ontology, a concert may be an event that may have a location and a date associated with it (e.g., a Jennifer Lopez concert at Madison Square Garden on July 26that 8:00 PM). Accordingly, the phrase “let's meet at the Jennifer Lopez concert” may mean to meet at Madison Square Garden on July 26that 8:00 PM. Thus, the concert (and its associated information like time, location, and date) may be a hypernym (or hypernyms) for the hyponyms of “DATE,” “LOCATION,” AND “TIME.” Additional examples will be appreciated with the benefit of this disclosure. A simple hypernym may be a single hypernym, and a complex hypernym may be a concatenation of at least two simple hypernyms. A complex hypernym may include a delimiter (e.g., “&”) that separates the concatenated simple hypernyms. A complex hypernym may thus also be referred to as a concatenated hypernym.

One or more aspects described herein are directed toward internal concept mapping. Internal concept mapping may be a mapping of key-value pairs or concepts that maps hyponyms to hypernyms. For example, internal concept mapping may map the names of cities (hyponyms) to the concept “CITY” (a hypernym). In this example, the name of the city may correspond to the key of the mapping, and the concept of “CITY” may correspond to the value of the mapping, (e.g., “New York”→“CITY”). Internal concept mapping may include functionality to search for a key-value pair or concept, add a new key-value pair or concept, and to perform other types of actions associated with mappings that will be appreciated to those skilled in the art.

According to some aspects, some concepts may be both hypernyms and hyponyms. For example, a “JFK New York” concept may be a hyponym of a “LOCATION” concept, which may be in turn a hyponym of an “AIRPORT CITY” concept.

Aspects of the present disclosure may utilize linguistic resources, such as a database that may define semantic relationships between concepts. For example, an external linguistic resource may thus be a lexical database such as, e.g., WordNet. Other examples of external linguistic resources include dictionaries capable of providing lexicographic data such as, e.g., Wikitionary. The grammar construction system may submit requests to the external linguistic resource, e.g., HyperText Transfer Protocol (HTTP) requests, and receive results in a response, e.g., an HTTP response.

Aspects of the present disclose may include a natural language processing engine computing device that implements a text-based parsing mechanism (e.g., a shallow parsing mechanism) of internal concept mapping that may analyze text strings comprising words and/or terms (e.g., natural language input) to determine or recognize concepts or key named entities, such as artists, dates, times, locations, products, etc. The parsing mechanism may be a sequence labeler, which may use hypernyms and/or hyponyms, as discussed herein. The parsing mechanism may be implemented via an application on, for example, devices103,105,107,109. The parsing mechanism may be implemented via a plugin. The parsing mechanism may be implemented in an operating system, such that the parsing mechanism may be implemented across many applications running on the operating system. Examples of applications in which disclosed aspects may be implemented may include text-messaging based applications (e.g., SMS, TMS), messing applications (e.g., instant messaging services such as WhatsApp, etc.), email applications, web browsers, word processing applications, and/or any text-based application.

According to some aspects, the parsing mechanism may be called/activated whenever text is input into a computing device, such as via a soft keyboard, via speech-based inputs, and the like. The parsing mechanism may also be activated in response to a user input, such as when a user presses (e.g., long-presses or short presses) or clicks (e.g., left or right clicks) on text. For example, after a user long-presses on text displayed on a mobile device, various options may be displayed to the user, such as copy, select all, cut, etc. Thus, according to some aspects, an “analyze concepts” option may be displayed to a user, such that a user can select the “analyze concepts” option to initiate the parsing mechanism. In one example, a user may select/highlight text to be analyzed by the parsing mechanism before selecting the “analyze concepts” option. In another example, a user might not need to select/highlight text. In such cases, the user may, for example, long-press the text (without highlighting any text), and the “analyze concepts” option may be displayed. After the user selects the “analyze concepts” option, any displayed text may be analyzed. For example, in a text message conversation, a user may long press in the proximity of a received message and subsequently select an “analyze concepts” option. In such cases, the received message may be analyzed. In other cases, all of the displayed text (e.g., the text that comprises the received message along with any other displayed text) may be analyzed. According to some aspects, the parsing mechanism may operate automatically and/or continuously, such that any displayed or received text may be analyzed by a device without receiving a user input. In such cases, the user may select an option to “automatically” or “continuously” analyze text on the device or within an application. For example, an SMS message may be intercepted and analyzed for concepts automatically. Details of the disclosed parsing mechanism are described below in more detail.

FIG. 2illustrates a display201showing a text message conversation200(e.g., running via a text messaging application) between a user and the user's friend in accordance with disclosed aspects. In text message conversation200, a user might type a text message202stating “Did you see Jennifer Lopez's video?” The user may receive a text message204from the user's friend that might state “yeah awesome!!! I heard she is coming to the Gardens on the 26thand 27th. The song I Love You is beautiful, but I really like JLo's on the floor with pitbull.”

According to some aspects, the user may wish to perform one or more actions with the information the user has just received from the user's friend. For example, the user may wish to search (e.g., in a music application, on the internet via a browser application, etc.) for the songs “I Love You” or “On the Floor,” or for the artists “Jennifer Lopez” or “Pitbull.” The user may also wish to search for concert/event tickets that may be associated with these songs or artists. For example, the user may wish to search for these artists using a browser application via, for example, a ticket website. The user may wish further narrow down any search results using, for example, the dates of 26thand the 27thor the venue of the Gardens, all of which were included in the text message204. In one or more of these situations, the user may need to type the artist's name, a song's title, a date, or a venue into a search field. The user may need to continuously switch between the text message application and the ticket website (e.g., running via a browser application or ticket broker application) to make sure the information entered into the ticket website matches (e.g., to determine the correct spelling) the information in the text message. However, according to aspects of the present disclosure, a user may use a parsing mechanism to analyze the text to identify concepts/named entities in the text of the text conversation200that may be used in the same application (e.g., the text message application) or another application (e.g., the web browser application). According to some aspects, disclosed features may be used with applications other than text messaging applications, such as email applications, web browsers, word processing applications, and/or any text-based application.

FIG. 3illustrates the display201showing the text message conversation200between a user and the user's friend in accordance with disclosed aspects. As shown inFIG. 3, display201may include an operations box300, which may include one or more operation options for selection, such as select all302, copy304, cut306, and analyze concepts308. According to some aspects, operations box300may be displayed on a device (e.g., devices103,105,107,109) in response to and/or after receiving a user action. Such user action may include, for example, a long or short press, right click, tapping a display, tapping a button (e.g., on a soft keyboard or other input device), or other input. According to some aspects, operations box300may be automatically displayed on the device (e.g., without user action).

According to some aspects, a user may select/highlight text to be analyzed by a natural language processing engine computing device implementing the parsing mechanism. For example, the user may highlight “I heard she is coming to the Gardens on the 26th” from text message204. After highlighting the text (e.g., immediately after), operations box300may be displayed. The user may then select the analyze concepts operation308, which may then initiate the disclosed parsing mechanism, and the selected text may then be analyzed to identify concepts in the selected text according to disclosed features herein (to be discussed in more detail below).

In some situations, the highlighted text may be automatically analyzed for concepts by the parsing mechanism. For example, the user may need to only select/highlight text (e.g., with no additional input) for the parsing mechanism to parse and identify concepts in the selected/highlighted text.

According to some aspects, text other than the analyzed (e.g., highlighted) text may be used by the parsing mechanism in the process of identifying named entities/concepts from the highlighted text. For example, information from text message202, such as “Jennifer Lopez” may be used by the parsing mechanism to identify the “she” in the highlighted text of “I heard she is coming to the Gardens on the 26th” from text message204. This may be an example of anaphora resolution. According to some embodiments, disclosed aspects may detect and/or resolve anaphora based on linguistic cues, dialogue context, and/or general knowledge.

FIG. 4illustrates examples of graphs that illustrate multiple semantic relationships400a-dbetween relatively low-level concepts404a-q, and relatively high-level concepts402a-d. Accordingly, the concepts404a-qmay be hyponyms of the concepts402a-d. As shown, the concepts404a-emay be hyponyms of the concept402a, concepts404f-gmay be hyponyms of the concept402b, concepts404h-kmay be hyponyms of the concept402c, and concepts404l-qmay be hyponyms of the concept402d. The disclosed parsing mechanism may analyze/parse the text (e.g., any text from text message conversation200) to determine the semantic relationships400a-d. For example, a user may long press in proximity to text message204, and the parsing mechanism may analyze the text proximate to the location of the press to determine the relationships402a-d. According to some aspects, high-level concepts, such as concepts402a-dmay be categories or labels for low-level concepts such as concepts404a-q. These categories may be used to group similar concepts and/or concepts having similar characters and/or associations. For example, the concepts404a-emay each identify and/or be associated with one or more artists. According to some aspects, a concept may comprise one or more other identified concepts, such as concept404d. For example, concept404dmay be identified/generated based on analyzing the words in the text message and/or it may be generated based on a combination of concepts404band404c.

According to some aspects, an identified concept may comprise a surface form/format and/or a canonical form/format. For example, the parsing mechanism may perform canonicalization for some concepts such as concepts associated with, for example, the categories of “date” or “time.” It is noted that the parsing mechanism may perform canonicalization for concepts being associated with other categories. A concept in canonical form may include text that might not be present or displayed in the analyzed text, and may include information and/or additional text that may be inferred, gathered, and/or determined based on the associated context, grammar, historical data, metadata, and/or other information. For example, the text message204states “ . . . the 26th. . . ” Examples of concepts in canonical form for the named entity of “26th” may include the concept404m(“July 26th”) or the concept404n(“Jul. 26, 2014”). Thus, in this example, the parsing mechanism may use other information, such as the current or subsequent month and/or year, in determining the concepts404mand404n. An example of a concept in surface form for the named entity of “26th” may be the concept4041(“26th”). The parsing mechanism may perform canonicalization for concepts that may be in an abbreviated form, acronym form, slang form, and/or otherwise represent other words and terms. For example, the text message204states “ . . . I really like JLo's . . . ” Examples of concepts in canonical form for the named entity of “JLo” may include the concept404b(“Jennifer Lopez”). According to some aspects, canonicalization may be grammar based and/or statistical based.

FIG. 5illustrates an example diagram of a display501displaying a browser application500that may be implemented on a device such as devices103,105,107, and/or109in accordance with one or more disclosed aspects. The browser500may include a search/URL field502, which may able to receive text and search the internet or retrieve/go to a website based on the received text. Browser500may include a webpage504, which may include a field506, which may be able to receive text that may be used by the browser500to conduct a search (e.g., a concert ticket search). Browser500may also include a find box/field508, which may be able to receive text, and conduct a find operation based on the received text. Display501may include an input portion516, which may include a soft keyboard514and a suggestion box510. Input portion516may include other types of input devices/components. Soft keyboard514may be an on-screen displayed keyboard used to input characters into a device and/or application (e.g., application500). Suggestion box510may include one or more suggestions512a-e, and may be input into an application (e.g., application500).

According to some aspects, suggestions512a-emay comprise one or more concepts, such as one or more of the concepts404a-qidentified from the text message conversation200. For example, after a user has initiated/activated the disclosed parsing mechanism to identify concepts from the text message conversation200, the identified concepts may be stored in a cache, clipboard, and/or via cloud storage. The cache may be located on one or more devices (e.g., located locally and/or remotely) and/or be associated with an application, input portion516, or soft keyboard514. For example, whenever the soft keyboard514is displayed (e.g., such as in response to a text cursor or focus in a text box or field capable of receiving text), the cached identified concepts may be retrieved from the cache and displayed as, e.g., one or more of the suggestions512a-ein the suggestion box510. The cache may be configurable and/or aged. According to some aspects, more than one device may access a concept cache (or other storage device/component). For example, the cache may be located at a centralized and/or remote location, such as on a server or other computing device which may be located and/or controlled by an entity, such as a business or enterprise entity. According to some aspects, more than one devices may access the cache. For example, a user's mobile device and the user's friend's mobile device may each generate respective concepts, store/transmit their respective concepts to a common/global cache, and access/retrieve concepts from the common cache. In another example, a plurality of the user's devices may access a single cache. For example, the user's cell phone and computer may each generate respective concepts, store/transmit their respective concepts to a common cache, and access/retrieve concepts from the common cache. According to some aspects, a concept may be identified in the suggestion box with a small icon and/or an abbreviated version of the concept. For example, the concept “Jennifer Lopez” may be identified as the suggestion “lopez” in suggestion box510. According to some aspects, suggestions512a-emay also include other suggestions, such as spelling suggestions, suggestions based on user-specific dictionaries and/or user-specific N-Gram biases, and the like.

FIG. 6illustrates an example diagram of a display601displaying an e-mail application600that may be implemented on a device such as devices103,105,107, and/or109in accordance with one or more disclosed aspects. The e-mail application600may include a “To:” field602, a “Subject” field604, and a field606used to type the body of the email. The display601may include an input portion616, which may include a soft keyboard614and a suggestion box610. Input portion616may include other types of input devices/components. Soft keyboard614may be an on-screen displayed keyboard used to input characters into a device and/or application (e.g., application600). Suggestion box610may include one or more suggestions612a-e, which may be similar to suggestions512a-e, may be derived from one or more concepts, such as concepts404a-q, and may be input into an application (e.g., application600).

FIG. 7illustrates an example diagram of a display701displaying a text message application700that may be implemented on a device such as devices103,105,107, and/or109in accordance with one or more disclosed aspects. The text message application700may include “From:” or “Sender:” fields702and706(e.g., which may identify text or language a user has sent in a text message), and a “To:” or “Recipient:” field704(e.g., which may identify text or language a recipient or someone other than the user has sent in a text message). Display701may include an input portion716, which may include a soft keyboard714and a suggestion box710. Input portion716may include other types of input devices/components. Soft keyboard714may be an on-screen displayed keyboard used to input characters into a device and/or application (e.g., application700). Suggestion box710may include one or more suggestions712a-e, which may be similar to suggestions512a-e, may be derived from one or more concepts, such as concepts404a-q, and may be input into an application (e.g., application700).

FIG. 8illustrates an example diagram of a display801displaying a media player application800that may be implemented on a device such as devices103,105,107, and/or109in accordance with disclosed aspects. Application800may include a search field802, which may be used by a user to search for an artist and/or song in a library of artists or songs and/or on/via the internet. Application800may include a results section that may include the results of a search. Such results may include an artist's name, a song title name, and the like. Display801may also include an input portion816, which may be similar to input portions516,616, and716. Input portion816may include a soft keyboard814and a suggestion box810. Input portion816may include other types of input devices/components. Suggestion box810may include one or more suggestions812a-812e. Each suggestion812a-812emay comprise one or more concepts, such as one or more of the concepts404a-qidentified from the text message conversation200. As shown, suggestion812amay correspond to the concept “Jennifer Lopez,” suggestion812bmay correspond to the concept “Pitbull,” suggestion812cmay correspond to the concept “Jennifer Lopez/Pitbull,” suggestion812dmay correspond to the concept “I Love You,” and suggestion812emay correspond to the concept “On the Floor.” Concepts corresponding to suggestions812a-emay be stored in a cache that may be located on the device and/or associated with the media player application800. For example, the device may include a cache that may be used to store concepts for the media player application800, and after the media player application800is opened, the corresponding cache may be accessed for retrieval of one or more concepts stored in that cache. According to some aspects, the device may include a cache (e.g., a general or global cache) that may store one or more concepts that may be used by more than one application.

According to some embodiments, the suggestion box810may be displayed in response to detecting a text field, such as field802. For example, after a user has analyzed concepts (or concepts were automatically analyzed, such as without user action) in text message conversation200using the parsing mechanism, the user may open a different application, such as media player800. The user may then move a cursor or focus to search box802(e.g., by touch, mouse, etc.), such as shown inFIG. 8by the darkened perimeter of the search box802, so the user can search for a song or artist. After the user has moved the focus to search box802, the suggestion box810may be automatically displayed. According to some aspects, the suggestion box810may be displayed in response to a user action, such as a long-press, short-press, right click, and/or a subsequent selection of an option to display suggestion box810.

According to some embodiments, concepts may be ranked based on the type of application from which the concepts were retrieved (e.g., text message conversation200) and/or based on the type of application to which the concepts are being used or input (e.g., media player800). According to some aspects, this ranking may be based on a correlation between the concepts and the type of application. For example, because the media player800may be used to play media (e.g., songs), then media related concepts (e.g., artists, songs, etc.) may be ranked higher than non-media related concepts. The higher ranked media related concept(s) may then be shown as suggestions in suggestion box810when used in application800. According to some embodiments, the ranking may be based on an entity that sent (or otherwise associated with) received or analyzed text. For example, if a co-worker (e.g., identified in the device or address book as a co-worker, etc.) sent a message, then concepts identified in or associated with that message may be ranked according to work related topics. If a friend (e.g., someone the user has many phone calls from and/or text messages with, etc.) sent a message, then concepts identified in that message may be ranked according to, for example, leisure related topics (e.g., non-work related topics). According to some embodiments, information derived from past communications and/or conversations may be used to rank concepts. According to some embodiments, user information may be used to rank concepts, such as a location of a user, previous locations of a user, websites the user may have visited, user demographic information, games on a user's device, and the like. According to some embodiments, concepts may be ranked based on their popularity and/or usage. For example, concepts generated from a plurality of users and/or devices may indicate that some concepts may be more commonly generated, selected, and/or inserted than other concepts. Accordingly, the more commonly generated concepts may be ranked higher than less commonly generated, selected, and/or inserted concepts. In a similar example, the popularity may be based on the popularity of concepts of an individual user. For example, the user may more commonly generate, select, and/or insert some concepts more than other concepts.

According to some embodiments, concepts may be ranked based on text that may be displayed and/or input into an application using, for example, natural language understanding and/or grammar. For example, in text message204, the user's friend may state “I heard she is coming to the Gardens . . . ” The user may analyze this text with the parsing mechanism. The user may then decide to use identified concepts to type a response. For example, the user may type “I would like to go see” and, based on the current conversation and analyzed concepts, the concept of “Jennifer Lopez” may be a highest ranked or a high ranked concept/suggestion. Thus, the user may use this suggestion to insert “Jennifer Lopez” after his initial input. Accordingly, the user may input the complete phrase “I would like to go see Jennifer Lopez.” According to some aspects, a suggestion (e.g., a high or highest ranked suggestion) may automatically be input upon detection of input text. For example, the concept “Jennifer Lopez” might be automatically inserted/input after the user types/inputs “I would like to go see” in the text message application.

After the suggestion box810is displayed, the user may then select one or more of the suggestions812a-edisplayed in the suggestion box810. For example, the user may select suggestion812ato input “Jennifer Lopez” into text box802, such as shown inFIG. 8. The user may then search based on this selection, which may produce the results shown in the results section804. The use may then select additional suggestions to input in the same or additional text boxes. Thus, the user may append the text of an initially inputted suggestion with an input of a subsequent suggestion. According to some aspects, after a user has selected/input a suggestion into a text box, the suggestions displayed in the suggestion box810may be re-ranked. For example, the suggestions may be re-ranked with or without the selected suggestion. In another example, the suggestions may be re-ranked based on grammar and/or other knowledge.

According to some aspects, a concept may be input into a text box automatically, such as without user action/input. For example, after analyzing the text message conversation200to identify concepts, the user may open application800to search for one or more of the identified concepts. In such an example, one of the identified concepts may automatically be input into the search box802. In some situations, a highest ranked concept may be automatically input into the search box. In some situations, the concept (e.g., an associated category or hyponym) may correspond to a type, category, or classification of the text box (e.g., text box802being a search box for an artist or song, and an automatically input concept may be an artist or song).

FIG. 9Aillustrates an example diagram of a display901displaying a browser application900showing a webpage908that may be implemented on a device such as devices103,105,107, and/or109in accordance with disclosed aspects. Webpage908may be part of a website used to sell and/or buy tickets to events, such as plays, concerts, sporting events, and the like. Webpage908may include a search field902, which may be used by a user to search for an artist associated with an event on the website. Webpage908may include a search field904, which may be used by a user to search for a venue or location associated with an event on the website. Webpage908may include a search field906, which may be used by a user to search for a date or range of dates associated with an event on the website. Display901may also include an input portion916, which may be similar to input portions516,616,716, and816. Input portion916may include a soft keyboard914and a suggestion box910. Input portion916may include other types of input devices/components. Suggestion box910may include one or more suggestions comprising one or more concepts, such as one or more of the concepts404a-qidentified from the text message conversation200.

According to some aspects, concepts associated with a subject matter or type of a text field may be displayed in a suggestion box, such as suggestion box910. For example, as shown inFIG. 9A, the focus/cursor may be on the text field902(e.g., text field902is shown as having a darkened perimeter), which may correspond to an artist associated with an event listed on the website. Thus, when the focus/cursor is on text field902, the suggestions shown in suggestion box910may correspond to identified concepts corresponding to an artist, because the text field902is used to search for events based on an artist. According, as shown inFIG. 9A, the suggestions may include concepts having an associated category of Artist (e.g.,402ainFIG. 4). For example, suggestion912amay correspond to the concept “JLo,” suggestion912bmay correspond to the concept “Pitbull,” suggestion912cmay correspond to the concept “Jennifer Lopez/Pitbull,” and suggestion912dmay correspond to the concept “Jennifer Lopez.” Thus, according to some aspects, the concepts that may correspond, match, or otherwise be associated with the type of text field that is currently in focus and/or currently being used to input text may be ranked higher than other concepts. According to some aspects, these higher ranked concepts may be displayed as suggestions in suggestion box910, such as after that corresponding text field is in focus.

FIG. 9Billustrates an example diagram of the display901displaying the browser application900showing the webpage908that may be implemented on a device such as devices103,105,107, and/or109in accordance with disclosed aspects. As stated above forFIG. 9A, concepts associated with a subject matter or type of a text field may be displayed in a suggestion box, such as suggestion box910. For example, as shown inFIG. 9B, the focus/cursor may be on the text field904, which may correspond to a venue or location associated with an event on the website. Thus, when the focus/cursor is on text field904(e.g., text field904is shown as having a darkened perimeter), the suggestions shown in suggestion box910may correspond to identified concepts corresponding to a venue or location, because the text field904is used to search for events based on venue or location. According, as shown inFIG. 9B, the suggestions may include concepts having an associated category of “Location” (e.g.,402cinFIG. 4). For example, suggestion912emay correspond to the concept “Madison Square Garden,” suggestion912fmay correspond to the concept “TD Garden,” suggestion912gmay correspond to the concept “MGM Grand Garden Arena,” and suggestion912hmay correspond to the concept “The Gardens.” According to some aspects, a user of webpage908may be located in proximity to New York, and thus the suggestion912eof “Madison Square Garden” may be ranked higher than other concepts, and may be listed first in the suggestion box910. The next closes venue (“TD Garden”) may be ranked second, and may be listed second.

FIG. 9Cillustrates an example diagram of the display901displaying the browser application900showing the webpage908that may be implemented on a device such as devices103,105,107, and/or109in accordance with disclosed aspects. As stated above forFIG. 9A, concepts associated with a subject matter or type of a text field may be displayed in a suggestion box, such as suggestion box910. For example, as shown inFIG. 9C, the focus/cursor may be on the text field906, which may correspond to a date or date range associated with an event listed on the website. Thus, when the focus/cursor is on text field906(e.g., text field906is shown as having a darkened perimeter), the suggestions shown in suggestion box910may correspond to identified concepts corresponding to a date, because the text field904is used to search for events based on date. According, as shown inFIG. 9C, the suggestions may include concepts having an associated category of Date (e.g.,402dinFIG. 4). For example, suggestion912imay correspond to the concept “July 26th,” suggestion912jmay correspond to the concept “July 27th,” suggestion912kmay correspond to the concept “26th,” suggestion912lmay correspond to the concept “27th,” and suggestion912mmay correspond to the concept “Jul. 26, 2014.” According to some aspects, the ranking and/or association between the subject matter or type of text field (e.g., artist, etc.) may be based on HTML (or other code) that may contain information about the type of data that may be input into a particular text field. For example, the HTML used to implement the text field906may include code that states that only dates may be input into text field906. Accordingly, the parsing mechanism may inspect the HTML (or other code) used to implement text field906to determine and/or rank the concepts for that field. In the above example, HTML may determine that the Date concepts may be ranked higher than other concepts because the HTML for text field906may indicate that only Dates may be entered. While the above example discusses dates as an illustration, any other type of concept may be used, such as location, artists, and the like.

According to some aspects, a user may input a first concept into a text field using a first type of input selection, and may input additional concepts into the text field using a different type of input selection. For example, if the concepts cache has stored for the category of “Date” the concepts “26th” (e.g., surface form) and “July 26th” (e.g., canonical form), the user may input the surface form by short pressing (or perform some other input) on a text field, and may input the canonical form by long pressing (or perform some other input) on a text field. Alternatively, the user may, for example, long press (or perform some other input) on the text field, which may then produce, in a suggestion box, suggestions for the concepts “26th” and “July 26th” from either of which the user may then select.

While the examples herein are related to text message applications, browser applications, media player applications, and email applications, disclosed aspects may be used with any application, such as text-based applications, speech-based applications, and the like.

FIG. 10is an illustrative process1000illustrating a flow schematic of a parsing mechanism for concept identification and input in accordance with one or more features described herein. In one or more embodiments, the process1000illustrated inFIG. 10and/or one or more steps thereof may be performed by a computing device, such as devices103,105,107, and/or109. In other embodiments, the process illustrated inFIG. 10and/or one or more steps thereof may be embodied in computer-executable instructions that are stored in a computer-readable medium, such as a non-transitory computer-readable memory. Any of the disclosed steps inFIG. 10(and/or associated descriptions herein) may be omitted, be performed in other than the recited order, repeated, and/or combined.

Process1000may begin with step1002, in which a language input (e.g., text-based, natural language, etc.) may be received by an application on a computing device. The language input may be displayed a text on a display screen of the device. The application may be, for example, a text-messaging based application (e.g., SMS, TMS), a messing application (e.g., instant messaging services such as WhatsApp, etc.), an email application, a web browser, a word processing application, and/or any text-based application. For example, as shown above inFIG. 4, a user may type a text message202stating “Did you see Jennifer Lopez's video?” The user may receive a text message204from the user's friend that might state “yeah awesome!!! I heard she is coming to the Gardens on the 26thand 27th. The song I Love You is beautiful, but I really like JLo's on the floor with pitbull.”

At step1004, the device and/or application may recognize/receive a user action related to the language input. For example, the user may long or short press in the proximity of a portion of the language input, right click, tap a display, tapping a button (e.g., on a soft keyboard or other input device), select/highlight text, or perform some other input. In one example, an option to “analyze concepts” may then be displayed to the user to analyze proximate text and/or selected text to identify one or more concepts/named-entities according to one or more disclosed features. According to some aspects, a user action might not be needed to initiate the action of analyzing text for one or more concepts/named-entities. For example, text may be analyzed for one or more concepts/named-entities after text is entered into a soft keyboard of a user, such as when a user is typing a text message. Text may be analyzed for one or more concepts/named-entities after text is entered via a voice prompt into a device. Text may be analyzed for one or more concepts/named-entities by intercepting text that may have been received and/or transmitted by a device, and automatically analyzing that text. For example, the device may intercept short, highly targeted items, such as SMS messages, and analyze them for one or more concepts/named-entities. In some situations, highlighted text may be automatically analyzed for concepts by the parsing mechanism.

At step1006, the device and/or application may analyze the text (e.g., selected or identified text) of the language input to identify named entities and/or concepts within and/or associated with the analyzed text. Thus, a user may parse/analyze the text to identify concepts/named entities that may, for example, be used as text-based input in the same application or another application. For example, semantic relationships may be identified for concepts/named-entities in (or associated) with the analyzed text, such as shown inFIG. 4. The relationships may be between, for example, hyponyms and hypernyms. For example, as shown inFIG. 4, the concepts of “I Love You” (404f) and “On the Floor” (404g) may be hyponyms for the “Song” hypernym402b). According to some embodiments, the hypernym may be a category or classification for one or more hyponyms. For example, the concepts of “I Love You” (404f) and “On the Floor” (404g) may be categorized/classified as songs (e.g., because they name songs by Jennifer Lopez), and thus may be associated with the “Song” hypernym (402b). According to some aspects, a hypernym may be a hyponym. For example, the hypernyms of “Song”402band “Artist”402amay be hyponyms for the hypernym “Art” or the like.

At step1008, the computing device may detect a text field, such as a text field in and/or associated with an application running on the computing device. For example, a user may wish to search for the song “I Love You” in a media player application. The user may open the media player application, and then move the focus or cursor to a search text field. After the text box is detected, one or more of the identified concepts may be displayed to the user as suggestions for entering into the text box. The displayed concepts may comprise concepts ranked higher than other non-displayed concepts, such as discussed above. According to some aspects, a text field may be detected via one or more features and/or components of an operating system and/or application. For example, an “auto-fill” feature, such as an auto-fill contact information feature, may be used to detect a text field. For example, on an online shopping site, the auto-fill feature may begin to and/or prompt a user to fill in an address text field with the user's address after the user inputs the user's name in a separate name text field. Thus, disclosed aspects may detect a text field and/or determine a type of text field via the auto-fill feature implemented on an application and/or operating system. Additionally, any metadata or other information may be used to determine a type of text field. For example, a text field may be preceded by “Artist,” and disclosed aspects may determine that the text field following the word “Artist” might relate and/or correspond to an Artist concept.

According to some aspects, the text field may be detected after the user opens the application without the user moving the focus or cursor to a text field. Thus, in some situations, one or more of the identified concepts may be displayed to the user as suggestion for entering into the text box. In some situations, one or more of the identified concepts, such as a highest ranked concept or higher ranked concept(s), may be automatically input into a text field (e.g., without a user moving the focus or cursor to a text field).

At step1010, the device and/or application may receive/recognize a user action associated with the identified concepts. For example, the user may select a concept displayed as a suggestion for input into a text field. In some situations, the user may short press on a text box to have a concept entered into the text box (e.g., a highest or higher ranked concept). In some situations, if the user does not see a desired suggestion, the user may scroll through displayed suggestions, such that different suggestions (e.g., corresponding to different concepts and/or lower ranked concepts) may be displayed to the user.

At step1012, the selected concept/suggestion may be input into the text field. In some situations, as stated above, a concept may be automatically input into a text field, such as in response to detecting the text field. According to some aspects, the canonical form or the surface form of a concept may be input into a text field. For example, if the text field is the search box of a search engine, then a surface form of a date concept may be used. In another example, if the application relates to making flight reservations on a web site (e.g., which may use a little calendar icon for aiding in the input), then the canonical form of a date concept may be used.

At step1014, information associated with the selection and/or input/insertion of a concept/suggestion may be logged and/or transmitted to a server and/or database, which may be associated with an enterprise entity, such as a business, that may own, control, and/or be otherwise associated with the disclosed parsing mechanism. The information may include which concepts/suggestions were inserted, which concepts/suggestions were rejected, scrolled over, and/or not inserted, whether a higher ranked (or lower ranked) concept/suggestion was inserted, from which application the text was analyzed by the parsing mechanism, to which application the concepts/suggestions were displayed/associated and/or inserted into, whether the parsing technique identified correct categories for named-entities/concepts, whether surface and canonical forms were correctly identified, the analyzed text, non-analyzed text, location of a device or user, any modification/correction to a concept/suggestion that was inserted, and the like. The information may be in statistical form. According to some aspects, the server and/or database (or other computing device) may update the parsing mechanism (e.g., on the device that sent the information or on other devices implementing the parsing mechanism) based on this information, such as via a software update. According to some aspects, the enterprise entity (or other entity or associated computing device) may update the parsing mechanism (e.g., on the device that sent the information or on other devices implementing the parsing mechanism) based on this information, such as via a software update.

Process1000may then return to step1008to determine if a text field (e.g., the same text field or different text field) is detected. Process1000may end after any step of process1000.

One or more embodiments may be implemented in any conventional computer programming language. For example, embodiments may be implemented in a procedural programming language (e.g., “C”) or an object-oriented programming language (e.g., “C++”, Python). Some embodiments may be implemented as pre-programmed hardware elements, other related components, or as a combination of hardware and software components.

Embodiments can be implemented as a computer program product for use with a computer system. Such implementations may include a series of computer instructions fixed either on a tangible medium, such as a computer readable medium (e.g., a diskette, CD-ROM, ROM, or fixed disk) or transmittable to a computer system, via a modem or other interface device, such as a communications adapter connected to a network over a medium. The medium may be either a tangible medium (e.g., optical or analog communications lines) or a medium implemented with wireless techniques (e.g., microwave, infrared or other transmission techniques). The series of computer instructions may embody all or part of the functionality previously described herein with respect to the system. Such computer instructions may be written in a number of programming languages for use with one or more computer architectures or operating systems. Furthermore, such instructions may be stored in any memory device, such as semiconductor, magnetic, optical, or other memory devices, and may be transmitted using any communications technology, such as optical, infrared, microwave, or other transmission technologies. Such a computer program product may be distributed as a removable medium with accompanying printed or electronic documentation (e.g., shrink wrapped software), preloaded with a computer system (e.g., on system ROM or fixed disk), or distributed from a server or electronic bulletin board over a network (e.g., the Internet or World Wide Web). Some embodiments may be implemented as a combination of both software (e.g., a computer program product) and hardware. Still other embodiments may be implemented as entirely hardware, or entirely software (e.g., a computer program product).

A described “process” is the performance of a described function in a computer using computer hardware (such as a processor, domain-programmable gate array, or other electronic combinatorial logic, or similar device), which may be operating under control of software or firmware or a combination of any of these or operating outside control of any of the foregoing. All or part of the described function may be performed by active or passive electronic components, such as transistors or resistors. Use of the term “process” does not necessarily imply a schedulable entity, although, in some embodiments, a process may be implemented by such a schedulable entity. Furthermore, unless the context otherwise requires, a “process” may be implemented using more than one processor or more than one (single- or multi-processor) computer and it may be an instance of a computer program or an instance of a subset of the instructions of a computer program.

As described herein, the various methods and acts may be operative across one or more computing devices and one or more networks. The functionality may be distributed in any manner, or may be located in a single computing device (e.g., a server, a client computer, or the like).