Я пытаюсь отменить инвертированный индекс для создания обычного текстового формата. Я редко использую Python, поэтому для создания алгоритма просто использую то, что помню несколько лет назад. Вот что я хочу распечатать:
Несмотря на растущий интерес к открытому доступу (ОД) к научной литературе,
существует неудовлетворенная потребность в крупномасштабных, современных и воспроизводимых
исследованиях, оценивающих распространенность и характеристики ОА. Мы удовлетворяем
эту потребность с помощью oaDOI, открытого онлайн-сервиса, который определяет статус открытого доступа
для 67 миллионов статей. Мы используем три выборки, каждая из 100 000
статей, для исследования ОД в трех группах: (1) все журнальные
статьи, которым присвоен DOI Crossref, (2) недавние журнальные статьи, проиндексированные
в Web of Science, и (3) статьи, просмотренные пользователями Unpaywall,
расширения браузера с открытым исходным кодом, которое позволяет пользователям находить статьи ОД с помощью
oaDOI. По нашим оценкам, по крайней мере 28% научной литературы относятся к открытому доступу
(всего 19 миллионов) и что эта доля растет,
особенно благодаря росту уровня Gold и Hybrid. Последний анализируемый год (2015 г.) также имеет самый высокий процент ОА (45%). Из-за
этого роста и того факта, что читатели непропорционально часто получают доступ
к новым статьям, мы обнаруживаем, что пользователи Unpaywall сталкиваются с открытым доступом довольно
часто: 47% статей, которые они просматривают, относятся к открытому доступу. Примечательно, что наиболее распространенным
механизмом открытого доступа является не «Золотой», «Зеленый» или «Гибридный» открытый доступ, а скорее
недообсуждаемая категория, которую мы называем «Бронзовым»: статьи, доступные для бесплатного чтения
на веб-сайте издателя без явной открытой лицензии. Мы также
исследуем влияние цитирования статей открытого доступа, подтверждая так называемое преимущество цитирования в открытом доступе: с учетом возраста и дисциплины статьи открытого доступа получают на 18 % больше цитирований, чем в среднем,
эффект обусловлен в первую очередь зеленым и гибридным открытым доступом. Мы поощряем дальнейшие
исследования с использованием бесплатного сервиса oaDOI в качестве способа информирования о политике и практике открытого доступа.
import requests
abstractInvertedIndex = requests.get(
'https://api.openalex.org/W2741809807'
).json()['abstract_inverted_index']
arrayAbstractIndex = [[k, abstractInvertedIndex[k]] for k in abstractInvertedIndex]
# Position of the word in the abstract
wordPos = 0
# The number position of the key value
wordNum = 0
abstract = ""
for x in arrayAbstractIndex:
if wordPos in arrayAbstractIndex[wordNum][1]:
abstract = abstract + str(arrayAbstractIndex[wordNum][0] + ' ')
wordPos = wordPos + 1
wordNum = wordNum + 1
print(abstract)
Несмотря на растущий интерес к открытому доступу (ОД) к научной литературе, существует неудовлетворенная потребность в крупномасштабных, актуальных и воспроизводимых исследованиях, оценивающих распространенность.
Я знаю, что это связано с тем, что слово «и» имеет несколько позиций в индексе, однако я не знаю, как настроить Python для циклов для прохождения каждого значения словаря и все элементы массива в ключе, чтобы обеспечить печать всего простого текста?
Есть предложения?
Я пытаюсь отменить инвертированный индекс для создания обычного текстового формата. Я редко использую Python, поэтому для создания алгоритма просто использую то, что помню несколько лет назад. Вот что я хочу распечатать:
Несмотря на растущий интерес к открытому доступу (ОД) к научной литературе, существует неудовлетворенная потребность в крупномасштабных, современных и воспроизводимых исследованиях, оценивающих распространенность и характеристики ОА. Мы удовлетворяем эту потребность с помощью oaDOI, открытого онлайн-сервиса, который определяет статус открытого доступа для 67 миллионов статей. Мы используем три выборки, каждая из 100 000 статей, для исследования ОД в трех группах: (1) все журнальные статьи, которым присвоен DOI Crossref, (2) недавние журнальные статьи, проиндексированные в Web of Science, и (3) статьи, просмотренные пользователями Unpaywall, расширения браузера с открытым исходным кодом, которое позволяет пользователям находить статьи ОД с помощью oaDOI. По нашим оценкам, по крайней мере 28% научной литературы относятся к открытому доступу (всего 19 миллионов) и что эта доля растет, особенно благодаря росту уровня Gold и Hybrid. Последний анализируемый год (2015 г.) также имеет самый высокий процент ОА (45%). Из-за этого роста и того факта, что читатели непропорционально часто получают доступ к новым статьям, мы обнаруживаем, что пользователи Unpaywall сталкиваются с открытым доступом довольно часто: 47% статей, которые они просматривают, относятся к открытому доступу. Примечательно, что наиболее распространенным механизмом открытого доступа является не «Золотой», «Зеленый» или «Гибридный» открытый доступ, а скорее недообсуждаемая категория, которую мы называем «Бронзовым»: статьи, доступные для бесплатного чтения на веб-сайте издателя без явной открытой лицензии. Мы также исследуем влияние цитирования статей открытого доступа, подтверждая так называемое преимущество цитирования в открытом доступе: с учетом возраста и дисциплины статьи открытого доступа получают на 18 % больше цитирований, чем в среднем, эффект обусловлен в первую очередь зеленым и гибридным открытым доступом. Мы поощряем дальнейшие исследования с использованием бесплатного сервиса oaDOI в качестве способа информирования о политике и практике открытого доступа.
Вот данные в инвертированном индексе (можно найти здесь, в разделе «abstract_inverted_index» -> https://api.openalex.org/W2741809807): [code]"abstract_inverted_index":{"Despite":[0],"growing":[1],"interest":[2],"in":[3,57,73,110,122],"Open":[4,201],"Access":[5],"(OA)":[6],"to":[7,54,252],"scholarly":[8,105],"literature,":[9],"there":[10],"is":[11,107,116,176],"an":[12,34,85,185,199,231],"unmet":[13],"need":[14,31],"for":[15,42,174,219],"large-scale,":[16],"up-to-date,":[17],"and":[18,24,77,112,124,144,221,237,256],"reproducible":[19],"studies":[20],"assessing":[21],"the":[22,104,134,145,170,195,206,213,245],"prevalence":[23],"characteristics":[25],"of":[26,51,75,83,103,137,141,163,209],"OA.":[27,168,239],"We":[28,46,97,203,240],"address":[29],"this":[30,114,142],"using":[32,95,244],"oaDOI,":[33],"open":[35],"online":[36],"service":[37],"that":[38,89,99,113,147,155],"determines":[39],"OA":[40,56,93,108,138,159,175,210,223,254],"status":[41],"67":[43],"million":[44],"articles.":[45],"use":[47],"three":[48,58],"samples,":[49],"each":[50],"100,000":[52],"articles,":[53,152,211],"investigate":[55],"populations:":[59],"(1)":[60],"all":[61],"journal":[62,70],"articles":[63,71,79,94,164,191,224],"assigned":[64],"a":[65,250],"Crossref":[66],"DOI,":[67],"(2)":[68],"recent":[69,128],"indexed":[72],"Web":[74],"Science,":[76],"(3)":[78],"viewed":[80],"by":[81,120,235],"users":[82,91,157],"Unpaywall,":[84],"open-source":[86],"browser":[87],"extension":[88],"lets":[90],"find":[92,154],"oaDOI.":[96],"estimate":[98],"at":[100],"least":[101],"28%":[102],"literature":[106],"(19M":[109],"total)":[111],"proportion":[115],"growing,":[117],"driven":[118,233],"particularly":[119],"growth":[121],"Gold":[123],"Hybrid.":[125],"The":[126],"most":[127,171],"year":[129],"analyzed":[130],"(2015)":[131],"also":[132,204],"has":[133],"highest":[135],"percentage":[136],"(45%).":[139],"Because":[140],"growth,":[143],"fact":[146],"readers":[148],"disproportionately":[149],"access":[150],"newer":[151],"we":[153,188],"Unpaywall":[156],"encounter":[158],"quite":[160],"frequently:":[161],"47%":[162],"they":[165],"view":[166],"are":[167],"Notably,":[169],"common":[172],"mechanism":[173],"not":[177],"Gold,":[178],"Green,":[179],"or":[180],"Hybrid":[181,238],"OA,":[182],"but":[183],"rather":[184],"under-discussed":[186],"category":[187],"dub":[189],"Bronze:":[190],"made":[192],"free-to-read":[193],"on":[194],"publisher":[196],"website,":[197],"without":[198],"explicit":[200],"license.":[202],"examine":[205],"citation":[207,216],"impact":[208],"corroborating":[212],"so-called":[214],"open-access":[215],"advantage:":[217],"accounting":[218],"age":[220],"discipline,":[222],"receive":[225],"18%":[226],"more":[227],"citations":[228],"than":[229],"average,":[230],"effect":[232],"primarily":[234],"Green":[236],"encourage":[241],"further":[242],"research":[243],"free":[246],"oaDOI":[247],"service,":[248],"as":[249],"way":[251],"inform":[253],"policy":[255],"practice.":[257]} [/code] Вот мой текущий код для декодирования инвертирования, однако он возвращает только [code] import requests
arrayAbstractIndex = [[k, abstractInvertedIndex[k]] for k in abstractInvertedIndex]
# Position of the word in the abstract wordPos = 0 # The number position of the key value wordNum = 0 abstract = ""
for x in arrayAbstractIndex: if wordPos in arrayAbstractIndex[wordNum][1]: abstract = abstract + str(arrayAbstractIndex[wordNum][0] + ' ') wordPos = wordPos + 1 wordNum = wordNum + 1
print(abstract) [/code]
Несмотря на растущий интерес к открытому доступу (ОД) к научной литературе, существует неудовлетворенная потребность в крупномасштабных, актуальных и воспроизводимых исследованиях, оценивающих распространенность.
Я знаю, что это связано с тем, что слово «и» имеет несколько позиций в индексе, однако я не знаю, как настроить Python для циклов для прохождения каждого значения словаря и все элементы массива в ключе, чтобы обеспечить печать всего простого текста? Есть предложения?