The Securities and Exchange Commission offers an html form for 
searching filing by keywords, 

SEC full text search

but the simple number of filings makes manual analysis impractical.
This situation occurs in many situations, including scientific
literature and various bioinformatics tools, and the only
real solution is to parse the ( variable ) html results. This is
an awful mess that, AFAIK, is not reliably fixed. However, I do
have one script and c++ code that seems to empirically work
most of the time ( as of today).
To give you some ideas, see some posts on various investor forums
such as these,

Toxic Mortgage Analysis
Related Mortgage Lists

This code download contains a lot of junk that doesn't work but the
important code is the script "secfulltext" and the c++ program sec_parse.

Build sec_parse ( see makefile and source code), the other programs that may
appear in the make file do not currently work. Change the path in secfulltext
script so it can find the sec_parse program. Run the script in a clean directory
as IT COULD GENERATE MANY TEMPORARY FILES OR DELETE EXISTING DATA. Some examples
are shown here:

secfulltext -search '"Countrywide Financial" AND Impac'
secfulltext -parse > cfc_imp_parsed

Searching generates a temporary file with the hits. This is the implicit source for the
subsequent parse command. The output file, in the above case cfc_imp_parsed,
is formatted as one-hit-per-line formated in such a way that fields can be selected
easily with awk ( multi-word fields concatenated with "_" in most cases).
A typical line may look like this,

12/11/2007 http://www.sec.gov/Archives/edgar/data/806085/000119312507262522/dfwp.htm LEHMAN_BROTHERS_HOLDINGS_INC_ FWP_ 806085 dup_info_deleted     /SIC - ]6211), LEHMAN BROTHERS HOLDINGS INC (CIK - ]806085 /SIC - ]6211)] Term sheet no. 1 to Prospectus dated May 30, 2006 Prospectus supplement dated May 30, 2006 Product supplement no. 150-I dated October 16, 2007 Registration Statement no. 333-134553 Dated December 10, 2007 Rule 433 Preliminary Terms and Conditions, December 10, 2007 Telephone: +1 212 526 0905 14.65%  

the fields are supposed to be ( when things work right ):
1) filing date,
2) URL to document,
3) filer,
4) form type
5) partially parsed CIK/SIK info
6) context information.

The first few fields should be fairly consistent but become less stable farther into
the string. This format lends itself to many helpful tasks if you are looking for
suspicious or interesting trends. 

One common example is to just rank the filers by frequency,

secfulltext -parse| awk '{print $3}' | sort | uniq -c | sort -g -r

or you can isolate the URLs and go get the source documents.