Specialized search system and method for matching a student to a tutor

A system and method for matching students to tutors is disclosed. In particular, a user submits a query and in response a plurality of tutors are identified responsive to the search query. The identified tutors are then ranked based on relevance to the search query. The identified tutors are then presented to the user in an order based on the relevance score assigned to each tutor.

CROSS REFERENCE TO RELATED APPLICATIONS

FIELD OF THE DISCLOSURE

The present disclosure generally relates to a system and method for matching a student to a tutor, and more particularly still relates to a specialized search system and method adapted to match a student to a tutor best suited to teach that student. More particularly still, the present disclosure relates to an improved system and method for converting a search query to one or more primary search subjects and for ranking one or more tutors skilled at teaching a subject in a listing of search results so that the tutor most appropriate to teach a student is ranked higher than other tutors that are not as skilled at teaching the subject.

DESCRIPTION OF BACKGROUND

The purpose of a search engine is to parse a search string and return a list of results that are pertinent to the user's search, with the most relevant results appearing towards the top of the user's search and less pertinent results appearing afterwards. There are numerous types of search engines ranging from general engines, such as Google, to highly specialized search engines such as those that are adapted to identify specific numerical information or even search engines that are adapted to catalog chemical research.

With regards to a search engine adapted to match a student to a tutor, the purpose of such an engine is to accept a search string from a prospective student and produce a ranked list of tutors that are suitable to meet the needs embodied within the search string. For example, if a user types in a search string such as “7th grade science,” tutors that have skills in subjects such as “science,” “physics,” and “biology” would be returned.

However, prior art tutor search systems have suffered from a number of short comings. First, prior art tutor search engines are largely dependent on the profiles presented by tutors, which are susceptible to being manipulated to match common search terms. Second, prior art tutor search engines largely rely on the division of tutors into subjects. For specialized subject areas, the granularity of existing subjects is likely not sufficient. In addition, specialized search terms are not amenable to division into common subjects.

OBJECTS OF THE DISCLOSED SYSTEM, METHOD, AND APPARATUS

Accordingly, it is an object of this disclosure to provide an improved search engine for use in matching a student to a tutor.

Another object of the disclosure is to provide a search engine that utilizes a table that relates historical search terms and the subject that students actually took lessons in to relate a particular search term to the subject most pertinent to a submitted search term.

Another object of the disclosure is to provide a search engine that produces a sorted list of tutors in response to a specific search term by a user.

Another object of the disclosure is to provide a search engine that inspects tutor profiles for specific terms that are related to other terms in the tutor's profile to potentially rank a tutor higher in a sorted list of tutors.

Other advantages of this disclosure will be clear to a person of ordinary skill in the art. It should be understood, however, that a system or method could practice the disclosure while not achieving all of the enumerated advantages, and that the protected disclosure is defined by the claims.

SUMMARY OF THE DISCLOSURE

Generally speaking, pursuant to the various embodiments, a computer-implemented method performed by at least one processor is disclosed. The method comprises the step of receiving a search query from a user. The query can be, for example, a search term, such as “middle school math,” or something more complicated such as “machine learning using python.” The method further comprises the step of retrieving a plurality of tutors that are responsive to the search query. For example, the tutors can be retrieved by identifying a subject or subjects that are pertinent to the search query and retrieving all tutors that are classified as being skilled in that subject. The method further comprises the step of computing a relevance score for each of the tutors. The relevance score can be computed by, for example, comparing the search query to a tutor's profile, and by adjusting the score based on the presence of various related terms within the tutor's profile. The method also comprises the step of presenting the tutors to the user. The presentation can be, for example, graphically via a web page or a computer application, or audibly by a smart speaker.

A person of ordinary skills in the art will appreciate that elements of the figures above are illustrated for simplicity and clarity and are not necessarily drawn to scale. The dimensions of some elements in the figures may have been exaggerated relative to other elements to help understanding of the present teachings. Furthermore, a particular order in which certain elements, parts, components, modules, steps, actions, events and/or processes are described or illustrated may not be actually required. A person of ordinary skill in the art will appreciate that, for the purpose of simplicity and clarity of illustration, some commonly known and well-understood elements that are useful and/or necessary in a commercially feasible embodiment may not be depicted in order to provide a clear view of various embodiments in accordance with the present teachings.

DETAILED DESCRIPTION

