Как посчитать количество цитат / ссылок в википедии необработанного текста?

Я строю модель для классификации необработанного текста Википедии по качеству статьи (Википедия имеет набор данных из ~30000 статей ручной сортировки и соответствующих им уровней качества.). Тем не менее, я пытаюсь найти способ алгоритмически подсчитать количество ссылок, которые появляются на странице.

В качестве быстрого примера: вот выдержка из необработанной вики-страницы:

'[[Image:GD-FR-Paris-Louvre-Sculptures034.JPG|320px|thumb|Tomb of Philippe Pot, governor of [[Burgundy (region)|Burgundy]] under [[Louis XI]]|alt=A large sculpture of six life-sized black-cloaked men, their faces obscured by their hoods, carrying a slab upon which lies the supine effigy of a knight, with hands folded together in prayer. His head rests on a pillow, and his feet on a small reclining lion.]]\n[[File:Sejong tomb 1.jpg|thumb|320px|Korean tomb mound of King [[Sejong the Great]], d. 1450]]\n[[Image:Istanbul - Süleymaniye camii - Türbe di Roxellana - Foto G. Dall\'Orto 28-5-2006.jpg|thumb|320px|[[Türbe]] of [[Roxelana]] (d. 1558), [[Süleymaniye Mosque]], [[Istanbul]]]]\n\'\'\'Funerary art\'\'\' is any work of [[art]] forming, or placed in, a repository for the remains of the [[death|dead]]. [[Tomb]] is a general term for the repository, while [[grave goods]] are objects—other than the primary human remains—which have been placed inside.<ref>Hammond, 58–9 characterizes [[Dismemberment|disarticulated]] human skeletal remains packed in body bags and incorporated into [[Formative stage|Pre-Classic]] [[Mesoamerica]]n [[mass burial]]s (along with a set of primary remains) at Cuello, [[Belize]] as "human grave goods".</ref>

До сих пор я пришел к выводу, что я могу найти количество изображений, посчитав количество [[Image: вхождения. Я надеялся, что смогу сделать что-то подобное для ссылок. Фактически, после сравнения необработанных вики-страниц и соответствующих им живых страниц, я думаю, что смог определить, что </ref> соответствует конечной записи ссылки на вики-странице. -> Например: здесь вы можете видеть, что автор делает заявление в конце абзаца и ссылается на Hammond, 58–9 в <ref> {текст} </ref>

Если кто-то знаком с необработанными данными Wiki и может пролить свет на это, пожалуйста, дайте мне знать! Кроме того, если вы знаете лучший способ сделать это, пожалуйста, сообщите мне это тоже!

Спасибо заранее!


2 ответа

  1. ссылка не всегда содержит ссылку на источник. Иногда содержат уточняющие объяснения и пр.
  2. Вы должны считать не только <ref>...</ref>, но также шаблоны сносок.
  3. Если вам нужно количество уникальных ссылок, то вы должны исключить сгруппированные ссылки (ref с параметром name="xxx" или шаблоны автоматически сгруппированных сносок с одинаковым содержанием).

Извините за мой английский.

Подсчет тегов ссылок в вики-разметке не обязательно точен, так как ссылки могут быть использованы повторно, так что два </ref> будет отображаться только как одна ссылка в списке в конце. Существует API, который должен предоставлять список статей, но по какой-то причине он деактивирован, но BeautifulSoup делает это довольно просто. Я не проверял это, чтобы убедиться, что он считает все статьи правильно, но это работает:

from bs4 import BeautifulSoup
import requests

page=requests.get('https://en.wikipedia.org/wiki/Stack_Overflow')       
soup=BeautifulSoup(page.content,'html.parser') 
count = 0
for eachref in soup.find_all('span', attrs={'class':'reference-text'}):
    count = count + 1

print (count)
Другие вопросы по тегам