在 python 中的 SPARQLwrapper 中使用 Levenstein 距离

如何解决在 python 中的 SPARQLwrapper 中使用 Levenstein 距离

我很想知道是否有任何方法可以在 SPARQL 查询中使用 Levenstein 距离。假设我只想选择 Levenstein 距离

def distance(s,t):
m,n = len(s),len(t)
d = [range(n + 1)]
d += [[i] for i in range(1,m + 1)]
for i in range(0,m):
    for j in range(0,n):
        cost = 1
        if s[i] == t[j]: cost = 0
        d[i + 1].append(min(d[i][j + 1] + 1,# deletion
                            d[i + 1][j] + 1,# insertion
                            d[i][j] + cost)  # substitution
                        )
return d[m][n]

def search_based_candidate(mention):
sparql = SPARQLWrapper("http://dbpedia.org/sparql")
sparql.setQuery("""
            PREFIX rdfs:<http://www.w3.org/2000/01/rdf-schema#>
            SELECT disTINCT ?candidate where {
             ?candidate rdfs:label ?itemLabel
              FILTER (LANG(?itemLabel)= 'en')
              FILTER (str("""+distance+""""(str(itemLabel),"""+mention+""")) < 3)
    
            }
         """)
sparql.setReturnFormat(JSON)
try:
    candidates = sparql.query().convert()
except:
    candidates = "no result"

return candidates

那么我如何在 sparqlwrapper 中连接自定义函数

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?