gpt4 book ai didi

用于中缀搜索的 Azure 搜索 N gram Tokenizer 配置

转载 作者:行者123 更新时间:2023-12-02 23:09:02 25 4
gpt4 key购买 nike

我目前正在使用azure搜索,为了实现中缀搜索,例如在'redwine'中搜索'win',应该在搜索结果中找到redwine。在 azure 中,我的 N gram Tokenizer 配置如下

     "analyzers": [
{
"@odata.type": "#Microsoft.Azure.Search.CustomAnalyzer",
"name": "myCustomAnalyzer",
"tokenizer": "nGram",
"tokenFilters": [
"my_NGram"
],
"charFilters": []
}
]
"tokenFilters": [
{
"@odata.type": "#Microsoft.Azure.Search.NGramTokenFilterV2",
"name": "my_NGram",
"minGram": 2,
"maxGram": 3
}
]

现在,根据我的理解,上述配置应该返回给我 redwine 的 token 应该是 Re, Red, ed, Wi, Win, in, ine, ne 但当我检查使用生成的 token 时 azure 分析端点生成的 token 低于即只有最小克2个字符长度。此配置中可能缺少什么。

{
"@odata.context": "https://trialsearchresource.search.windows.net/$metadata#Microsoft.Azure.Search.V2021_04_30_Preview.AnalyzeResult",
"tokens": [
{
"token": "re",
"startOffset": 0,
"endOffset": 2,
"position": 1
},
{
"token": "ed",
"startOffset": 1,
"endOffset": 3,
"position": 3
},
{
"token": "dw",
"startOffset": 2,
"endOffset": 4,
"position": 5
},
{
"token": "wi",
"startOffset": 3,
"endOffset": 5,
"position": 7
},
{
"token": "in",
"startOffset": 4,
"endOffset": 6,
"position": 9
},
{
"token": "ne",
"startOffset": 5,
"endOffset": 7,
"position": 11
}
]
}

P.S 我正在使用 Azure 搜索 .Net Core SDK

最佳答案

您正在使用tokenFilters,并且您尝试根据上面的预期结果定义一个tokenizer,它允许您的最小克数为2,最大克数为3克。以下定义应该可以帮助您实现您正在寻找的目标:

 "analyzers": [
{
"@odata.type": "#Microsoft.Azure.Search.CustomAnalyzer",
"name": "myCustomAnalyzer",
"tokenizer": "myTokenizer",
"charFilters": ["myCharMapping"]
}
],
"tokenizers": [
{
"name":"myTokenizer",
"@odata.type":"#Microsoft.Azure.Search.NGramTokenizer",
"minGram": 2,
"maxGram": 3
}
],
"charFilters": [
{
"@odata.type": "#Microsoft.Azure.Search.MappingCharFilter",
"name": "myCharMapping",
"mappings": [
"\\u0020=>"
]
}
]

请注意,我添加了一个 charFilter 来删除空格,因为如果没有它,分词器也会将空格映射为克的一部分,因此对于“红酒”,会有克: “d”、“w”、“ed”、“wi”等等。

关于用于中缀搜索的 Azure 搜索 N gram Tokenizer 配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75092554/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com