【发布时间】:2023-01-11 05:15:15
【问题描述】:
我想使用知识库作为拼写正确。
例如,当我给知识库(如维基百科)一个词时,该知识库将该词与维基百科的所有词进行比较,最终输出将返回最相关的词或相同的词(如果不是不正确的话)。 例如,您可以将它与 SPARQL 服务一起使用(输入一个词并在所有知识库中搜索),但如何做到这一点? 我知道我可以用下面的源代码做到这一点,但它只在一页中搜索。我无法在任何地方找到类似的源代码来搜索所有知识库。
from rdflib import Graph,URIRef
from rdflib.namespace import RDFS, SKOS
g=Graph()
g.parse('https://www.wikidata.org/wiki/Special:EntityData/Q2831.ttl')
MJ=URIRef('http://www.wikidata.org/entity/Q2831')
for label in g.objects(MJ, SKOS.altLabel):
print(label.value, label.language)
【问题讨论】:
-
我不明白你到底要什么? SPARQL 中的文本搜索 SPARQL 中的模糊搜索?使用
CONTAINS函数可以完成一个简单的(尽管可能效率低下)字符串查找。更高效的搜索是使用非 SPARQL 标准的全文索引搜索,许多流行的三元组存储都支持这种机制。 -
对于维基数据,对于 DBpedia,它将是 MWAPI,对于 DBpedia,它将是
bif:contains- 但这些并不模糊,所以无论你的意思是“拼写正确”,它可能对你不起作用 -
@UninformedUser,您好,感谢您的回复和指导。实际上,你知道我想给程序一个词,它会在所有知识库中搜索该词,如果找不到该词,它会返回最相关的词。所以,它就像一个拼写校正器不是吗? for function contain 它是否在所有维基百科中搜索?它与 python 兼容吗?关于非 SAPRQL,如果您向我展示一个源代码示例,它的输入是一个词,并且它在知识库中进行搜索,我将不胜感激。
标签: python sparql spell-checking wikipedia-api knowledge-graph