Моя проблема : я пишу программу NLP на python, и мне нужно получить идентификатор сущности для свойств и лексем.Итак, что я в основном хочу, например, если входными данными является слово / свойство «отец», я хочу, чтобы возвращаемое значение было «P22» (номер свойства для отца).Я уже знаю некоторые способы получения Q-номера (см. Ниже).
from requests import get
def get_qnumber(wikiarticle, wikisite):
resp = get('https://www.wikidata.org/w/api.php', {
'action': 'wbgetentities',
'titles': wikiarticle,
'sites': wikisite,
'props': '',
'format': 'json'
}).json()
return list(resp['entities'])[0]
print(get_qnumber(wikiarticle="Andromeda Galaxy", wikisite="enwiki"))
И я подумал, что получение P и L-чисел будет выглядеть примерно так, но поиск лексемы и номера свойства кажетсянамного сложнее.
Что я пробовал : Самая близкая вещь, которую я нашел, - это ручной поиск идентификационных номеров с помощью https://www.wikidata.org/wiki/Special:Search и добавление «P:» и «L: "в строке поиска.
Я также нашел некоторый код для SPARQL, но он был медленным, и я не знаю, как улучшить поиск, чтобы исключить несвязанные результаты поиска.
query = """
SELECT ?item
WHERE
{
?item rdfs:label "father"@en
}
"""
Я полный нуб по этому поводу и не нашел никакой информации Google.Так что я подхожу к этой вещи совершенно неправильно или я упускаю что-то действительно очевидное?