This specification generally describes technologies related to matching students to tutors. The disclosed technology specifically relates to a specialized search system and method that ranks tutors based on specific search queries. Specifically, a ranked listing of tutors is presented to the user based on a search term. As discussed below, the listing of tutors can be presented visually, using for example, a web browser or a computer application (with computer being defined broadly as set forth herein), or audibly via a smart speaker. The returned tutors are preferably arranged in an order based on the relevance to the original query from the user. In particular, a value related to the original search query from the user can be assigned to each tutor and the list of tutors can be sorted based on that value. Generally, the tutor with the highest relevance value would be presented first, followed by the tutor with next highest relevance value, etc. However, to prevent a particular tutor from being deluged with student requests, a number of highest rated tutors can be shuffled, which will prevent any particular tutor from ever being consistently shown first.

As described herein, a number of factors can be used to determine the relevance value, including the specific information within a tutor's profile, a database of prior searches and the subject that a student ended up taking lessons in, and other information regarding specific tutors, such as user reviews, the time that a tutor takes to respond to an inquiry from a student, and the track record of a particular tutor to convert a prospective student to an actual student.

Turning to the Figures, and toFIG. 1in particular, a block diagram illustrating an architecture for implementing a system to match a student to a tutor is depicted. The system100includes a computer102that may be used by a user103interacting directly with the computer102through a display screen and various input devices, including, for example, a touch screen, a keyboard and mouse, etc. It should be noted that the term computer102used herein is used broadly, and can refer to any kind of client computer, including a desktop, laptop, smartphone, tablet, etc. In addition, while the computer102is described as having a display screen, that is not a necessary feature of the disclosed system and method, which can be implemented using, for example, a computer without a screen, such as a smart speaker. Computer102can include a web browser, or an application specific interface allowing it to utilize the disclosed system and method.

As illustrated inFIG. 1, a front-end server152is coupled to the computer102through a network126. It should be noted that that the front-end server152and all other servers mentioned herein can be implemented as a collection of cloud servers, or as an actual, specific server. In addition, any of the servers referred to herein can be implemented as a virtual server. The front-end server152receives requests from computer102or other client devices. In some cases, a search can be carried out by a front-end server152, but typically, a search is executed on one of the back-end servers160a,160b,160c. Typically, a request is received by a front-end server152, and passed to a back-end server160a-cwhich will assemble a set of ranked search results, which are then passed back to the requesting computer102by a front-end server152or a different server.

Each of the servers152,160a,160b,160ccan include an electronic computing device operable to receive, transmit, process, store, or manage data and information associated with the search system130. The servers can each include one or more processors capable of executing programs, performing data manipulations and controlling tasks on the server. The servers will also generally include memory, such as dynamic random-access memory (DRAM), and storage, such as rotating magnetic disc storage, solid state disc storage, or some other type of storage. The servers will generally also include a network interface, such as, for example, an ethernet port, an 802.11 interface, etc.

The network126can be the Internet, a local area network (LAN), a wide area network (WAN), or any other network or combination thereof. Similarly, a network of any type132couples the servers152,160a,160b,160cto one another.

Typically, one or more servers152,160a,160b,160ccontain logic for implementing the search functionality disclosed herein. For example, server160acan include a search module configured to receive a search query from a computer102and generate a set of ranked search results responsive to the search query. The server160acan generate a list of responsive search results for presentation to a user or forward the search results to another server within the search system130. While the search module is described as being implemented on a single server160a, it can also be distributed across multiple servers within the search system130.

The memory of one of the servers160bin the search engine system130can store data associated with the search system130, such as, for example, final search results, or various intermediate search results as further discussed herein.

In the disclosed tutor match system, tutors are primarily sorted based on subject. Subjects can include, for example, 1) algebra, 2) history, 3) English, 4) computer programming, 5) chemistry, 6) physics, and 7) geometry. An actual listing of the subjects into which the disclosed tutor matching system “sorts” tutors into would be far greater in practice, and could include additional subjects, more specific subjects, and/or entirely different subjects.

Turning toFIG. 2, a software block diagram illustrating the various components of the disclosed tutor matching system is illustrated. It should be noted that while certain components are ascribed to certain servers; i.e., front-end or back-end, any of the software components can function on any of the servers.

The software modules are generally split into two portions; front-end software201that will typically operate on a front-end server152and back-end software211that will typically operate on a back-end server160a,160b, or160c. The front-end software201includes a user interface component202. The user interface component202will provide an interface, such as a web based graphical user interface, to a web browser operated by a user103. However, as explained previously, other types of interfaces can be used, such as an auditory interface adapted to work with a smart speaker, or a hybrid interface adapted to work with an intelligent wearable device. The user interface202will gather various information about the prospective student. Such information will include a search string. Examples of search strings include a) “middle school math help,” b) “math and Spanish,” and c) “medieval history.”

