IP Library Granted Patent US 7,747,642
Granted Patent B2
US 7,747,642 · App. 11/361,447 · Granted Jun 29, 2010

Matching engine for querying relevant documents

Assignee: Trend Micro Incorporated
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 7,747,642
App. No.
11/361,447
Granted
Jun 29, 2010
Kind
B2
Abstract

A system generates an output of documents having with a particular relevance range. The system receives an initial document comprising text, a list of documents for matching, each document comprising text, and a minimum substring match length. The system normalizes the text of the documents of the list of documents. The system searches common sub-strings between the text of the initial document and the text of each document of the list of documents. The system calculates a match percentage based on the search common sub-strings and outputs documents having a match percentage corresponding to a predetermined value. Also disclosed is a process for generating an output of documents within a particular relevance range.

Claims (66)

1. A computer-implemented method for generating an output of documents having a predetermined relevance, the method being performed by a relevance detection engine at a server and comprising:

receiving an initial document comprising text;

receiving a list of documents, each document comprising text, for matching;

receiving a minimum substring match length M;

normalizing the text of the initial document to form string str, and normalizing the text of the documents of the list of documents to form corresponding strings str k of lengths L k , where k=1 to m;

sorting suffixes of the string str with an array to record suffix string positions;

calculating a similarity SIM(k) between the string str and each string str k ;

searching for a maximal matching length V of the string str and a suffix S(str k ,P) during the calculation of the similarity SIM (k), wherein the suffix S(str k , P) is a suffix of str k starting at position P;

determining whether condition V>M is met;

if V>M is not met, then incrementing the position P by one;

if V>M is met, then adding V/L k to the similarity SIM(k) and incrementing the position P by V; and

outputting the similarity SIM(k) between the string str and each string str k .

2. The method of claim 1 , further comprising:

determining whether condition P<L k is met;

if P<L k is met, then looping back to search for the maximal matching length V of the string str and the suffix S(str k ,P); and

if P<L k is not met, then determining whether condition k<m is met.

3. The method of claim 2 , further comprising:

if k<m is met, then incrementing k by one and looping back to search for the maximal matching length V of the string str and the suffix S(str k ,P); and

if k<m is not met, then performing said outputting.

4. The method of claim 1 , wherein the list of documents comprises a plurality of documents.

5. A tangible computer readable medium structured to store instructions executable by a processor, the instructions when executed causing a processor to:

receive an initial document comprising text;

receive a list of documents, each document comprising text, for matching;

receive a minimum substring match length M;

normalize the text of the initial document to form string str and the text of the documents of the list of documents to form corresponding strings str k of length L k , where k=1 to m;

sort suffixes of the string str with an array to record suffix string positions;

calculate a similarity SIM(k) between the string str and each string str k ;

search for a maximal and a suffix S(str k ,P) during the calculation of the similarity SIM(k), wherein the suffix S(str k , P) is a suffix of str k starting at position P;

determine whether condition V>M is met;

if V>M is not met, then incrementing the position P by one; and

if V>M is met, then add V/Lk to the similarity SIM(k) and increment the position P by V; and

output the similarity SIM(k) between the string str and each string str k .

6. The tangible computer readable medium of claim 5 , further including instructions stored on the tangible medium that cause the processor to:

determine whether condition P<L k is met;

if P<L k is met, then loop back to search for the maximal matching length V of the string str and the suffix S(str k ,P); and

if P<L k is not met, then determine whether condition k<m is met.

7. The tangible computer readable medium of claim 6 , further including instructions stored on the tangible medium that cause the processor to:

if k<m is met, then increment k by one and looping back to search for the maximal matching length V of the string str and the suffix S(str k ,P); and

if k<m is not met, then perform said outputting.

8. The computer readable medium of claim 5 , wherein the list of documents comprises a plurality of documents.

9. An apparatus for determining relevant documents from a document depository, the apparatus comprising:

a data storage system configured to store computer-readable instructions and data;

a processor configured to execute computer-readable instructions; and

a network interface configured to communicatively interconnect the apparatus to a data network;

computer-readable instructions stored in the data storage system that are configured to receive an initial document comprising text;

computer-readable instructions stored in the data storage system that are configured to receive a list of documents, each document comprising text, for matching;

computer-readable instructions stored in the data storage system that are configured to receive a minimum substring match length M;

computer-readable instructions stored in the data storage system that are configured to normalize the text of the initial document to form string str of length L and the text of the documents of the list of documents to form corresponding strings str k of length L k , where k=1 to m;

computer-readable instructions stored in the data storage system that are configured to assign a prime number Q which is larger than L;

computer-readable instructions stored in the data storage system that are configured to allocate a hash table H with size Q;

computer-readable instructions stored in the data storage system that are configured to calculate a similarity SIM(k) between the string str and each string str k ;

computer-readable instructions stored in the data storage system that are configured to calculate a hash value h of a substring of the string str k which starts at position P and with a length M;

computer-readable instructions stored in the data storage system that are configured to determine whether H[h] is empty;

computer-readable instructions stored in the data storage system that are configured to increment P if H[h] is empty;

computer-readable instructions stored in the data storage system that are configured to determine a maximum matching length V of the string str and a suffix S(str k , P) during the calculation of the similarity SIM(k), wherein the suffix S(str k , P) is a suffix of str k starting at position P;

computer-readable instructions stored in the data storage system that are configured to determine whether condition V greater than or equal to M is met;

computer-readable instructions stored in the data storage system that are configured to increment the position P by one if V greater than or equal to M is not met;

computer-readable instructions stored in the data storage system that are configured to add V/L k to the similarity SIM(k) and increment the position P by V if V greater than or equal to M is met; and

computer-readable instructions stored in the data storage system that are configured to output the similarity SIM(k) between the string str and each string str k .

10. The apparatus of claim 9 , further comprising:

computer-readable instructions stored in the data storage system that are configured to determine whether condition P<L k −M is met;

computer-readable instructions stored in the data storage system that are configured to, then loop back to search for the maximal matching length V of the string str and the suffix S(str k ,P) if P<L k −M is met; and

computer-readable instructions stored in the data storage system that are configured to determine whether condition k<m is met if P<L k −M is not met.

11. The apparatus of claim 10 , further comprising:

computer-readable instructions stored in the data storage system that are configured to increment k by one and looping back to search for the maximal matching length V of the string str and the suffix S(str k ,P) if k<m is met; and

computer-readable instructions stored in the data storage system that are configured to perform said output said similarity S(k) if k<m is not met.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 8, 2011
From: TREND MICRO INCORPORATED
To: TREND MICRO INCORPORATED
Reel/Frame 026097/0538 →
MERGER Recorded Feb 28, 2011
From: TREND MICRO MOUNTAIN VIEW, INC.
To: TREND MICRO INCORPORATED
Reel/Frame 025874/0353 →
MERGER Recorded Feb 24, 2011
From: PROVILLA, INC.
To: TREND MICRO MOUNTAIN VIEW, INC.
Reel/Frame 025864/0076 →
CHANGE OF NAME Recorded Jan 25, 2007
From: DGATE TECHNOLOGIES, INC.
To: PROVILLA, INC.
Reel/Frame 018805/0398 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 24, 2006
From: REN, LIWEI; HUANG, SHU; HUANG, FEI; DONG, AIGUO; TAN, DEHUA
To: DGATE TECHNOLOGIES, INC.
Reel/Frame 017620/0105 →
Continuity (2)
Provisional Application 6067931400 · May 9, 2005
Related Publication 20060253439A1 · Nov 9, 2006