Как получить доступ к Википедии из R?

Есть ли какой-либо пакет для R, который позволяет запрашивать Википедию (скорее всего, используя Mediawiki API), чтобы получить список доступных статей, относящихся к такому запросу, а также импортировать выбранные статьи для интеллектуального анализа текста?


person mjaniec    schedule 23.05.2011    source источник
comment
Вам может быть полезно следующее: ragtag.info/2011/ feb / 10 / processing-every-wikipedia-article   -  person James    schedule 23.05.2011


Ответы (3)


Используйте пакет RCurl для получения информации и пакеты XML или RJSONIO для анализа ответа.

Если вы находитесь за прокси, установите свои параметры.

opts <- list(
  proxy = "136.233.91.120", 
  proxyusername = "mydomain\\myusername", 
  proxypassword = 'whatever', 
  proxyport = 8080
)

Используйте функцию getForm для доступа к API.

search_example <- getForm(
  "http://en.wikipedia.org/w/api.php", 
  action  = "opensearch", 
  search  = "Te", 
  format  = "json",
  .opts   = opts
)

Анализируйте результаты.

fromJSON(rawToChar(search_example))
person Richie Cotton    schedule 23.05.2011
comment
У меня проблемы с использованием этого параметра для некоторых поисковых запросов, но я подозреваю, что это проблема в сети, в которой я нахожусь. Мне нужны добровольцы, чтобы проверить пример кода с разными строками в параметре search. - person Richie Cotton; 23.05.2011

Существует WikipediR, "оболочка API MediaWiki в R"

library(devtools)
install_github("Ironholds/WikipediR")
library(WikipediR)

Он включает в себя следующие функции:

ls("package:WikipediR")
 [1] "wiki_catpages"      "wiki_con"           "wiki_diff"          "wiki_page"         
 [5] "wiki_pagecats"      "wiki_recentchanges" "wiki_revision"      "wiki_timestamp"    
 [9] "wiki_usercontribs"  "wiki_userinfo"  

Здесь он используется для получения сведений о вкладе и сведений о пользователях для группы пользователей:

library(RCurl)
library(XML)

# scrape page to get usernames of users with highest numbers of edits
top_editors_page <- "http://en.wikipedia.org/wiki/Wikipedia:List_of_Wikipedians_by_number_of_edits"
top_editors_table <- readHTMLTable(top_editors_page)
very_top_editors <- as.character(top_editors_table[[3]][1:5,]$User)

# setup connection to wikimedia project 
con <- wiki_con("en", project = c("wikipedia"))

# connect to API and get last 50 edits per user
user_data <- lapply(very_top_editors,  function(i) wiki_usercontribs(con, i) )
# and get information about the users (registration date, gender, editcount, etc)
user_info <- lapply(very_top_editors,  function(i) wiki_userinfo(con, i) )
person Ben    schedule 04.06.2014

Новая прекрасная возможность - это пакет wikifacts (в CRAN):

library(wikifacts)
wiki_define('R (programming language)')
## R (programming language) 
## "R is a programming language and free software environment for statistical computing and graphics supported by the R Foundation for Statistical Computing. The R language is widely used among statisticians and data miners for developing statistical software and data analysis. Polls, data mining surveys, and studies of scholarly literature databases show substantial increases in popularity; as of April 2021, R ranks 16th in the TIOBE index, a measure of popularity of programming languages.The official R software environment is a GNU package.\nIt is written primarily in C, Fortran, and R itself (thus, it is partially self-hosting) and is freely available under the GNU General Public License. Pre-compiled executables are provided for various operating systems."
person vonjd    schedule 30.05.2021