<object id="xwuag"></object>
      1. <tbody id="xwuag"><pre id="xwuag"><video id="xwuag"></video></pre></tbody>
        <progress id="xwuag"></progress>

        <nav id="xwuag"><big id="xwuag"><rt id="xwuag"></rt></big></nav>
        <em id="xwuag"></em>

        <nav id="xwuag"></nav><rp id="xwuag"></rp>
        <li id="xwuag"></li>
      2. <rp id="xwuag"></rp>
        <s id="xwuag"></s><th id="xwuag"><pre id="xwuag"><video id="xwuag"></video></pre></th>
      3. <nav id="xwuag"><center id="xwuag"></center></nav>
          <dd id="xwuag"><big id="xwuag"></big></dd>

          语音匹配编辑

          最后,在尝试任何其他匹配方法都无效后,我们可以求助于搜索发音相似的词, 即使他们的拼写不同。

          有一些用于将词转换成语音标识的算法。 Soundex 算法是这些算法的鼻祖, 而且大多数语音算法是 Soundex 的改进或者专业版本,例如 MetaphoneDouble Metaphone (扩展了除英语以外的其他语言的语音匹配), Caverphone 算法匹配了新西兰的名称, Beider-Morse 算法吸收了 Soundex 算法为了更好的匹配德语和依地语名称, Kölner Phonetik 为了更好的处理德语词汇。

          值得一提的是,语音算法是相当简陋的, 他们设计初衷针对的语言通常是英语或德语。这限制了他们的实用性。 不过,为了某些明确的目标,并与其他技术相结合,语音匹配能够作为一个有用的工具。

          首先,你需要从 https://www.elastic.co/guide/en/elasticsearch/plugins/current/analysis-phonetic.html 获取语音分析插件并在集群的每个节点安装, 然后重启每个节点。

          然后,您可以创建一个使用语音语汇单元过滤器的自定义分析器,并尝试下面的方法:

          PUT /my_index
          {
            "settings": {
              "analysis": {
                "filter": {
                  "dbl_metaphone": { 
                    "type":    "phonetic",
                    "encoder": "double_metaphone"
                  }
                },
                "analyzer": {
                  "dbl_metaphone": {
                    "tokenizer": "standard",
                    "filter":    "dbl_metaphone" 
                  }
                }
              }
            }
          }

          首先,配置一个自定义 phonetic 语汇单元过滤器并使用 double_metaphone 编码器。

          然后在自定义分析器中使用自定义语汇单元过滤器。

          现在我们可以通过 analyze API 来进行测试:

          GET /my_index/_analyze?analyzer=dbl_metaphone
          Smith Smythe

          每个 SmithSmythe 在同一位置产生两个语汇单元: SM0XMT 。 通过分析器播放 JohnJonJohnnie 将产生两个语汇单元 JNAN ,而 Jonathon 产生语汇单元 JN0NANTN

          语音分析器可以像任何其他分析器一样使用。 首先映射一个字段来使用它,然后索引一些数据:

          PUT /my_index/_mapping/my_type
          {
            "properties": {
              "name": {
                "type": "string",
                "fields": {
                  "phonetic": { 
                    "type":     "string",
                    "analyzer": "dbl_metaphone"
                  }
                }
              }
            }
          }
          
          PUT /my_index/my_type/1
          {
            "name": "John Smith"
          }
          
          PUT /my_index/my_type/2
          {
            "name": "Jonnie Smythe"
          }

          name.phonetic 字段使用自定义 dbl_metaphone 分析器。

          可以使用 match 查询来进行搜索:

          GET /my_index/my_type/_search
          {
            "query": {
              "match": {
                "name.phonetic": {
                  "query": "Jahnnie Smeeth",
                  "operator": "and"
                }
              }
            }
          }

          这个查询返回全部两个文档,演示了如何进行简陋的语音匹配。 用语音算法计算评分是没有价值的。 语音匹配的目的不是为了提高精度,而是要提高召回率--以扩展足够的范围来捕获可能匹配的文档。

          通常更有意义的使用语音算法是在检索到结果后,由另一台计算机进行消费和后续处理,而不是由人类用户直接使用。

          備份地址:http://www.lvesu.com/blog/es/phonetic-matching.html

          国产成人午夜福利r在线观看_欧美性受xxxx孕妇_白丝娇喘过膝袜爽短裙调教_jizz jizz xxxx