Как узнать, содержит ли контент википедии из API полезную или неоднозначную статью? - PullRequest
10 голосов
/ 13 марта 2012

Я могу получить статью из Википедии в XML или любом другом формате.Но для термина я хочу сначала узнать, содержит ли возвращаемый текст полную статью или просто содержит неоднозначные термины, такие как введенный.

Так что «SEO» - это неоднозначный (или редиректный) термин, но как это узнать?из результатов?В то время как «Нью-Йорк» возвращает полную статью.

РЕДАКТИРОВАТЬ

Мой простой вопрос: у меня есть 400 названий городов, и я хочу, чтобы содержание в Википедии использовалось с помощью API иМне не нужны те страницы, которые не являются городскими статьями, но содержат только некоторые перенаправления или другие двусмысленные термины.Я хочу отказаться от них.

Ответы [ 3 ]

10 голосов
/ 10 ноября 2013

Вы можете проверить с помощью ppprop «Неоднозначность»:

http://en.wikipedia.org/w/api.php?action=query&prop=pageprops&ppprop=disambiguation&redirects&format=xml&titles=BNI

3 голосов
/ 13 марта 2012

Все страницы устранения неоднозначности находятся в точно названной категории Все страницы устранения неоднозначности , так что вы можете просто проверить эту категорию.

В качестве альтернативы, вы можете проверить наличие шаблона Disambiguation или одного из его вариантов и их перенаправлений.

1 голос
/ 13 марта 2012

Обновление: Страницы с устранением неоднозначности - это тип контента WikiPedia (установка), а не тип страницы в MediaWiki (программное обеспечение).Таким образом, API MediaWiki ничего не знает о том, что такое страницы устранения неоднозначности, и не имеет метода для их извлечения.

См. Это соответствующее обсуждение.

За исключением часто-но не всегда метод I, приведенный ниже, вам в основном придется извлечь тело страницы и проверить наличие маркера устранения неоднозначности.


Нижеприведенный иногда работает:

Когда я ищу SEO, я получаю: https://en.wikipedia.org/wiki/SEO

Вы имеете в виду страницы неоднозначности? как 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
        }
    }
}

Вы можете игратьвокруг этой @ Песочницы Википедии API.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...