本体文本相似性插件上的向量嵌入

问题描述 投票:0回答:1

我是 Ontotext 新手。我了解本体文本的相似度指数。它创建索引数据的向量,我们可以对其进行搜索。有没有办法通过其他嵌入模型创建向量?请指教。

我已经根据数据创建了相似性索引,可以看到搜索结果不如 openaiembedding 模型向量准确。因此期待任何可能的方式将其他嵌入模型添加到 Ontotext 中的相似性索引创建中。

I am creating similarity index in ontotext using below query. But is there a way to specify the embedding model with this the index vector have to be created..?

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX ex: <http://example.org/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX : <http://www.ontotext.com/graphdb/similarity/>
PREFIX similarity-index: <http://www.ontotext.com/graphdb/similarity/instance/>
PREFIX pred: <http://www.ontotext.com/graphdb/similarity/psi/>
insert {
    similarity-index:PRODUCTS_INDEX pred:createPredicationIndex "-termweight idf" ;
        pred:subject ?subject .
        ?subject pred:predicate ?predicate .
        ?subject pred:object ?object .
} where {
    SELECT ?documentID (GROUP_CONCAT(?finalText; SEPARATOR=" ") AS ?combinedText)
    WHERE {
        # Ensure the result is of type PRODUCTS
        ?documentID rdf:type ex:PRODUCTS ;
                    ?p ?documentText .  
    
        # Filter for literals and resources (URI)
        FILTER(isLiteral(?documentText) || isURI(?documentText))  
        
        # If the object is a resource, fetch its label
        OPTIONAL {
            ?documentText rdfs:label ?label .
            FILTER(isLiteral(?label))
            BIND(?label AS ?finalText)
        }
    
        # If the object is not a resource, use the literal as the final text
        BIND(IF(isLiteral(?documentText), ?documentText, ?finalText) AS ?finalText)
    }
    GROUP BY ?documentID
}
embedding graphdb
1个回答
0
投票

GraphDB 的相似性索引利用 SemanticVectors 库,使用 RDF 图结构和元数据构建用于语义相似性搜索的向量表示。然而,它本身并不支持集成外部嵌入模型,例如 OpenAI 的嵌入,以在相似性索引框架内创建向量。

但在 GraphDB 10.8 版本中,我们引入了 https://graphdb.ontotext.com/documentation/10.8/talk-to-graph.html#talk-to-your-graph 功能,该功能可能对您的用例有用.

© www.soinside.com 2019 - 2024. All rights reserved.