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/

相关文章:

wikipedia - 在 Wikipedia Dump 中查找和下载图像

python - 从字符串列表中提取 8 位数字

python-3.x - 从 Pandas 数据框中仅提取数字和字符串

python - 读取文本文件的下一行?

python-3.x - 使用 Python 和 PyDrive 在 Google Drive 上成功上传文件,但文件已损坏

python - 我们如何合并两个数据框而不丢失Python中的任何行

java - 从 Java/SQL 文件中提取 SQL 语句

python - 如何在 Oracle Linux 中安装 python3-dev?

api - 维基百科开放搜索过滤器搜索

python - 维基百科链接的排序列表