如何知道API中的维基百科内容是否包含有用的文章或含糊不清的文章

时间:2012-03-13 12:54:20

标签: wikipedia wikipedia-api

我可以用XML或任何其他格式获取维基百科文章。但是对于一个术语,我想首先知道返回的文本是否包含完整的文章,或者只是包含模糊的术语,如输入的文章。

所以“SEO”是一个含糊不清(或重定向)的术语,但如何从结果中了解这一点? 而“纽约”则返回完整的文章。

修改

我的简单问题是,我有400个城市名称,我想要使用API​​的维基百科内容,我不希望这些页面不是城市文章,只包含一些重定向或其他含糊不清的术语。我想丢弃那些。

3 个答案:

答案 0 :(得分:10)

答案 1 :(得分:3)

所有消除歧义的页面都在恰当命名的类别All disambiguation pages中,因此您只需检查该类别。

作为替代方案,您可以检查是否存在Disambiguation模板或one of its variants及其重定向。

答案 2 :(得分:1)

更新:消歧页面是WikiPedia(安装)的内容类型,而不是MediaWiki(软件)中的页面类型。因此,MediaWiki API不知道消歧页面是什么,也没有检索它们的方法。

请参阅此related discussion.

除了我在下面布置的经常但不总是的方法之外,你基本上必须检索页面主体,并检查是否存在消歧标记。


以下有时有效:

当我搜索搜索引擎优化时,我得到:https://en.wikipedia.org/wiki/SEO

您指的是disambiguation pages?,如https://en.wikipedia.org/wiki/SEO_%28disambiguation%29吗?

如果是,请检查消除歧义的标题。

例如,以下搜索:https://en.wikipedia.org/w/api.php?action=query&list=search&format=json&srsearch=SEO&srwhat=text&srlimit=2

yeilds

{
    "query": {
        "searchinfo": {
            "totalhits": 3507
        },
        "search": [
            {
                "ns": 0,
                "title": "Search engine optimization",
                "snippet": "Search engine optimization (<span class='searchmatch'>SEO<\/span>) is the process of improving the visibility of a website  or a web page  in search engine s via the \" <b>...<\/b> ",
                "size": 40468,
                "wordcount": 5269,
                "timestamp": "2012-03-11T11:43:26Z"
            },
            {
                "ns": 0,
                "title": "SEO (disambiguation)",
                "snippet": "<span class='searchmatch'>SEO<\/span>  or search engine optimization, the process of improving ranking in search engine results.  <span class='searchmatch'>SEO<\/span> may also refer to:  <span class='searchmatch'>Seo<\/span> (surname), a  <b>...<\/b> ",
                "size": 955,
                "wordcount": 103,
                "timestamp": "2012-02-22T12:51:20Z"
            }
        ]
    },
    "query-continue": {
        "search": {
            "sroffset": 2
        }
    }
}

你可以玩@ the Wikipedia API Sandbox.