IP Library Granted Patent US 10,628,737
Granted Patent B2
US 10,628,737 · App. 15/406,565 · Granted Apr 21, 2020

Identifying constructive sub-dialogues

Inventors: Courtney Napoles Cohen (Balitmore, MD); Aasish Pappu (New York, NY); Joel Tetreault (New York, NY)
Assignee: Oath Inc.
G06N3/08G06F17/241G06F17/279G06N3/0445G06N7/005H04L67/02H04L67/10H04L67/2833
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,628,737
App. No.
15/406,565
Granted
Apr 21, 2020
Kind
B2
Abstract

Software on a website hosting an online forum extracts a plurality of sub-dialogues from each thread in a corpus from the online forum. The software obtains one or more sub-dialogue annotations associated with each sub-dialogue. The sub-dialogue annotations include an annotation as to whether the sub-dialogue is constructive. The software extracts a plurality of features from each sub-dialogue uses them and the sub-dialogue annotations associated with the sub-dialogue to train a classifier that determines whether a particular sub-dialogue is constructive. Then the software obtains a new sub-dialogue from a thread currently displayed in the online forum and extracts the plurality of features from the new sub-dialogue. The software inputs the features extracted from the new sub-dialogue into the classifier and obtains a determination as to whether the new sub-dialogue is constructive.

Claims (61)

1. A method for performing a plurality of operations, comprising:

extracting a plurality of sub-dialogues from a thread in a corpus from an online forum, wherein a sub-dialogue includes a plurality of comments and the thread includes at least one sub-dialogue;

obtaining one or more sub-dialogue annotations associated with the sub-dialogue, wherein the one or more sub-dialogue annotations are associated with an annotation as to whether the sub-dialogue is constructive based upon one or more features of a first comment of the sub-dialogue and one or more features of a second comment of the sub-dialogue;

extracting a plurality of features from the sub-dialogue, the plurality of features comprising a first set of sub-dialogue features and a second set of sub-dialogue features represented using a vector of values, wherein the extracting the plurality of features comprises:

determining comment features comprising a first comment feature associated with the first comment and a second comment feature associated with the second comment;

weighting the comment features to generate weighted comment features;

generating the first set of sub-dialogue features based upon the weighted comment features; and

generating the second set of sub-dialogue features based upon a window of chronologically ordered comments;

using the vector representing the plurality of features from the sub-dialogue and at least one sub-dialogue annotation associated with the sub-dialogue to train a classifier that determines whether a particular sub-dialogue is constructive;

obtaining a new sub-dialogue from a thread currently displayed in the online forum and extracting one or more features from the new sub-dialogue, the one or more features from the new sub-dialogue represented as a new vector;

inputting the new vector representing the one or more features extracted from the new sub-dialogue into the classifier and obtaining a determination as to whether the new sub-dialogue is constructive, wherein the determination is performed using values of the one or more features of the new sub-dialogue included in the new vector; and

re-locating the new sub-dialogue in the thread based upon the determination, wherein each operation of the plurality of operations is performed by one or more processors.

2. The method of claim 1 , the re-locating comprising:

re-locating the new sub-dialogue from a current location in the thread to a first location in the thread responsive to determining that the new sub-dialogue is constructive, the first location above the current location; or

re-locating the new sub-dialogue from the current location in the thread to a second location in the thread responsive to determining that the new sub-dialogue is non-constructive, the second location below the current location.

3. The method of claim 1 , comprising determining that the new sub-dialogue is constructive based upon a determination that the new sub-dialogue at least one of:

comprises one or more points of agreement between two or more comments included in the new sub-dialogue;

comprises one or more points of disagreement between the two or more comments included in the new sub-dialogue; or

is on topic across the two or more comments included in the new sub-dialogue.

4. The method of claim 1 , comprising determining that the new sub-dialogue is non-constructive based upon a determination that the new sub-dialogue at least one of:

comprises a disconnect between two or more comments included in the new sub-dialogue;

comprises a lack of a communicative goal between the two or more comments included in the new sub-dialogue; or

is off topic across the two or more comments included in the new sub-dialogue.

5. The method of claim 1 , comprising determining that the new sub-dialogue is constructive based upon a determination that the new sub-dialogue comprises one or more points of agreement between two or more comments included in the new sub-dialogue.

6. The method of claim 1 , comprising determining that the new sub-dialogue is constructive based upon a determination that the new sub-dialogue comprises one or more points of disagreement between two or more comments included in the new sub-dialogue.

7. The method of claim 1 , comprising determining that the new sub-dialogue is constructive based upon a determination that the new sub-dialogue is on topic across two or more comments included in the new sub-dialogue.

8. The method of claim 1 , comprising determining that the new sub-dialogue is non-constructive based upon a determination that the new sub-dialogue comprises a disconnect between two or more comments included in the new sub-dialogue.

9. The method of claim 1 , comprising determining that the new sub-dialogue is non-constructive based upon a determination that the new sub-dialogue comprises a lack of a communicative goal between two or more comments included in the new sub-dialogue.

10. One or more non-transitory computer-readable media persistently storing a program, wherein the program, when executed, instructs a processor to perform operations comprising:

