从维基百科中提取故事情节

Extract story plots from Wikipedia

目标

我想从英文维基百科中提取故事情节。我只是在寻找一些(~100)并且情节的来源并不重要,例如小说、电子游戏等

我简单地尝试了一些没有用的东西,需要澄清我遗漏了什么以及我的努力方向。如果我可以避免手动解析并且可以只发出一个查询,那就太好了。

我尝试过的事情

1。 markriedl/WikiPlots

此存储库下载 pages-articles 转储,使用 wikiextractor, then scans each article and saves the contents of each section whose title contains "plot". This is a heavy-handed method of achieving what I want, but I gave it a try and failed. I had to run wikiextractor inside Docker because there are known issues with Windows, and then wikiextractor failed because there is a problem with the --html flag 对其进行扩展。

我可能可以让它工作,但需要付出很多努力,而且似乎有更好的方法。

2。维基数据

我使用了 Wikidata SPARQL service 并能够进行一些查询,但维基数据似乎只处理元数据和关系。具体来说,能获取到小说名,却无法获取到小说概要。

3。数据库百科

从理论上讲,DBpedia 应该正是我想要的,因为它是“结构化的维基百科”,但是他们没有像维基数据这样的很好的教程和示例,所以我不知道如何使用他们的 SPARQL endpoint. Google 也没有多大帮助,似乎暗示设置自己的图形数据库进行查询很常见,这超出了我的范围。

4。 Quarry

这是一项新的查询服务,可让您查询多个维基媒体数据库。听起来很有希望,但我又一次无法获取内容。

5。 PetScan 和标题下载

SO answer says I can query PetScan 获取维基百科标题,从 Wikipedia.org 下载 HTML,然后解析 HTML。这听起来好像可行,但 PetScan 看起来很吓人,这涉及 HTML 解析,我想尽可能避免。

没有直接的方法可以做到这一点,因为维基百科内容的结构并不像您希望的那样。我会使用 petscan 获取基于类别的文章列表,将它们输入到例如https://en.wikipedia.org/w/api.php?action=parse&page=The%20Hobbit&format=json&prop=sections iterate through the sections and if the 'line' attribute == 'Plot' then call e.g. https://en.wikipedia.org/w/api.php?action=parse&page=The%20Hobbit&format=json&prop=text&section=2 where 'section' = 'number' of the section titled plot. That gives you html and I can't figure out how to just get the plain text, but you might be able to make sense of https://www.mediawiki.org/w/api.php?action=help&modules=parse