The search string will then be passed to a Query pre-Parser component204. The pre-Parser204will, among other functions, strip any “stop words” from the query before conducting additional analysis. Stop words include common words, such as conjunctions like “and,” “the,” “or,” etc. In addition, the query is split into different “sub-queries.” For example, if a query of “middle school math and English” was made, the result would be at least two different sub-queries; i.e., 1) “middle school math,” and 2) “English.” The list sub-queries are passed onto a Noun & Adjective Detection module (“NADM”)206.

The NADM206is a specialized part-of-speech tagging (sometimes abbreviated as “POST”) module. A typical POST module will, based on word context with a search string, identify if a particular word is a noun, verb, adjective, adverb, pronoun, preposition, conjunction, determiner, exclamation, etc. Generally, a POST will utilize a corpus of words along with a collection of rules to identify the part of speech of a particular portion of an input string. The NADM206is a specially trained POST that recognizes subjects and related keywords that are pertinent to the student-tutor relationship. A simplified table depicting such a database table is illustrated in Table 3. In particular, the table relates a search term to a particular subject that a student actually received lessons in. It should be noted that a particular search term can occur more than once in the table, with either the same or a different resultant subject.

The NADM module206then generates a list of query primitives250that are passed to the back-end software modules211. For a query of “middle school math and English,” the list of queries could be 1) “middle school math,” and 2) “English.” On the other hand, for a query of “best algebra tutor,” the only query would be “algebra tutor,” as the NADM would eliminate the word “best” as a pure adjective that adds nothing to the query.

The front-end software201also includes a Predictive Subject Module207. The Predictive Subject Module (“PSM”)216relies on the table of historical search terms and subjects260to predict a subject that a student will seek lessons in based on the results of past search terms. A simplified software block diagram illustrating the operation of the PSM is shown inFIG. 4. In step502, each term in the historical search table260is iterated through. In step504, a comparison is made between a search term as relayed by the ISAM212and an entry in the historical search table260. A check is made to determine if the search term component of the entry is identical to the search term in step506. If so, then the corresponding subject is added to a predicted subject list520in step508. If not, then the next entry is retrieved in step502. Once complete, the predicted subject list is added to the list of search terms that are passed to the back-end software211.

The PSM effectively provides a short cut to the most likely subjects that a student is seeking instruction in by matching the student to the subjects that previous students that submitted the same search string actually received tutoring in. This is especially advantageous for topics where specific subjects are not present in the search system.

The back-end software211includes an Initial Subject Analysis Module212. The ISAM212accepts the query primitives from the front-end software201, and, based on these primitives, queries a second table262comprising tutor profiles to return a first ranked list of tutor profiles. A tutor profile includes any subjects that the tutor is sorted into, as well as a textual description that is manually input by the tutor.

Turning toFIG. 5, a flowchart illustrating the operation of the ISAM at a high-level is depicted. A list of query primitives250is provided by the front-end software201. For every query primitive in the list250, in step304a check is made to determine if the query primitive is a subject as recognized by the system. If so, execution transitions to step306, where all tutors in the tutor profile database262are returned and compiled into a first list316and assigned a relevance score. As all tutors in this list are inserted only because they match a given subject, they are all given the same relevance score; as an example, each tutor in the first list316may be assigned a relevance score of 10.

Returning to decision304, if the query primitive is not a subject, execution transitions to step308, where a search through the tutor profile database262is executed, and any tutors that have the exact search string in their profile description are returned as a second list318as well as assigned a relevance score. The relevance score assigned to profiles that contain the exact text in the profile is higher than those that merely match a subject. Accordingly, the relevance score assigned to a profile that contains an exact search term once might be 20. However, if the search term appears more than once, the relevance score can be adjusted using a well-known algorithm such as Term Frequency/Inverse Document Frequency. Accordingly, a profile that mentions the exact search term twice can be assigned a relevance score of 39, while a profile that mentions the exact search term fifty times; i.e., a clear example of key word stuffing, might be ranked lower at, for example, a relevance score of 5.

