总结维基百科文章

18 投票
2 回答
2584 浏览
提问于 2025-04-17 09:20

我发现自己总是需要学习新东西。我一直在想有没有什么方法可以加快学习新知识的速度。我觉得如果能写个程序来分析维基百科的文章,只保留最有价值的信息,那会很不错。

我开始的时候选择了关于PDF的维基百科文章,提取了前100个句子。然后我根据我认为每个句子的价值给它们打分。最后我创建了一个这样的文件:

<sentence>
<value>
<sentence>
<value>
etc.

接着我解析了这个文件,试图找到一些函数,把每个句子和我给它的分数关联起来。我刚开始学习机器学习和统计学,所以在这方面我还在摸索。这是我最新的尝试:https://github.com/JesseAldridge/Wikipedia-Summarizer/blob/master/plot_sentences.py

我尝试了很多方法,但似乎都没有什么关联性,比如平均单词长度、句子在文章中的位置等等。唯一产生一些有用关系的,似乎就是字符串的长度(更具体地说,计算小写字母'e'的数量效果最好)。但这听起来有点无聊,因为显然较长的句子更可能包含有用的信息。

有一次我觉得找到了有趣的函数,但当我尝试去掉异常值(只计算中间的四分位数)时,结果比简单地给每个句子打0还要差。这让我开始怀疑自己还有多少地方做错了……我也在想,这样的方法是否真的合适。

你觉得我在正确的方向上吗?还是这只是个徒劳的尝试?链接中的代码有没有明显的缺陷?有没有人知道更好的方法来总结维基百科的文章?我宁愿要一个简单粗暴的解决方案,也不想要一个完美但耗时的方案。任何一般性的建议我都很欢迎。

2 个回答

1

我想说几句个人看法...

每当我在维基百科上浏览一个新主题时,我通常会进行一种叫“广度优先”的搜索;我不会跳到下一个主题,直到我把页面上每一个链接都看过一遍(这些链接可能会引入我不熟悉的主题)。我会先读每段的第一句话,如果在文章中看到和原主题相关的内容,我就会重复这个过程。

如果让我设计一个维基百科的“摘要工具”,我会这样做:

  1. 始终显示整个引言段落。

  2. 对于文章的其余部分,显示任何包含链接的句子。

    2a. 将任何用逗号分隔的链接列表显示为项目符号列表。

  3. 如果链接的文章被“展开”,则显示该文章的第一段。

  4. 如果引言段落被展开,则重复显示包含链接的句子。

这个过程可以无限重复。

我想说的是,总结维基百科的文章和总结杂志文章或博客帖子是不同的。通过维基百科快速学习基础概念时,浏览链接的过程非常重要,我觉得这样做是最好的。通常,文章的后半部分会出现citation needed标签,但任何文章的前半部分被社区视为常识。

14

考虑到你的问题更像是研究活动,而不是编程问题,你可能应该看看科学文献。在这里,你会找到一些算法的详细信息,这些算法正好可以满足你的需求。你可以在谷歌上搜索“关键词摘要”,会找到以下内容:

基于聚类系数和传递性分析的单文档摘要

用于查询回答的多文档摘要电子学习系统

智能邮件:用人工智能帮助用户

如果你阅读了以上内容,并跟踪它们所包含的参考资料,你会发现大量的信息。这些信息足够你构建一个功能性的应用程序。

撰写回答