Systems and methods for automatically interviewing a technical candidate are provided. The systems and method determine emotional states of the candidate and relevance scores for one or more provided answers from the candidates. The systems and methods utilized the emotional states and relevance scores to determine the next type of question and the appropriate difficulty level for the next question to ask the candidate during an automated interview. Additionally, systems and method may generate technical question-answer pairs for the interview utilizing a search of world knowledge.
Please help me write a proper abstract based on the patent claims. CLAIM: 1. A system for automated interviewing of software engineers, the system comprising: at least one processor; and a memory for storing and encoding computer executable instructions that, when executed by the at least one processor is operative to: receive a first answer to a first question given to a candidate, wherein the first question is a first technical question; analyze the first answer to determine a time and space complexity of the first answer; compare the time and space complexity of the first answer to a time and space complexity of a reference answer for the first question; determine a relevance score of the first answer based on the comparison of the time and space complexity of the first answer to the time and space complexity of the reference answer; analyze candidate signals during the first answer to determine an emotional state of the candidate during the first answer, wherein the candidate signals are at least voice input and text input; determine a difficulty level for a next technical question based on at least one of the relevance score and the emotional state; determine whether a first reply to the candidate should be in a chat domain or in a technical domain based on at least one of the relevance score and the emotional state to form a domain determination; select the first reply from a collection of chat replies or from a collection of technical question-answer pairs based on the domain determination; and provide the first reply to the candidate in response to the first answer; wherein the next technical question provided to the candidate is selected from the collection of technical question-answer pairs based on the difficulty level, and wherein a next chat reply provided to the candidate is selected from the collection of chat replies. 2. The system of claim 1, wherein analyze the first answer to determine the time and space complexity of the first answer comprises: determining that the first answer was in code; analyzing the code utilizing heuristic rules to determine the time and space complexity of the first answer. 3. The system of claim 1, analyze the first answer to determine the time and space complexity of the first answer comprises: determining that the first answer was not in code; identifying related code to the first answer by comparing the first answer to the reference answer for the first question in the collection of technical question-answer pairs utilizing a deep semantic similarity model and a recurrent neural network with gated recurrent units; and analyzing the related code utilizing heuristic rules to determine the time and space complexity of the first answer. 4. The system of claim 1, wherein analyze the candidate signals during the first answer to determine the emotional state of the candidate during the first answer comprises: utilizing a multiple class vector support machine trained utilizing at least one of word ngrams, character ngrams, word skip-grams, brown cluster ngrams, part-of-speech tags, lexicons, social network related words, and word2vec cluster ngrams to identify an emotion label for the first answer; determining that the emotional state is negative based on the emotion label. 5. The system of claim 4, wherein the domain determination is the chat domain, and wherein the first reply is selected from the collection of chat replies. 6. The system of claim 1, wherein analyze the candidate signals during the first answer to determine the emotional state of the candidate during the first answer comprises: utilizing a multiple class vector support machine trained utilizing multiple features to identify an emotion label for the first answer; and determining that the emotional state is positive based on the emotion label. 7. The system of claim 6, wherein determine whether the first reply to the candidate should be in the chat domain or the technical domain is further based on previously provided chat replies to form the domain determination, and wherein the domain determination is the chat domain because a chat reply has not been provided for at least two turns of a conversation between the candidate and the system. 8. The system of claim 6, wherein determine whether the first reply to the candidate should be in the chat domain or the technical domain is further based on previously provided chat replies to form the domain determination, and wherein the domain determination is the technical domain because a chat reply was provided in one of previous two turns of a conversation between the candidate and the system. 9. The system of claim 1, wherein the relevance score is a negative score for incorrect answers, is a normal score for correct answers with worst time and space costs, is an excellent score for the correct answers with best time and space costs, and is a good score for the correct answers with time and space costs that are better than the worst time and space costs but that are not the best time and space costs. 10. The system of claim 9, wherein the relevance score is the excellent score, wherein the emotional state is positive, and wherein the difficulty level for the next technical question is increased. 11. The system of claim 9, wherein t the relevance score is the normal score, wherein the emotional state is positive, and wherein the difficulty level for the next technical question is not increased. 12. The system of claim 9, wherein the relevance score is the negative score, wherein the emotional state is negative, and wherein the difficulty level for the next technical question is decreased. 13. The system of claim 1, wherein the at least one processor is further operative to: evaluate the candidate after completion of an interview to determine a communication skills score, a interpersonal skills score, a technical competency score, and a team collaboration score for the candidate; and provide the communication skills score, the interpersonal skills score, the technical competency score, and the team collaboration score to an interviewer in a candidate summary graphical representation. 14. The system of claim 13, wherein the at least one processor is further operative to: add communication skills scores, interpersonal skills scores, technical competency scores, and team collaboration scores for other candidates on the candidate summary graphical representation to form a comparison graphical representation; provide the comparison graphical representation to the interviewer. 15. The system of claim 14, wherein each candidate is represented by a single line on the comparison graphical representation. 16. The system of claim 1, wherein the at least one processor is further operative to update the collection of technical question-answer pairs or to prepare the collection of technical question-answer pairs, wherein update the collection of technical question-answer pairs comprises: collect additional technical question-answer pairs for the collection of technical question-answer pairs; and add the additional technical question-answer pairs to the collection of technical question-answer pairs, and wherein prepare the collection of technical question-answer pairs comprises: parsing sentences from world knowledge with a trained sentence parser utilizing a syntactic dependency tree to form parsed sentences, wherein the world knowledge comprises textbooks, articles, and coding websites; extracting a knowledge graph from the parsed sentences utilizing a heuristic algorithm; and generating technical question-answer pairs from the knowledge graph. 17. A method for interviewing software engineers utilizing a chat bot, the method comprising: receiving a first answer to a first question given to a candidate, wherein the first question is a first technical question; analyzing the first answer to determine a time and space complexity of the first answer; comparing the time and space complexity of the first answer to a time and space complexity of a reference answer for the first question; determining a normal relevance score of the first answer based on the comparison of the time and space complexity of the first answer to the time and space complexity of the reference answer; analyzing at least one of voice input and text input for the first answer by the candidate to determine that the candidate is in a negative emotional state; determining that a difficulty level for a second technical question should be less than a difficulty level for the first technical question based on the normal relevance score and the negative emotional state; determining that a first reply to the candidate should be in a chat domain based on the negative emotional state of the candidate; in response to determining that the first reply should be in the chat domain, selecting the first reply from a collection of chat replies based on the negative emotional state; providing the first reply to the candidate in response to the first answer; receiving a second answer from the candidate in response to the first reply; analyzing at least one of voice input and text input for the second answer to determine that the candidate is in a positive emotional state; determining that a second reply to the candidate should be in a technical domain based on the positive emotional state of the candidate; in response to determining that the second reply should be in the technical domain, selecting the second technical question with the difficulty level that is less than the difficulty level of the first technical question from a collection of technical question-answer pairs; and providing the second technical question to the candidate in response to the second answer. 18. The method of claim 17, further comprising: evaluating the candidate after completion of an interview based on communication skills, interpersonal skills, technical competency, and team collaboration; determining a communication skills score, an interpersonal skills score, a technical competency score, and a team collaboration score for the candidate based on the evaluating of the candidate; generating a candidate summary graphical representation that shown the communication skills score, the interpersonal skills score, the technical competency score, and the team collaboration score of the candidate; and providing the candidate summary graphical representation to an interviewer. 19. The method of claim 18, further comprising: generating a comparison graphical representation that add communication skills scores, interpersonal skills scores, technical competency scores, and team collaboration scores for other candidates on the candidate summary graphical representation; providing the comparison graphical representation to the interviewer, wherein each candidate is represented by a single line on the comparison graphical representation. 20. A system, the system comprising: a computing device including a processing unit and a memory, the processing unit building a chat bot for interviewing software engineers, the computing device is operable to: prepare a collection of chat replies from world knowledge and from received predetermined chat question-answer pairs; prepare a collection of technical question-answer pairs from the world knowledge, wherein the world knowledge includes textbooks, articles, and coding websites, wherein prepare the collection of technical question-answer pairs from the world knowledge comprises: parsing sentences from the world knowledge with a trained sentence parser utilizing a syntactic dependency tree to form parsed sentences, extracting a knowledge graph from the parsed sentences utilizing a heuristic algorithm, and generating technical question-answer pairs from the knowledge graph; select questions from the collection of technical question-answer pairs and the collection of chat replies based on relevance scores of candidate provided answers and emotional states of candidates during the candidate provided answers; assign the relevance scores to user provided answers, utilizing a recurrent neural network that determines time and space complexities of the candidate provided answers and compares the time and space complexities of the candidate provided answers with time and space complexities of corresponding reference answers; determine emotional states for each candidate provided answers by evaluating text input from the candidate provided answers; and evaluate communication skills, interpersonal skills, technical competency, and team collaboration of every candidate to determine a recommendation score for each of the communication skills, the interpersonal skills, the technical competency, and the team collaboration for the candidates.