IP Library Granted Patent US 8,626,767
Granted Patent B2
US 8,626,767 · App. 13/909,065 · Granted Jan 7, 2014

Computer-implemented system and method for identifying near duplicate messages

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 8,626,767
App. No.
13/909,065
Granted
Jan 7, 2014
Kind
B2
Abstract

A computer-implemented system and method for identifying near duplicate messages is provided. Messages each including a content body are grouped by conversation thread. One or more of the messages also includes an attachment. The messages for each conversation thread are sorted in order of message length. At least one of the messages is selected from one of the threads and the body of the selected message is compared with the body of one such shorter message in that thread. A determination is made that the body of the shorter message is included in the body of the selected message. Hash codes of the attachments for the selected message and the shorter message are compared. The shorter message is marked as a near duplicate message of the selected message when the hash codes of the attachments match.

Claims (62)

1. A computer-implemented system for identifying near duplicate messages, comprising:

a processor coupled to a memory to execute the following modules comprising:

a message grouping module to group by conversation thread, messages each comprising a content body, wherein one or more of the messages also includes an attachment;

a message sorting module to sort the messages for each conversation thread in order of message length;

a message selection module to select for one of the threads at least one of the messages and to compare the body of the selected message with the body of one such shorter message in that thread;

a determination module to determine that the body of the shorter message is included in the body of the selected message;

a message relationship module to determine a relationship between the selected message and the shorter message by marking the shorter message as a near duplicate of the selected message if the selected message and the shorter message do not have attachments and by comparing hash codes of the attachments for the selected message and the shorter message, if the selected message and the shorter message each have attachments, and marking the shorter message as a near duplicate message of the selected message when the hash codes of the attachments match.

2. A system according to claim 1 , further comprising:

a further comparison module to compare one of the other messages with each of the shorter messages in the thread;

a message determination module to determine that the body of one such shorter message is not included in the body of the other message; and

a comparison selection module to select a further one of the messages for comparison.

3. A system according to claim 1 , further comprising:

a further comparison module to compare one of the other messages with the shorter messages in the thread;

a message determination module to determine that the body of one such shorter message is included in the body of the other message;

a further comparison module to compare hash codes of the attachments for the other message and the one such shorter message;

a hash determination module to determine that the hash codes do not match; and

a comparison selection module to select a further one of the messages for comparison.

4. A system according to claim 1 , further comprising:

a hash generator to generate compound hash codes for each message with an attachment by generating a hash code based on at least part of a header associated with the message and the message body, by generating a hash code for the attachment, and by concatenating the hash codes for the message body and the attachment as the compound hash.

5. A system according to claim 4 , further comprising:

a hash sorting module to sort the messages by hash code into groupings of the messages with the same hash code; and

a unique message module to randomly select one of the messages in at least one of the groupings as a unique message.

6. A system according to claim 5 , further comprising:

a duplicate message marker to mark the remaining messages in the grouping as duplicate messages.

7. A system according to claim 1 , further comprising:

a log to record the shorter message and the near duplicate marking of the shorter message.

8. A system according to claim 1 , wherein the near duplicate message comprises content that is recursively included in the selected message.

9. A system according to claim 1 , further comprising:

a message inclusion module to identify the shorter message as being recursively included in the selected message based on a message separator and a subject line indicator.

10. A method implemented by a computer comprising at least one processor for identifying near duplicate messages, comprising:

grouping by conversation thread, messages each comprising a content body, wherein one or more of the messages also includes an attachment;

sorting the messages for each conversation thread in order of message length;

for one of the threads, selecting at least one of the messages and comparing the body of the selected message with the body of one such shorter message in that thread;

determining that the body of the shorter message is included in the body of the selected message;

determining a relationship between the selected message and the shorter message comprising at least one of:

if the selected message and the shorter message do not have attachments, marking the shorter message as a near duplicate of the selected message; and

if the selected message and the shorter message each have attachments, comparing hash codes of the attachments for the selected message and the shorter message and marking the shorter message as a near duplicate message of the selected message when the hash codes of the attachments match.

11. A method according to claim 10 , further comprising:

comparing one of the other messages with each of the shorter messages in the thread;

determining that the body of one such shorter message is not included in the body of the other message; and

selecting a further one of the messages for comparison.

12. A method according to claim 10 , further comprising:

comparing one of the other messages with the shorter messages in the thread;

determining that the body of one such shorter message is included in the body of the other message;

comparing hash codes of the attachments for the other message and the one such shorter message;

determining that the hash codes do not match; and

selecting a further one of the messages for comparison.

13. A method according to claim 10 , further comprising:

generating compound hash codes for each message with an attachment, comprising:

generating a hash code based on at least part of a header associated with the message and the message body;

generating a hash code for the attachment; and

concatenating the hash codes for the message body and the attachment as the compound hash.

14. A method according to claim 13 , further comprising:

sorting the messages by hash code into groupings of the messages with the same hash code; and

randomly selecting one of the messages in at least one of the groupings as a unique message.

15. A method according to claim 14 , further comprising:

marking the remaining messages in the grouping as duplicate messages.

16. A method according to claim 10 , further comprising:

recording the shorter message and the near duplicate marking of the shorter message in a log.

17. A method according to claim 10 , wherein the near duplicate message comprises content that is recursively included in the selected message.

18. A method according to claim 10 , further comprising:

identifying the shorter message as being recursively included in the selected message based on a message separator and a subject line indicator.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 14, 2019
From: KAWAI, KENJI; MCDONALD, DAVID T
To: ATTENEX CORPORATION
Reel/Frame 050707/0112 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 14, 2019
From: ATTENEX CORPORATION
To: FTI TECHNOLOGY LLC
Reel/Frame 050707/0215 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 15, 2018
From: FTI CONSULTING TECHNOLOGY LLC
To: NUIX NORTH AMERICA INC.
Reel/Frame 047237/0019 →
RELEASE OF SECURITY INTEREST IN PATENT RIGHTS AT REEL/FRAME 036031/0637 Recorded Sep 12, 2018
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: FTI CONSULTING TECHNOLOGY LLC
Reel/Frame 047060/0107 →
CHANGE OF NAME Recorded Apr 20, 2018
From: FTI TECHNOLOGY LLC
To: FTI CONSULTING TECHNOLOGY LLC
Reel/Frame 045785/0645 →
NOTICE OF GRANT OF SECURITY INTEREST IN PATENTS Recorded Jun 29, 2015
From: FTI CONSULTING, INC.; FTI CONSULTING TECHNOLOGY LLC; FTI CONSULTING TECHNOLOGY SOFTWARE CORP
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 036031/0637 →