In step320, either the first list316or the second list318is appended to any previous list, after which the next query primitive is processed. If no additional primitives need to be processed, then execution transitions to step322, where the assembled list is sorted by relevance score, resulting in a ranked list of tutors332. The back-end software211also includes a Comparative Subject Analysis Module (“CSAM”)214. The purpose of the CSAM is to rank certain profiles higher than others based on the presence of certain terms within a tutor's profile. In particular, the database of tutor profiles is scanned using the algorithm ofFIG. 6to determine words that are related to other terms, and, where the tutor's profile is determined to include a high number of related words, that profile is given a higher relevance score as outlined further below.

Turning toFIG. 6, an algorithm for the construction of a word vector for the purpose of determining words with a valid relationship to words within the tutor profile is depicted. In particular, the table of tutor profiles262is examined, and, in particular, each tutor profile is iterated through in step402. Once a tutor profile is retrieved, each word in the tutor profile is iterated through in step404. In step412, all words within X words, both forward and back, of the identified subject word are copied to a candidate list. X can be any value, such as, for example, 3 words, 5 words, 7 words, 10 words, or 100 words. Every word in the candidate list is iterated through in step414, and for a given word, an examination is conducted in step416to determine if a valid relationship might exist between the word under examination and the present word in the candidate list. The determination of a valid relationship in step416can be made using many algorithms as known in the art, including, for example, Latent Semantic Analysis (“LSA”) and Latent Dirichlet Allocation (“LDA”), as well as Feedforward Neural Net Language Model (“NNLM”), Recurrent Neural Net Language Model (“RNNLM”), a Continuous “Bag-of-Words” Model (“CBOW”), and a Continuous Skip-gram Model. If a valid relationship does not exist, execution transitions to step421, whose operation is described below. On the other hand, if a valid relationship does exist, then execution transitions from step416to step420, where the additional word is appended to a word vector425. Execution then transitions to step421, where a check is made to determine if the present word is the last word in the candidate list. If so, then a check is made to determine if there are any other additional words in the profile in step408. If there are additional words in the profile, execution transitions to step404, where the next word in the tutor profile is retrieved. Otherwise, execution transitions to step402, where the next tutor profile is retrieved.

Returning to the operation of the CSAM214inFIG. 2, the word vectors constructed using the algorithm ofFIG. 5is used to determine if a profile should be assigned a higher relevance score. If the profile under examination does contain any of the related words in the word vector then the tutor's profile is boosted in the form of being given a higher relevance score, which will raise its position within the ranked list of tutors; for example, the presence of two related words within a profile may raise a tutor's rank from 38thplace within the ranked list of tutors to 4thplace.

The specific operation of how related words can impact a particular relevance score assigned to a tutor profile is explained below by reference to an example. If a student searches for “Algebra,” the following terms can be identified as related words, and assigned a “boost score.”:

For each related word that is contained within the tutor profile, the relevance score assigned to the tutor profile is boosted. One way to accomplish this boost would be multiply the assigned relevance score by 1 plus the Boost Score for a particular related word. For example, if the originally calculated relevance score for a tutor's profile is 56, and the term “geometry” is present within the tutor's profile, it would be boosted to 56+(1×0.943)=56.943.

In addition, in certain embodiments, the location of the related word within the tutor's profile can affect the boost score. For example, if a related word appears in the title of the profile, the boost score can be slightly increased by, for example, 10%. In addition, if the related word appears in multiple places in the profile, such as in the title and body of the profile, the tutor's profile would be given an even larger boost.

Obviously, many additional modifications and variations of the present disclosure are possible in light of the above teachings. Thus, it is to be understood that, within the scope of the appended claims, the disclosure may be practiced otherwise than is specifically described above.

The foregoing description of the disclosure has been presented for purposes of illustration and description and is not intended to be exhaustive or to limit the disclosure to the precise form disclosed. The description was selected to best explain the principles of the present teachings and practical application of these principles to enable others skilled in the art to best utilize the disclosure in various embodiments and various modifications as are suited to the particular use contemplated. It should be recognized that the words “a” or “an” are intended to include both the singular and the plural. Conversely, any reference to plural elements shall, where appropriate, include the singular.

It is intended that the scope of the disclosure not be limited by the specification but be defined by the claims set forth below. In addition, although narrow claims may be presented below, it should be recognized that the scope of this invention is much broader than presented by the claim(s). It is intended that broader claims will be submitted in one or more applications that claim the benefit of priority from this application. Insofar as the description above and the accompanying drawings disclose additional subject matter that is not within the scope of the claim or claims below, the additional inventions are not dedicated to the public and the right to file one or more applications to claim such additional inventions is reserved.