gpt4 book ai didi

solr filter 或 tokenizer 来组合单词

转载 作者:行者123 更新时间:2023-12-02 17:51:33 28 4
gpt4 key购买 nike

我正在尝试使用一系列过滤器实现合理的名称建议功能。目前我有

        <fieldType name="suggester" class="solr.TextField" positionIncrementGap="1" autoGeneratePhraseQueries="true">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1"
catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/>
<filter class="solr.ASCIIFoldingFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.ShingleFilterFactory" outputUnigramsIfNoShingles="true" maxShingleSize="2"
outputUnigrams="true"/>
<filter class="solr.EdgeNGramFilterFactory" minGramSize="3" maxGramSize="15"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1"
catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/>
<filter class="solr.ASCIIFoldingFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.ShingleFilterFactory" outputUnigramsIfNoShingles="true" maxShingleSize="2"
outputUnigrams="true"/>
<filter class="solr.EdgeNGramFilterFactory" minGramSize="3" maxGramSize="15"/>
</analyzer>
</fieldType>

这当然需要更多的调整,但我正在寻找这个问题的一个特定方面。对于输入字符串 mark daniel sievers ,上面的内容将匹配 marksievers 的查询,但我真正想要的是减少的冗长EdgeNGramFilter 因为它会导致过度匹配并使用可以以某种可配置方式组合单词的过滤器/分词器,例如对于输入 mark daniel rex sievers 创建标记 mark sievers, mark daniel sievers, mark rex sievers 等等。我没有对此应用任何特定的算法,但我想知道是否存在这样的野兽(几乎肯定存在)或者最好将我自己的算法编写为过滤器插件?

Solr 3.3.0

最佳答案

我会使用 ShingleFilter:http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters#solr.ShingleFilterFactory

例如:

<filter class="solr.ShingleFilterFactory" maxShingleSize="3" outputUnigrams="true"/>

输入:mark daniel sievers

产生的代币:mark, mark daniel, mark daniel sievers, daniel, daniel sievers, sievers

关于solr filter 或 tokenizer 来组合单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7561283/

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