自动生成摘要(二):丰富和完善功能
一、取得编辑器里面的内容
在前面的程序当中,为了调试方便(没办法,JavaScript客房端程序的调试环境就很弱,再涉及到了xml简直能让人抓狂!),只好采用了“最小化”的方针。
而实际上,新闻发布系统当中是要使用编辑器的。生成摘要也是给编辑器里面的内容生成摘要。这里采用了编辑器自带的方法(函数):getHTML()。
所以修改了一行代码:
var n_content = Editor1.getHTML();
二、有一个问题:用不用 CDATA
在开发前面的功能之时,我想到过数据在xml存储,是不是需要用到CDATA类型,结果在测试的时候发现,从编辑器中取得的数据,再存储到xml中,竟然是经过编码的内容。
下面是代码:
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/1327ab569c1ae82736693a50b8e33378.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/0196c3df5ea9e936f21e9932cca91014.gif)
在alert弹出的对话框中显示:<content></content>之间的"<"和">"全都被替换成了“<”和“>”,也就是说,数据当中的html标签不会影响到了xml的结构。
接着,我在B页面当中,把接收到的数据存储到access数据库当中去,打开数据库再看,里面显然是"<p>"这样的内容。
下面是代码:
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
结论就是接收数据的B页面,自动把数据解码了。
所以,我决定,不采用CDATA类型处理数据了。一方面,是因为现有的功能,已经可以解决问题了。另一方面,则是考虑到程序的复杂性,因为越是复杂的程序就越可能出错。还是那句话,JavaScript客房端程序的调试环境就很弱,再涉及到了xml简直能让人抓狂!
三、一个关键:生成摘要。
现在的AI级别还很底,程序是无法理解文章内容的,只能通过某种方式,截取文章的一部分。再看看其它网站的摘要,大体上也是如此。
所以生成摘要的算法也就简单了:
1、过滤所有的html标签,将内容还原成文本。
2、截取文章开头的一定数量字符。
这些我都是通过一个过程(函数)完成的:
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
在B文件里添新的内容:
dim summary
summary = HtmlToText(content(i).text,30)
原来返回的完整的内容,现在将这句话注释掉
'Response.Write(content(i).text)
再添加一条返回摘要的语句:
Response.Write(summary)
这样的话生成摘要的工作就完成了。
四、在A页面上把摘要保存到文本域当中。
document.form1.n_summary.value = response;
根据最初和最终目的,<span id="SummaryResult"></span>,只是用来显示状态信息的,所以
原来的:
SummaryResult = response;
改成:
SummaryResult = "任务完成!";
结束,到这里,整个任务就全部完成了。还有一些其它的工作:如漂亮的界面、新闻内容和标题、摘要这些信息提交到数据库等等,就不在这里讨论了。
另外,我已经准备好了相关代码,但是在csdn的博客里不知道怎么上传。
如果谁有需要请发邮件过来吧,我的邮箱:xpnew@126.com