python-3.x - 如何解决在 python 中阅读时维基百科 API 页面错误?

标签 python-3.x wikipedia text-extraction data-extraction

我正在开发一个文档摘要 NLP 项目,因此我想从维基百科中提取埃隆·马斯克的简介。我尝试在维基百科库(API)的帮助下提取它,

我首先尝试使用页面标题(即,Elon Musk),但它给了我一个页面错误PageError:页面 id“e on musk”与任何页面都不匹配。尝试另一个 id! 您是否注意到它显示的页面 id “e on musk” 然后我尝试使用它的页面 id 编号(即 Q317521),它输出有关某些植物的结果 'Matthiola incana'

ELon Musk Wikipedia page

这是我的代码

import wikipedia

elon = wikipedia.page('Elon Musk').content
elon
# outputs
PageError: Page id "e on musk" does not match any pages. Try another id!


elon = wikipedia.page('Q317521').content
elon
# outputs (shorted)
Matthiola incana is a species of flowering plant in the cabbage family Brassicaceae. Common names include Brompton stock,

我尝试了艾伦转动,但不起作用,还尝试了阿尔伯特_爱因斯坦,它显示出奇怪的输出,就像埃隆·马斯克一样。

然而,它与尼古拉·特斯拉、加来道雄、纳伦德拉·莫迪等人合作,这表明我没有做错。

最佳答案

wikipedia.page 有点垃圾。它使用维基百科的搜索建议 API 来转换其 title 参数,然后再在维基百科上查找它。搜索建议(类似于 Google 的“您是说……吗?”功能)完全不适合此目的,它们是通过寻找最接近的(将零结果搜索更改为产生结果的搜索)的最后努力。就 edit distance 而言)由常用单词词典中的术语组成的字符串。这对于修复拼写错误非常有效,并且绝对不适合用于确实产生结果的搜索词,更不用说用于实际的文章标题。

您可以使用 auto_suggest=false 禁用此行为,尽管考虑到 wikipedia 的错误报告有一半。关于这个问题,有些几乎是解码的,您可能想寻找一个维护得更好的库。

关于python-3.x - 如何解决在 python 中阅读时维基百科 API 页面错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67486332/

相关文章:

python - 为什么我的 glob.glob 循环没有遍历文件夹中的所有文本文件?

sparql - 从维基数据获取类别的成员

c# - .net 有样板端口吗?

python - 裁剪图像后,如何找到新的边界框坐标?

sql - 如何在 SQLAlchemy > Presto 连接中指定 https 协议(protocol)?

python - 如何使用 MediaWiki API 获取子子类别中的文章数量

java - 使用java从pdf文件中提取文本时遇到的问题

python - 使用python通过正则表达式提取数据

python - 记录器找不到文件

api - 在本地安装维基百科及其 API