Open Source Automated Text Summarization?
TrebleJunkie writes "I've spent some time recenting looking for open source projects dealing with Automated Text Summarization -- automatically generating detailed summaries from longer documents -- to no avail. I can find a lot of research papers and several commercial projects, but no open source code or projects? Does anyone out there know of any?"
is there a non-free program that does this?
Microsoft Word.
It doesn't do it all that well, from what I've seen, but it does it. It's called "AutoSummarize".
Win dain a lotica, en vai tu ri silota
Mac OS X’s has a built-in Summarize Service that works much better than the one in Word, IMO. Sorry I can't think of any open source ones.
"Reality is just a convenient measure of complexity" -Alvy Ray Smith
Check out ArchiText from YellowBrix.
Having been looking at their demos and so on, they have some great summary software.
It is most certainly NOT free, but perhaps by looking at the summaries generated and the documents pulled from, you could get some idea how to reverse-engineer the process.
The power of accurate observation is commonly called cynicism by those who have not got it. - G.B. Shaw
I know it's not open source, but have you tried the Summarize feature in Microsoft Word? I fed it the entire contents of the GNU website and it came back with:
Try it on man pages:
man awk | perl -ne 'split;foreach(@_){print $_." " if (rand()>.9)}'
and it still makes sense! :)
Lingua::EN::Summarize tested on the GPL v2:
USA Everyone is permitted to copy and distribute verbatim copies of this license document. Changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. The GNU General Public License is intended to guarantee your freedom to share and change free software. To make sure the software is free for all its users. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.). We are referring to freedom. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish).
It seems comparable to MS Word..
--TheOrangeSquid Is it any wonder things seem so awry? We swim in a sea of confusion and don't have to think to survive
From my research, there appears to be two primary methods of performing this kind of processing:
Of the two, statistical parsing is more popular these days because it doesn't require knowledgebase, expert system shells, grammar modeling and extensive dictionary. One of the primary method of determining the relative importance of words in a sentence is valence. The main challenge with natural language parsing and statistical technique is it depends on the training dataset. The more specific the dataset is, the better it will perform.
Statistical analysis can also use expert system shells and other AI technologies to improve accuracy, but it doesn't have to.
From my understanding (which is limited), it stems from a principle from linguistics. By counting the frequency of words or more specifically nouns, the program is able to rate each nouns importance. Once it got done, it could then look at the sentence that best describes the document by doing a comparison between the most importance words and the appearance of those words in the sentences. I remember this from my literature and linguistics classes. Congnitive science has also attempted to solve this problem, but it is very difficult.
In either case, if you dealing with well structured documents, your best bet is to grab the first 3 paragraphs assuming the author followed standard thesis/essay structure. If you're planning on summarizing new articles, it might not be that hard if the author followed the inverted pyramid, which many do not. One of the big tools of natural language parsing in the early days was prolog. It is still used a lot in academic settings for natural language processing. You're best bet is to get an intern to read and summarize for yo
There was a trend a few months to a year ago where members of some discussion groups were producing summaries of each week's traffic, but it proved to be so much thankless work that they have all quit by now. Every week these people would have to spend hours sifting through hundreds of messages and manually distilling it down to one hyperlinked document of perhaps a few hundred words, or a couple of pages long if printed. For the thanks they got in return -- and people did appreciate all the work, but you can't eat thanks -- it just wasn't worth it for any of them to keep doing these manual summaries. Even if they were being paid, it's not the sort of work most people want to be doing in the first place.
Finding a system that could programmatically produce a periodic summary -- even if a crude one -- of what was discussed on one of these groups would be a great tool. And no, I'm not willing to pay an assistant to summarize Usenet for me, and no I don't think it's something that any one assistant could do alone anyeay. But I would be willing to have, say, a cron job that on mondays gave me a summary of the Linux kernel lists, on Tuesdays gave me a report on what's up with Perl6, on Wednesdays told me what security issues have been news lately, on Thursdays ...you get the idea.
In order to be able to summarize these aggregates of documents, you'll have to start with smaller ones. You could play it in both directions: from the messages up level, you could reduce each posting to a sentence or less , while from a threads down level you could figure out what topics seemed to be hot and go for key ideas from messages within the main threads. Bonus points for a system that could recognize citations (if what poster A said was important enough for poster B to quote it, then maybe that quote should end up in the summary) or, Google-style, place emphasis on traffic pattens, linkages, etc.
As several people have noted, this is all a big, hard problem to solve, and there would be real uses for it if anyone could put it all together. Would we be willing to pay for such a service? I dunno, depends how good it is I guess. But if it really could reduce Usenet, web logs, mailing lists, and hey maybe even some normal web sites down into a small handful of roughly accurate documents that could be read over a cup of coffee each morning, then yeah I think that would be a valuable thing.
DO NOT LEAVE IT IS NOT REAL
It's not Open but it is scriptable, is not an additional cost, and is available on a Unix OS (MacOS X) Indeed through Apple's Open Scripting Architecture (OSA) one can use any number of scripting languages such as Python, Perl, and even JavaScript to interact with the application.
Feed it a document, tell it to summarize and back will come a generally useful précis. For folks directly on a Mac (MacOS 8.6 or newer incl. X) simply highlight a document or portion of text and select "Summarize" from the contextual menu.
I don't read ACs: If a post isn't worth so much as a nom de plume to its author then I wont bother either.