亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何把詞庫中沒有的詞語加進擴展詞典中?

發布時間:2020-05-27 14:17:39 來源:億速云 閱讀:322 作者:鴿子 欄目:開發技術

擴展詞庫

對于某些特定行業的詞語在詞庫中沒有這樣的詞語,我們可以通過擴展詞庫來實現

比如凱悅這個詞語,在行業內我們希望這是以一個詞語的形式出現,但實際情況IK分詞器卻不如人意

GET /operation/_analyze
{
  "analyzer": "ik_smart",
  "text": "凱悅"
}

結果

{
  "tokens" : [
    {
      "token" : "凱",
      "start_offset" : 0,
      "end_offset" : 1,
      "type" : "CN_CHAR",
      "position" : 0
    },
    {
      "token" : "悅",
      "start_offset" : 1,
      "end_offset" : 2,
      "type" : "CN_CHAR",
      "position" : 1
    }
  ]
}

這樣我們就需要進行詞庫的擴展,具體方法如下

  • 進入容器

    docker exec -it es(容器名稱) /bin/bash
  • 進入ES的插件文件夾(plugins)

    cd plugins
  • 因為我們安裝插件的時候在該文件中創建了IK文件夾,具體安裝可以移步:https://blog.51cto.com/9844951/2472968

    cd ik/config
  • 創建新文件以存放擴展詞語

    vi new_wore.dic
  • 在IK分詞器的配置文件中加入該文件IKAnalyzer.cfg.xml,用于ES加載使用

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
    <properties>
    <comment>IK Analyzer 擴展配置</comment>
    <!--用戶可以在這里配置自己的擴展字典 -->
    <entry key="ext_dict"></entry>
     <!--用戶可以在這里配置自己的擴展停止詞字典-->
    <entry key="ext_stopwords"></entry>
    <!--用戶可以在這里配置遠程擴展字典 -->
    <!-- <entry key="remote_ext_dict">words_location</entry> -->
    <!--用戶可以在這里配置遠程擴展停止詞字典-->
    <!-- <entry key="remote_ext_stopwords">words_location</entry> -->
    </properties>

    上面內容是IK分詞器自帶的配置文件,我們只需要在擴展字典處配置進去新建擴展詞文件即可

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
    <properties>
    <comment>IK Analyzer 擴展配置</comment>
    <!--用戶可以在這里配置自己的擴展字典 -->
    <entry key="ext_dict">new_word.dic</entry>
     <!--用戶可以在這里配置自己的擴展停止詞字典-->
    <entry key="ext_stopwords"></entry>
    <!--用戶可以在這里配置遠程擴展字典 -->
    <!-- <entry key="remote_ext_dict">words_location</entry> -->
    <!--用戶可以在這里配置遠程擴展停止詞字典-->
    <!-- <entry key="remote_ext_stopwords">words_location</entry> -->
    </properties>
  • 修改好后保存文件、退出容器,重啟容器

  • 如果是集群環境將修改好的文件復制到宿主機后,再發送到不同的服務器,再傳遞到容器中

    具體docker操作命令可以移步:https://blog.51cto.com/9844951/2469349

    服務間拷貝資料命令

    scp IKAnalyzer.cfg.xml root@IP(要拷貝到目的服務器IP):/usr/local/

    當然,如果集群服務器間做了SSL后就不需要輸入密碼之類的

  • 文件一切就緒后重啟ES容器

重啟后我們可以驗證一下

GET /operation/_analyze
{
  "analyzer": "ik_smart",
  "text": "凱悅"
}

結果

{
  "tokens" : [
    {
      "token" : "凱悅",
      "start_offset" : 0,
      "end_offset" : 2,
      "type" : "CN_WORD",
      "position" : 0
    }
  ]
}

正是我們想要的結果

此處在通過凱悅二字搜索文檔時將會沒有任何結果,效果如下:

{
  "took" : 38,
  "timed_out" : false,
  "_shards" : {
    "total" : 3,
    "successful" : 3,
    "skipped" : 0,
    "failed" : 0
  },
  "hits" : {
    "total" : {
      "value" : 0,
      "relation" : "eq"
    },
    "max_score" : null,
    "hits" : [ ]
  }
}

hits沒有任何文檔

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

中西区| 内江市| 义乌市| 宜兰县| 新泰市| 平昌县| 靖宇县| 崇阳县| 龙山县| 霍邱县| 福州市| 兴山县| 乌拉特前旗| 石柱| 罗源县| 安西县| 泰宁县| 资阳市| 武乡县| 乌审旗| 永丰县| 夏津县| 湄潭县| 腾冲县| 西安市| 榕江县| 张掖市| 长顺县| 赤壁市| 修水县| 城市| 科尔| 大方县| 仙桃市| 海城市| 南和县| 浦北县| 锡林浩特市| 昆明市| 宁南县| 汪清县|