IP Library Granted Patent US 8,131,724
Granted Patent B2
US 8,131,724 · App. 12/643,662 · Granted Mar 6, 2012

System for similar document detection

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,131,724
App. No.
12/643,662
Granted
Mar 6, 2012
Kind
B2
Abstract

A document is compared to the documents in a document collection using a hash algorithm and collection statistics to detect if the document is similar to any of the documents in the document collection.

Claims (66)

1. A method for detecting similar documents comprising:

at least using one computer configured to implement said method including:

obtaining a document;

filtering the document to eliminate tokens and obtain a filtered document containing remaining tokens, the tokens being eliminated based on grammatical components;

sorting the filtered document to reorder the tokens according to a predetermined ranking;

generating a single tuple for the filtered document;

comparing the tuple for the filtered document with a document storage structure comprising a plurality of tuples, each tuple in the plurality of tuples representing one of a plurality of documents; and

determining if the tuple for the filtered document is clustered with another tuple in the document storage structure, thereby detecting if the document is similar to another document represented by the another tuple in the document storage structure.

2. A method as in claim 1 , wherein the filtering comprises retaining a token in the token stream as a retained token according to at least one token threshold; and

the determining the hash value for the filtered document comprises determining the hash value by processing individually each retained token in the token stream.

3. A method as in claim 1 , wherein the filtering comprises removing formatting from the document.

4. A method as claimed in claim 1 , wherein filtration is based on parts of speech.

5. A method as claimed in claim 1 , wherein filtration removes frequently occurring terms.

6. A method as claimed in claim 1 , wherein filtration removes infrequently occurring terms.

7. A method as claimed in claim 1 , wherein filtration eliminates words having an occurrence frequency that falls within a pre-determined frequency range.

8. A method as in claim 1 , wherein the document storage structure comprises a hash table and at least one tree.

9. A method as in claim 1 , wherein the comprises inserting the tuple into the document storage structure.

10. A method as in claim 1 , wherein the document storage structure comprises a tree, the tree comprising a plurality of branches, each bucket of the tree comprising at least one tuple of the plurality of tuples, and

wherein the determining if the tuple is clustered with another tuple comprises

determining if the tuple is co-located with another tuple in a bucket of the tree.

11. A method as in claim 1 , wherein the document storage structure comprises a tree.

12. A method as in claim 11 , wherein the tree comprises a binary tree.

13. A method as in claim 12 , wherein the binary tree comprises a binary balanced tree.

14. A method as in claim 1 , wherein the filtering uses collection statistics for filtering the document.

15. A method as in claim 14 , wherein the collection statistics pertain to the plurality of documents.

16. A method as claimed in claim 1 , wherein

the method further comprises determining a document identifier for the filtered document and a single hash value for the filtered document,

the tuple comprises the document identifier for the filtered document and the hash value for the filtered document, and

each tuple in the plurality of tuples comprising a document identifier and a hash value.

17. A method as in claim 16 , wherein the determining the hash value for the filtered document comprises using a hash algorithm to determine the hash value, the hash algorithm having an approximately even distribution of hash values.

18. A method as in claim 16 , wherein the determining the hash value for the filtered document comprises using a standard hash algorithm to determine the hash value.

19. A method as in claim 16 , wherein the determining the hash value for the filtered document comprises using a secure hash algorithm to determine the hash value.

20. A method as in claim 16 , wherein the determining the hash value for the filtered document comprises using hash algorithm SHA-1 to determine the hash value.

21. A method as in claim 16 , wherein the document storage structure comprises a hash table.

22. A method as in claim 16 , wherein the document storage structure comprises a hash table, the hash table comprising a plurality of bins, each bin of the hash table comprising at least one tuple of the plurality of tuples, and

wherein the determining if the tuple is clustered with another tuple comprises determining if the tuple is co-located with another tuple at a bin of the hash table.

23. A method as in claim 1 , wherein the filtering comprises parsing the document, and wherein the filtered document comprises a token stream, the token stream comprising a plurality of tokens.

24. A method as in claim 23 , wherein the filtering further comprises retaining a token in the token stream as a retained token according to at least one token threshold.

25. A method as in claim 24 , wherein the filtering further comprises reordering the retained tokens in the token stream to obtain a reordered token stream.

26. A method as in claim 24 , wherein the token threshold represents tokens that are frequently used in the document collection.

27. A method as in claim 26 , wherein frequently used is determined by inverted document frequency scores.

28. A method as in claim 24 , wherein the token threshold represents tokens that are infrequently used in the document collection.

29. A method as in claim 28 , wherein frequently used is determined by inverted document frequency scores.

30. A method as in claim 24 , wherein upper and lower bound token thresholds represent tokens that are within a range of frequency of use in the document collection.

31. A method as in claim 30 , wherein frequency of use is determined by inverted document frequency scores.

32. A method as in claim 23 , wherein the filtering comprises:

determining a score for each token in the token stream;

comparing the score for each token to a first token threshold; and

