总结一篇维基百科文章

时间:2012-01-01 02:21:08

标签: python statistics machine-learning wikipedia summarization

我发现自己不得不一直学习新事物。我一直试图想办法加快学习新科目的过程。如果我能编写一个解析维基百科文章的程序并删除除最有价值信息之外的所有内容,我认为这可能很简洁。

我首先在PDFs上阅读维基百科的文章并提取前100个句子。我根据我的想法给出了每个句子得分。我最终创建了一个遵循以下格式的文件:

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

然后我解析了这个文件并试图找到各种函数,将每个句子与我给出的值相关联。我刚刚开始学习机器学习和统计学等等,所以我在这里做了很多摸索。这是我最近的尝试:https://github.com/JesseAldridge/Wikipedia-Summarizer/blob/master/plot_sentences.py

我尝试过一堆似乎根本没有产生任何相关性的东西 - 平均字长,文章中的位置等等。几乎唯一产生任何有用关系的东西就是长度字符串(更具体地说,计算小写字母'e'的数量似乎效果最好)。但这似乎有点蹩脚,因为很明显,较长的句子更有可能包含有用的信息。

有一次我以为我找到了一些有趣的功能,但是当我尝试删除异常值时(仅计算内部四分位数),结果却产生了更糟糕的结果,然后只为每个句子返回0。这让我想知道我可能做错了多少其他事情......我也想知道这是否是解决这个问题的好方法。

你认为我走在正确的轨道上吗?或者这只是一个傻瓜的差事?链接代码中是否存在明显缺陷?有没有人知道更好的方法来解决总结维基百科文章的问题?我宁愿有一个快速而肮脏的解决方案而不是完美的东西需要很长时间才能组合在一起。任何一般性建议也会受到欢迎。

2 个答案:

答案 0 :(得分:13)

考虑到你的问题更多地涉及研究活动而不是编程问题,你应该看一下科学文献。在这里,您将找到许多算法的已发布详细信息,这些算法可以完全按照您的要求执Google搜索“关键字摘要”会发现以下内容:

Single document Summarization based on Clustering Coefficient and Transitivity Analysis

Multi-document Summarization for Query Answering E-learning System

Intelligent Email: Aiding Users with AI

如果您阅读上述内容,然后按照其中包含的参考资料,您将找到大量丰富的信息。当然足以构建功能性应用程序。

答案 1 :(得分:1)

只是我的两分钱......

每当我在维基百科上浏览一个新主题时,我通常会执行&#34;广度优先&#34;搜索;在我扫描页面所连接的每个链接之前,我拒绝继续讨论另一个主题(这引入了一个我不熟悉的主题)。我阅读了每个段落的第一句,如果我在该文章中看到与原始主题相关的内容,我会重复这个过程。

如果我要为维基百科设计界面&#34;摘要&#34;,我会

  1. 始终打印整个介绍性段落。

  2. 在本文的其余部分,打印任何包含链接的句子。

    2a上。将任何以逗号分隔的链接列表打印为项目符号列表。

  3. 如果文章的链接是&#34;展开&#34;,请打印该文章的第一段。

  4. 如果扩展了该介绍性段落,请重复带有链接的句子列表。

  5. 此过程可能会无限期重复。

    我所说的是,总结维基百科的文章与总结杂志上的文章或博客上的帖子并不相同。爬行动作是通过维基百科快速学习入门概念的重要部分,我觉得它是最好的。通常情况下,文章的下半部分是citation needed标签开始弹出的地方,但是任何给定文章的前半部分都被社区认可。