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

标签 wikipedia dbpedia wikipedia-api wikidata

目标

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

我简单地尝试了一些不起作用的方法,需要澄清我缺少什么以及应该在哪里努力。如果我可以避免手动解析并且只发出单个查询,那就太好了。

我尝试过的事情

1。 markriedl/WikiPlots

此存储库下载 pages-articles 转储,并使用 wikiextractor 扩展它。 ,然后扫描每篇文章并保存标题包含“plot”的每个部分的内容。这是实现我想要的目标的严厉方法,但我尝试过但失败了。我必须在 Docker 内运行 wikiextractor,因为 Windows 存在已知问题,然后 wikiextractor 失败,因为有 a problem with the --html flag .

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

2。维基数据

我使用了Wikidata SPARQL service并能够使一些查询正常工作,但维基数据似乎只处理元数据和关系。具体来说,我能够获得小说标题,但无法获得小说摘要。

3。数据库百科

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

4。 Quarry

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

5。 PetScan 和标题下载

这个SO answer说我可以查询PetScan要获取维基百科标题,请从 Wikipedia.org 下载 HTML,然后解析该 HTML。这听起来似乎可行,但 PetScan 看起来很吓人,而且这涉及到 HTML 解析,我想尽可能避免这种解析。

最佳答案

没有直接的方法可以做到这一点,因为维基百科内容的结构并不像您希望的那样。我会使用 petscan 获取基于类别的文章列表,将它们输入到例如https://en.wikipedia.org/w/api.php?action=parse&page=The%20Hobbit&format=json&prop=sections迭代这些部分,如果“line”属性==“Plot”,则调用例如https://en.wikipedia.org/w/api.php?action=parse&page=The%20Hobbit&format=json&prop=text&section=2其中 'section' = 标题为绘图的部分的 'number'。这给了你 html,我不知道如何获取纯文本,但你也许能够理解 https://www.mediawiki.org/w/api.php?action=help&modules=parse

关于wikipedia - 从维基百科中提取故事情节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71175922/

相关文章:

javascript - 使用 AJAX (XMLHttpRequest) 查询维基百科的 API

rdf - 使用SPARQL查询DBPedia公司信息

java - 在 java 或 scala 中使用 dbpedia spotlight

javascript - 如何使用 AJAX 或 fetch() 获取维基百科网页

python - 使用 BeautifulSoup 进行多处理来改进 Wikipedia 抓取

javascript - 获取特定 wiki 文章中的链接数组

r - 在 getURL 中设置 "an informative User-Agent string"

php - 使用 PHP cURL 从维基百科 API 中提取段落

mysql - 如何下载维基百科中某个类别内的所有页面?

sparql - 询问 SPARQL 资源是否存在