modifying the token stream by removing each token having a score not satisfying the first token threshold and retaining each token as a retained token having a score satisfying the first token threshold.

33. A method as in claim 32 , wherein the filtering further comprises:

comparing the score for each retained token to a second token threshold; and

modifying the token stream by removing each retained token having a score not satisfying the second token threshold and retaining each retained token having a score satisfying the second token threshold.

34. A method as in claim 23 , wherein the filtering further comprises removing from the token stream at least one token corresponding to a stop word.

35. A method as in claim 23 , wherein the filtering further comprises removing a token from the token stream if the token is a duplicate of another token in the token stream.

36. A method as in claim 23 , wherein the filtering further comprises removing a token from the token stream based on collection statistics and at least one token threshold.

37. A method as in claim 23 , wherein the filtering comprises removing at least one token from the token stream.

38. A non-transitory computer-readable medium having stored therein a program causing a processor to execute an operation including detecting similar documents comprising:

obtaining a document;

parsing the document to remove formatting and to obtain a token stream, the token stream comprising a plurality of tokens;

retaining only retained tokens in the token stream by using at least one token threshold;

reordering the retained tokens to obtain an arranged token stream;

processing in turn each retained token in the arranged token stream using a hash algorithm to obtain a single hash value for the document;

generating a document identifier for the document;

forming a single tuple for the document, the tuple comprising the document identifier for the document and the hash value for the document;

inserting the tuple for the document into a document storage tree, the document storage tree comprising a plurality of tuples, each tuple located at a bucket of the document storage tree, each tuple in the plurality of tuples representing one of a plurality of documents, each tuple in the plurality of tuples comprising a document identifier and a hash value; and

determining if the tuple for the document is co-located with another tuple at a same bucket in the document storage tree, thereby detecting if the document is similar to another document represented by the another tuple in the document storage tree.

Assignments (13)
RELEASE IN SECURITY INTEREST IN PATENT AT R/F 036420/0574 Recorded Aug 19, 2021
From: UBS AG, STAMFORD BRANCH, AS ADMINISTRATIVE AGENT
To: ALION SCIENCE AND TECHNOLOGY CORPORATION
Reel/Frame 057229/0923 →
FIRST LIEN GRANT OF SECURITY INTEREST IN PATENT RIGHTS Recorded Aug 21, 2015
From: ALION SCIENCE AND TECHNOLOGY CORPORATION
To: UBS AG, STAMFORD BRANCH, AS ADMINISTRATIVE AGENT
Reel/Frame 036420/0574 →
RELEASE OF SECURITY INTEREST IN PATENTS Recorded Aug 20, 2015
From: WILMINGTON TRUST, NATIONAL ASSOCIATION
To: ALION SCIENCE AND TECHNOLOGY CORPORATION
Reel/Frame 036400/0543 →
RELEASE OF SECURITY INTEREST IN PATENTS Recorded Aug 20, 2015
From: WILMINGTON TRUST, NATIONAL ASSOCIATION
To: ALION SCIENCE AND TECHNOLOGY CORPORATION
Reel/Frame 036400/0096 →
RELEASE OF SECURITY INTEREST IN PATENTS Recorded Aug 20, 2015
From: WILMINGTON TRUST, NATIONAL ASSOCIATION
To: ALION SCIENCE AND TECHNOLOGY CORPORATION
Reel/Frame 036400/0536 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE NAME PREVIOUSLY RECORDED ON REEL 033654 FRAME 0492. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNEE NAME IS WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT. Recorded Mar 16, 2015
From: ALION SCIENCE AND TECHNOLOGY CORPORATION
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 035208/0571 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE NAME PREVIOUSLY RECORDED ON REEL 033654 FRAME 0473. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNEE NAME IS WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT. Recorded Mar 16, 2015
From: ALION SCIENCE AND TECHNOLOGY CORPORATION
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 035208/0524 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE NAME PREVIOUSLY RECORDED ON REEL 033649 FRAME 0733. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNEE NAME IS WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT. Recorded Mar 16, 2015
From: ALION SCIENCE AND TECHNOLOGY CORPORATION
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 035208/0306 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Aug 28, 2014
From: ALION SCIENCE AND TECHNOLOGY CORPORATION
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 033654/0473 →
RELEASE OF SECURITY INTEREST Recorded Aug 28, 2014
From: WILMINGTON TRUST COMPANY, AS COLLATERAL AGENT
To: ALION SCIENCE AND TECHNOLOGY CORPORATION
Reel/Frame 033647/0327 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Aug 28, 2014
From: ALION SCIENCE AND TECHNOLOGY CORPORATION
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 033649/0733 →
THIRD LIEN PATENT SECURITY AGREEMENT Recorded Aug 28, 2014
From: ALION SCIENCE AND TECHNOLOGY CORPORATION
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 033654/0492 →
SECURITY INTEREST Recorded May 6, 2014
From: ALION SCIENCE AND TECHNOLOGY CORPORATION
To: WILMINGTON TRUST COMPANY, AS COLLATERAL AGENT
Reel/Frame 032836/0300 →