extract a plurality of sub-dialogues from a thread in a corpus from an online forum, wherein a sub-dialogue includes a plurality of comments and the thread includes at least one sub-dialogue;

obtain one or more sub-dialogue annotations associated with the sub-dialogue, wherein the one or more sub-dialogue annotations are associated with an annotation as to whether the sub-dialogue is constructive based upon one or more features of a first comment of the sub-dialogue and one or more features of a second comment of the sub-dialogue;

extract a plurality of features from the sub-dialogue, the plurality of features comprising a first set of sub-dialogue features and a second set of sub-dialogue features represented using a vector of values, wherein the extracting the plurality of features comprises:

determining comment features comprising a first comment feature associated with the first comment and a second comment feature associated with the second comment;

weighting the comment features to generate weighted comment features;

generating the first set of sub-dialogue features based upon the weighted comment features; and

generating the second set of sub-dialogue features based upon a window of chronologically ordered comments;

use the vector representing the plurality of features from the sub-dialogue and at least one sub-dialogue annotation associated with the sub-dialogue to train a classifier that determines whether a particular sub-dialogue is constructive;

obtain a new sub-dialogue from a thread currently displayed in the online forum and extract one or more features from the new sub-dialogue, the one or more features from the new sub-dialogue represented as a new vector;

input the new vector representing the one or more features extracted from the new sub-dialogue into the classifier and obtain a determination as to whether the new sub-dialogue is constructive, wherein the determination is performed using values of the one or more features of the new sub-dialogue included in the new vector; and

re-locate the new sub-dialogue in the thread based upon the determination.

11. The non-transitory computer-readable media of claim 10 , wherein the one or more sub-dialogue annotations are obtained from a human annotator.

12. The non-transitory computer-readable media of claim 10 , wherein the classifier uses logistic regression with L1 regularization.

13. The non-transitory computer-readable media of claim 10 , wherein the classifier uses convolutional neural networks.

14. The non-transitory computer-readable media of claim 10 , wherein the plurality of features are represented as sequential values in a vector.

15. The non-transitory computer-readable media of claim 10 , wherein the first set of sub-dialogue features are different than the second set of sub-dialogue features.

16. The non-transitory computer-readable media of claim 10 , wherein the sub-dialogue is sequentially modeled using conditional random fields.

17. The non-transitory computer-readable media of claim 16 , wherein the window is a window of three sequential comments.

18. The non-transitory computer-readable media of claim 10 , wherein the plurality of features include a measure of similarity to preceding comments in the sub-dialogue.

19. A method for performing a plurality of operations, comprising:

extracting a plurality of sub-dialogues from a thread in a corpus from an online forum, wherein a sub-dialogue includes a plurality of comments and the thread includes at least one sub-dialogue;

obtaining one or more sub-dialogue annotations associated with the sub-dialogue, wherein the one or more sub-dialogue annotations are associated with an annotation as to whether the sub-dialogue is constructive based upon one or more features of a first comment of the sub-dialogue and one or more features of a second comment of the sub-dialogue, wherein the one or more sub-dialogue annotations are received from an annotator;

extracting a plurality of features from the sub-dialogue, the plurality of features comprising a first set of sub-dialogue features and a second set of sub-dialogue features represented using a vector of values, wherein the extracting the plurality of features comprises:

determining comment features comprising a first comment feature associated with the first comment and a second comment feature associated with the second comment;

weighting the comment features to generate weighted comment features;

generating the first set of sub-dialogue features based upon the weighted comment features; and

generating the second set of sub-dialogue features based upon a window of chronologically ordered comments;

using the vector representing the plurality of features from the sub-dialogue and at least one sub-dialogue annotation associated with the sub-dialogue to train a classifier that determines whether a particular sub-dialogue is constructive;

obtaining a new sub-dialogue from a thread currently displayed in the online forum and extracting one or more features from the new sub-dialogue, the one or more features from the new sub-dialogue represented as a new vector;

inputting the new vector representing the one or more features extracted from the new sub-dialogue into the classifier and obtaining a determination as to whether the new sub-dialogue is constructive, wherein the sub-dialogue is sequentially modeled using conditional random fields and wherein the determination is performed using the values of the one or more features of the new sub-dialogue included in the new vector; and

re-locating the new sub-dialogue in the thread based upon the determination, wherein each operation of the plurality of operations is performed by one or more processors.

20. The method of claim 19 , wherein the classifier uses at least one of logistic regression with L1 regularization or convolutional neural networks.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 19, 2021
From: VERIZON MEDIA INC.
To: VERIZON PATENT AND LICENSING INC.
Reel/Frame 057453/0431 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 26, 2020
From: OATH INC.
To: VERIZON MEDIA INC.
Reel/Frame 054258/0635 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 2, 2018
From: YAHOO HOLDINGS, INC.
To: OATH INC.
Reel/Frame 045240/0310 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 23, 2017
From: YAHOO! INC.
To: YAHOO HOLDINGS, INC.
Reel/Frame 042963/0211 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 17, 2017
From: COHEN, COURTNEY NAPOLES; PAPPU, AASISH; TETREAULT, JOEL
To: YAHOO! INC.
Reel/Frame 040995/0212 →
Continuity (1)
Related Publication 20180203846A1 · Jul 19, 2018
Cited By (1)
US 12,505,293