Using conversation structure and content to answer questions in multi-part online interactions
A computer-implemented method for determining an answer to a question in a multi-party conversation includes receiving a multi-party conversation having multiple nodes of unstructured natural language. Each node is parsed into a plurality of elements. Each element of the plurality of elements that comprises a question is identified. A conversation node list is constructed that identifies relationships between the nodes. At least one answer to the question is produced based on the conversation node list.
1. A computer-implemented method for determining an answer to a question in a multi-party conversation, comprising:
receiving a multi-party conversation comprising multiple nodes of unstructured natural language;
parsing each node into a respective plurality of conversation elements;
identifying each element of the respective plurality of elements that comprises a respective question;
constructing a conversation node list that identifies relationships between nodes; and
producing at least one answer to the respective question based on the conversation node list.
2. The method of claim 1 , wherein constructing the conversation node list comprises:
selecting each node that comprises a question; and
ranking the selected nodes based on chronological position.
3. The method of claim 2 , further comprising constructing a graph of reply-to relationships in the multi-party conversation for each ranked node.
4. The method of claim 3 , further comprising:
determining a respective number of children for each ranked node; and
sorting the ranked nodes based on the respective number of children determined for each ranked node.
5. The method of claim 4 , further comprising sorting the ranked nodes reverse chronologically by node position.
6. The method of claim 1 , further comprising producing at least one answer to the respective question comprises using a deep learning module.
7. The method of claim 6 , further comprising training the deep learning module using a community thread dataset comprising questions and annotated answers.
8. The method of claim 1 , further comprising assigning a respective weight value to each element, the respective weight value based on a probability of containing an answer.
9. The method of claim 1 , further comprising producing at least one answer to the respective question based on contextual information surrounding the respective question.
10. The method of claim 1 further comprising, for each element that has been identified as comprising the respective question, determining a respective question type.
11. The method of claim 10 wherein producing at least one answer to the respective question is based on the respective question type.
12. A system for determining an answer to a question in a multi-party conversation, comprising:
a processor; and
a memory storing computer program instructions which when executed by the processor cause the processor to perform operations comprising:
receiving a multi-party conversation comprising multiple nodes of unstructured natural language;
parsing each node into a respective plurality of conversation elements;
identifying each element of the respective plurality of elements that comprises a respective question;
constructing a conversation node list that identifies relationships between nodes; and
producing at least one answer to the respective question based on the conversation node list.
13. The system of claim 12 , wherein the processor is configured to:
select each node that comprises a question; and
rank the selected nodes based on chronological position.
14. The system of claim 13 , wherein the processor is configured to construct a graph of reply-to relationships in the multi-party conversation for each ranked node.
15. The system of claim 14 , wherein the processor is configured to:
determine a respective number of children for each ranked node; and
sort the ranked nodes based on the respective number of children determined for each ranked node.
16. The system of claim 15 , wherein the processor is configured to sort the ranked nodes reverse chronologically by node position.
17. The system of claim 12 , wherein the processor is configured to produce at least one answer to the respective question using a deep learning module.
18. The system of claim 17 , wherein the deep learning module is trained using a community thread dataset comprising questions and annotated answers.
19. The system of claim 12 , wherein the processor is configured to assign a respective weight value to each element, the respective weight value based on a probability of containing an answer.
20. A non-transitory computer readable medium storing computer program instructions for determining an answer to a question in a multi-party conversation, the computer program instructions when executed by a processor cause the processor to perform operations comprising:
receiving a multi-party conversation comprising multiple nodes of unstructured natural language;
parsing each node into a plurality of conversation elements;
identifying each element of the respective plurality of elements that comprises a respective question;
constructing a conversation node list that identifies relationships between nodes; and
producing at least one answer to the respective question based on the conversation node list.