我想获得一个类别及其子类别下的所有文章名称.
我知道的选项:
incategory:"music"
,但我没有看到在XML中查看它的选项.请分享你的想法
我一直在寻找大约2个月的时间来找到一个只获得维基百科描述部分的脚本.(这是我正在建造的机器人,不适用于IRC.)也就是说,当我说的时候
/wiki bla bla bla
Run Code Online (Sandbox Code Playgroud)
它将转到维基百科页面bla bla bla
,获取以下内容,并将其返回到聊天室:
"Bla Bla Bla"是由Gigi D'Agostino制作的一首歌的名字.他把这首歌描述为"我写的一篇文章,思考所有谈话和谈话但没有说什么的人".着名但无意义的声乐样本取自英国乐队Stretch的歌曲"你为什么这样做"
这是我找到的最接近的,但它只获取URL:
import json
import urllib.request, urllib.parse
def google(searchfor):
query = urllib.parse.urlencode({'q': searchfor})
url = 'http://ajax.googleapis.com/ajax/services/search/web?v=1.0&%s' % query
search_response = urllib.request.urlopen(url)
search_results = search_response.read().decode("utf8")
results = json.loads(search_results)
data = results['responseData']
hits = data['results']
if len(hits) > 0:
return hits[0]['url']
else:
return "No results found."
Run Code Online (Sandbox Code Playgroud)
(Python 3.1)
如果我有一个页面的URL,我如何使用MediaWiki webservices获取右侧的信息框信息?
阅读许可证时我总是很困惑....
我想实现(说实话已经完成)一个商业iPad应用程序,它利用维基百科的内容.我被允许
在<some Wikipedia article>中有这个花哨的信息框.如何获得<this field and that>的值?
我有这个脚本在Python 3中制作:
response = simple_get("https://en.wikipedia.org/wiki/Mathematics")
result = {}
result["url"] = url
if response is not None:
html = BeautifulSoup(response, 'html.parser')
title = html.select("#firstHeading")[0].text
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,我可以从文章中获得标题,但我无法弄清楚如何从"数学(从希腊语μά..."到内容表中获取文本...
我发现自己不得不一直学习新事物.我一直试图想办法加快学习新科目的过程.如果我能编写一个解析维基百科文章的程序并除去最有价值的信息之外的所有内容,我认为这可能很简洁.
我首先阅读维基百科关于PDF的文章并提取前100个句子.我根据我的想法给出了每个句子得分.我最终创建了一个遵循以下格式的文件:
<sentence>
<value>
<sentence>
<value>
etc.
Run Code Online (Sandbox Code Playgroud)
然后我解析了这个文件并试图找到各种函数,将每个句子与我给出的值相关联.我刚刚开始学习机器学习和统计学等等,所以我在这里做了很多摸索.这是我最近的尝试:https: //github.com/JesseAldridge/Wikipedia-Summarizer/blob/master/plot_sentences.py.
我尝试了一堆似乎根本没有产生任何相关性的东西 - 平均字长,文章中的位置等等.几乎唯一产生任何有用关系的东西是字符串的长度(更具体地说,计算小写字母'e'的数量似乎效果最好).但这似乎有点蹩脚,因为很明显,较长的句子更有可能包含有用的信息.
有一次我以为我找到了一些有趣的功能,但是当我尝试删除异常值时(仅计算内部四分位数),结果却产生了更糟糕的结果,然后只为每个句子返回0.这让我想知道我可能做错了多少其他事情......我也想知道这是否是解决这个问题的好方法.
你觉得我走在正确的轨道上吗?或者这只是一个傻瓜的差事?链接代码中是否存在明显缺陷?有没有人知道更好的方法来解决总结维基百科文章的问题?我宁愿有一个快速而肮脏的解决方案而不是完美的东西需要很长时间才能组合在一起.任何一般性建议也将受到欢迎.
对于我的数据集的每个概念,我存储了相应的维基百科类别.例如,请考虑以下5个概念及其相应的维基百科类别.
['Category:Lipid metabolism disorders', 'Category:Medical conditions related to obesity']
['Category:Enzyme inhibitors', 'Category:Medicinal chemistry', 'Category:Metabolism']
['Category:Surgery stubs', 'Category:Surgical procedures and techniques']
['Category:1829 establishments in Australia', 'Category:Australian capital cities', 'Category:Metropolitan areas of Australia', 'Category:Perth, Western Australia', 'Category:Populated places established in 1829']
['Category:Climate', 'Category:Climatology', 'Category:Meteorological concepts']
如您所见,前三个概念属于医学领域(而其余两个术语不是医学术语).
更准确地说,我想把我的概念分为医学和非医学.但是,仅使用类别来划分概念是非常困难的.例如,尽管这两个概念enzyme inhibitor
并且bypass surgery
处于医学领域,但它们的类别彼此非常不同.
因此,我想知道是否有办法获得parent category
类别(例如,类别enzyme inhibitor
和bypass surgery
属于medical
父类别)
我目前正在使用pymediawiki
和pywikibot
.但是,我不仅限于这两个库,并且很乐意使用其他库来解决问题.
编辑
正如@IlmariKaronen所建议的,我也使用了categories of categories
,我得到的结果如下(靠近的小字体 …
我正在寻找使用人类可读数据增强应用程序中的几个"对象".为此,我见过Freebase,DBpedia和wikidata.org,目前我正在使用Freebase.不过,我不禁想知道我错过了什么.
那么:有什么区别?具体而言,覆盖差异是什么,以及为最常见的维基百科文章类型(例如"人物","地点","艺术家","专辑"等)提供的数据的差异是什么.
wikipedia ×10
mediawiki ×4
python ×3
dbpedia ×2
wikidata ×2
freebase ×1
html ×1
licensing ×1
nlp ×1
python-3.x ×1
sql ×1
statistics ×1
web-scraping ×1
web-services ×1
wiki ×1