我正在做一个文档摘要NLP项目,所以我想从维基百科中提取Elon Musk的传记。我试图在维基百科库(API)的帮助下将其提取出来,
我首先尝试了页面标题(例如,Elon Musk),但它给我一个页面错误PageError: Page id "e on musk" does not match any pages. Try another id!您是否注意到它显示的页面id "e on musk",然后我尝试使用它的页面id编号(即Q317521),这将输出有关某些植物'Matthiola incana'的结果

以下是我的代码
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,我尝试了Alan turning,它不起作用,也尝试了Albert_Einstein,它显示了奇怪的输出,就像Elon Musk一样。
然而,它与Nikola Tesla,Michio Kaku,Narendra Modi等人一起工作,这表明我没有做错。
发布于 2021-05-12 20:21:08
wikipedia.page是一种垃圾。它使用维基百科的搜索建议API来转换它的title参数,然后在维基百科上查找它。搜索建议(类似于Google的“你的意思是...?”特性)完全不适合于此目的,它们是最后的努力,通过从常用单词的字典中查找由术语组成的最接近的(在edit distance方面)字符串,将零结果搜索转换为产生结果的搜索。这对于修复拼写错误很有效,绝对不能用于搜索结果,更不用说实际的文章标题了。
您可以使用auto_suggest=false禁用此行为,尽管wikipedia的一半错误报告都是关于此问题的,其中一些几乎可以追溯到解码,您可能想要寻找一个维护得更好的库。
https://stackoverflow.com/questions/67486332
复制相似问题