Как посчитать количество цитат / ссылок в википедии необработанного текста?
Я строю модель для классификации необработанного текста Википедии по качеству статьи (Википедия имеет набор данных из ~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 ответа
- ссылка не всегда содержит ссылку на источник. Иногда содержат уточняющие объяснения и пр.
- Вы должны считать не только
<ref>...</ref>
, но также шаблоны сносок. - Если вам нужно количество уникальных ссылок, то вы должны исключить сгруппированные ссылки (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)