中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

佛山新網(wǎng)站制作怎么樣抖音優(yōu)化是什么意思

佛山新網(wǎng)站制作怎么樣,抖音優(yōu)化是什么意思,newspaper wordpress,計算機培訓線上一對一概述 分詞器的主要作用將用戶輸入的一段文本,按照一定邏輯,分析成多個詞語的一種工具 什么是分詞器 顧名思義,文本分析就是把全文本轉(zhuǎn)換成一系列單詞(term/token)的過程,也叫分詞。在 ES 中,Ana…

概述

分詞器的主要作用將用戶輸入的一段文本,按照一定邏輯,分析成多個詞語的一種工具

什么是分詞器

顧名思義,文本分析就是把全文本轉(zhuǎn)換成一系列單詞(term/token)的過程,也叫分詞。在 ES 中,Analysis
是通過分詞器(Analyzer) 來實現(xiàn)的,可使用 ES 內(nèi)置的分析器或者按需定制化分析器。

舉一個分詞簡單的例子:比如你輸入 Mastering Elasticsearch,會自動幫你分成兩個單詞,一個是 mastering,另一個是 elasticsearch,可以看出單詞也被轉(zhuǎn)化成了小寫的。

在這里插入圖片描述

分詞器的構(gòu)成

分詞器是專門處理分詞的組件,分詞器由以下三部分組成:

character filter

接收原字符流,通過添加、刪除或者替換操作改變原字符流

例如:去除文本中的html標簽,或者將羅馬數(shù)字轉(zhuǎn)換成阿拉伯數(shù)字等。一個字符過濾器可以有零個或者多個

tokenizer

簡單的說就是將一整段文本拆分成一個個的詞。

例如拆分英文,通過空格能將句子拆分成一個個的詞,但是對于中文來說,無法使用這種方式來實現(xiàn)。在一個分詞器中,有且只有一個tokenizeer

token filters

將切分的單詞添加、刪除或者改變

例如將所有英文單詞小寫,或者將英文中的停詞a刪除等,在token filters中,不允許將token(分出的詞)的position或者offset改變。同時,在一個分詞器中,可以有零個或者多個token filters.

分詞順序
在這里插入圖片描述
同時 Analyzer 三個部分也是有順序的,從圖中可以看出,從上到下依次經(jīng)過 Character Filters,Tokenizer 以及 Token Filters,這個順序比較好理解,一個文本進來肯定要先對文本數(shù)據(jù)進行處理,再去分詞,最后對分詞的結(jié)果進行過濾。

索引和搜索分詞

文本分詞會發(fā)生在兩個地方:

  • 創(chuàng)建索引:當索引文檔字符類型為text時,在建立索引時將會對該字段進行分詞。
  • 搜索:當對一個text類型的字段進行全文檢索時,會對用戶輸入的文本進行分詞。

配置分詞器

默認ES使用standard analyzer,如果默認的分詞器無法符合你的要求,可以自己配置

分詞器測試
可以通過_analyzerAPI來測試分詞的效果。

COPY# 過濾html 標簽
POST _analyze
{"tokenizer":"keyword", #原樣輸出"char_filter":["html_strip"], # 過濾html標簽"text":"<b>hello world<b>"  # 輸入的文本
}

在這里插入圖片描述

指定分詞器

使用地方

分詞器的使用地方有兩個:

  • 創(chuàng)建索引時
  • 進行搜索時

創(chuàng)建索引時指定分詞器

如果手動設置了分詞器,ES將按照下面順序來確定使用哪個分詞器:

  1. 先判斷字段是否有設置分詞器,如果有,則使用字段屬性上的分詞器設置
  2. 如果設置了analysis.analyzer.default,則使用該設置的分詞器
  3. 如果上面兩個都未設置,則使用默認的standard分詞器

字段指定分詞器

為title屬性指定分詞器

PUT my_index
{"mappings": {"properties": {"title":{"type":"text","analyzer": "whitespace"}}}
}

指定默認default_seach

COPYPUT my_index
{"settings": {"analysis": {"analyzer": {"default":{"type":"simple"},"default_seach":{"type":"whitespace"}}}}
}

內(nèi)置分詞器

es在索引文檔時,會通過各種類型 Analyzer 對text類型字段做分析,

不同的 Analyzer 會有不同的分詞結(jié)果,內(nèi)置的分詞器有以下幾種,基本上內(nèi)置的 Analyzer 包括 Language Analyzers 在內(nèi),對中文的分詞都不夠友好,中文分詞需要安裝其它 Analyzer

分析器描述分詞對象結(jié)果
standard標準分析器是默認的分析器,如果沒有指定,則使用該分析器。它提供了基于文法的標記化(基于 Unicode 文本分割算法,如 Unicode 標準附件 # 29所規(guī)定) ,并且對大多數(shù)語言都有效。The 2 QUICK Brown-Foxes jumped over the lazy dog’s bone.[ the, 2, quick, brown, foxes, jumped, over, the, lazy, dog’s, bone ]
simple簡單分析器將文本分解為任何非字母字符的標記,如數(shù)字、空格、連字符和撇號、放棄非字母字符,并將大寫字母更改為小寫字母。The 2 QUICK Brown-Foxes jumped over the lazy dog’s bone.[ the, quick, brown, foxes, jumped, over, the, lazy, dog, s, bone ]
whitespace空格分析器在遇到空白字符時將文本分解為術(shù)語The 2 QUICK Brown-Foxes jumped over the lazy dog’s bone.[ The, 2, QUICK, Brown-Foxes, jumped, over, the, lazy, dog’s, bone. ]
stop停止分析器與簡單分析器相同,但增加了刪除停止字的支持。默認使用的是 english 停止詞。The 2 QUICK Brown-Foxes jumped over the lazy dog’s bone.[ quick, brown, foxes, jumped, over, lazy, dog, s, bone ]
keyword不分詞,把整個字段當做一個整體返回The 2 QUICK Brown-Foxes jumped over the lazy dog’s bone.[The 2 QUICK Brown-Foxes jumped over the lazy dog’s bone.]
pattern模式分析器使用正則表達式將文本拆分為術(shù)語。正則表達式應該匹配令牌分隔符,而不是令牌本身。正則表達式默認為 w+ (或所有非單詞字符)。The 2 QUICK Brown-Foxes jumped over the lazy dog’s bone.[ the, 2, quick, brown, foxes, jumped, over, the, lazy, dog, s, bone ]
多種西語系 arabic, armenian, basque, bengali, brazilian, bulgarian, catalan, cjk, czech, danish, dutch, english等等一組旨在分析特定語言文本的分析程序。

在這里插入圖片描述

分詞器 _analyze 的使用

#standard
GET _analyze
{"analyzer": "standard","text": "2 running Quick brown-foxes leap over lazy dogs in the summer evening."
}#simpe
GET _analyze
{"analyzer": "simple","text": "2 running Quick brown-foxes leap over lazy dogs in the summer evening."
}GET _analyze
{"analyzer": "stop","text": "2 running Quick brown-foxes leap over lazy dogs in the summer evening."
}#stop
GET _analyze
{"analyzer": "whitespace","text": "2 running Quick brown-foxes leap over lazy dogs in the summer evening."
}#keyword
GET _analyze
{"analyzer": "keyword","text": "2 running Quick brown-foxes leap over lazy dogs in the summer evening."
}GET _analyze
{"analyzer": "pattern","text": "2 running Quick brown-foxes leap over lazy dogs in the summer evening."
}#english
GET _analyze
{"analyzer": "english","text": "2 running Quick brown-foxes leap over lazy dogs in the summer evening."
}POST _analyze
{"analyzer": "icu_analyzer","text": "他說的確實在理”"
}POST _analyze
{"analyzer": "standard","text": "他說的確實在理”"
}POST _analyze
{"analyzer": "icu_analyzer","text": "這個蘋果不大好吃"
}

在這里插入圖片描述
可以看出是按照空格、非字母的方式對輸入的文本進行了轉(zhuǎn)換,比如對 Java 做了轉(zhuǎn)小寫,對一些停用詞也沒有去掉,比如 in,其中 token 為分詞結(jié)果;start_offset 為起始偏移;end_offset 為結(jié)束偏移;position 為分詞位置。

使用分析器進行分詞
課程Demo

#Simple Analyzer – 按照非字母切分(符號被過濾),小寫處理
#Stop Analyzer – 小寫處理,停用詞過濾(the,a,is)
#Whitespace Analyzer – 按照空格切分,不轉(zhuǎn)小寫
#Keyword Analyzer – 不分詞,直接將輸入當作輸出
#Patter Analyzer – 正則表達式,默認 \W+ (非字符分隔)
#Language – 提供了30多種常見語言的分詞器
#2 running Quick brown-foxes leap over lazy dogs in the summer evening

其他常用分詞器

電子郵件分詞器(UAX URL Email Tokenizer)

此分詞器主要是針對email和url地址進行關(guān)鍵內(nèi)容的標記。

GET _analyze
{"text":"Email me at john.smith@global-international.com","tokenizer": "uax_url_email"
}

在這里插入圖片描述

經(jīng)典分詞器(Classic Tokenizer)

可對首字母縮寫詞,公司名稱,電子郵件地址和互聯(lián)網(wǎng)主機名進行特殊處理,但是,這些規(guī)則并不總是有效,并且此關(guān)鍵詞生成器不適用于英語以外的大多數(shù)其他語言

特點

  • 它最多將標點符號拆分為單詞,刪除標點符號,但是,不帶空格的點被認為是查詢關(guān)鍵詞的一部分
  • 此分詞器可以將郵件地址和URL地址識別為查詢的term(詞條)
GET _analyze
{"text":"The 2 QUICK Brown-Foxes jumped over the lazy dog's bone.","analyzer": "classic"
}

在這里插入圖片描述

路徑分詞器(Path Tokenizer)

可以對文件系統(tǒng)的路徑樣式的請求進行拆分,返回被拆分各個層級內(nèi)容。

GET _analyze
{"text":"/one/two/three","tokenizer":"path_hierarchy"
}

在這里插入圖片描述

自定義分詞器

當內(nèi)置的分詞器無法滿足需求時,可以創(chuàng)建custom類型的分詞器。

配置參數(shù)

參數(shù)描述
tokenizer內(nèi)置或定制的tokenizer.(必須)
char_filter內(nèi)置或定制的char_filter(非必須)
filter內(nèi)置或定制的token filter(非必須)
position_increment_gap當值為文本數(shù)組時,設置改值會在文本的中間插入假空隙。設置該屬性,對與后面的查詢會有影響。默認該值為100.
  • 創(chuàng)建索引
    上面的示例中定義了一個名為my_custom_analyzer的分詞器

該分詞器的type為custom,tokenizer為standard,char_filter為hmtl_strip,filter定義了兩個分別為:lowercase和asciifolding

PUT my_index
{"settings": {"analysis": {"analyzer": {"my_custom_analyzer":{"type":"custom","tokenizer":"standard","char_filter":["html_strip"],"filter":["lowercase","asciifolding"]}}}}
}
  • 測試使用自定義分詞
POST my_index/_analyze
{"text": "Is this <b>déjà vu</b>?","analyzer": "my_custom_analyzer"
}

在這里插入圖片描述

中文分詞器

IKAnalyzer

IKAnalyzer是一個開源的,基于java的語言開發(fā)的輕量級的中文分詞工具包

從2006年12月推出1.0版開始,IKAnalyzer已經(jīng)推出了3個大版本,在 2012 版本中,IK 實現(xiàn)了簡單的分詞歧義排除算法,標志著 IK 分詞器從單純的詞典分詞向模擬語義分詞衍化

使用IK分詞器

IK提供了兩個分詞算法:

  • ik_smart:最少切分。
  • ik_max_word:最細粒度劃分。
ik_smart 分詞算法

使用案例
原始內(nèi)容

GET _analyze
{"analyzer": "ik_smart","text": "傳智教育的教學質(zhì)量是杠杠的"
}

在這里插入圖片描述

ik_max_word 分詞算法
GET _analyze
{"analyzer": "ik_max_word","text": "傳智教育的教學質(zhì)量是杠杠的"
}

在這里插入圖片描述

自定義詞庫

我們在使用IK分詞器時會發(fā)現(xiàn)其實有時候分詞的效果也并不是我們所期待的

問題描述
例如我們輸入“傳智教育的教學質(zhì)量是杠杠的”,但是分詞器會把“傳智教育”進行拆開,分為了“傳”,“智”,“教育”,但我們希望的是“傳智教育”可以不被拆開。
在這里插入圖片描述

解決方案

對于以上的問題,我們只需要將自己要保留的詞,加到我們的分詞器的字典中即可

編輯字典內(nèi)容

進入elasticsearch目錄plugins/ik/config中,創(chuàng)建我們自己的字典文件yixin.dic,并添加內(nèi)容:

cd plugins/ik/config
echo "傳智教育" > custom.dic

擴展字典
進入我們的elasticsearch目錄 :plugins/ik/config,打開IKAnalyzer.cfg.xml文件,進行如下配置:

vi IKAnalyzer.cfg.xml
#增加如下內(nèi)容
<entry key="ext_dict">custom.dic</entry>

再次測試
重啟ElasticSearch,再次使用kibana測試

GET _analyze
{"analyzer": "ik_max_word","text": "傳智教育的教學質(zhì)量是杠杠的"
}

可以發(fā)現(xiàn),現(xiàn)在我們的詞匯”傳智教育”就不會被拆開了,達到我們想要的效果了
在這里插入圖片描述

分詞的可配置項

standard 分詞器可配置項

選項描述
max_token_length最大令牌長度。如果看到令牌超過此長度,則將其max_token_length間隔分割。默認為255。
stopwords預定義的停用詞列表,例如english或包含停用詞列表的數(shù)組。默認為none。
stopwords_path包含停用詞的文件的路徑。
COPY{"settings": {"analysis": {"analyzer": {"my_english_analyzer": {"type": "standard","max_token_length": 5,"stopwords": "_english_"}}}}
}

正則分詞器(Pattern Tokenizer) 可配置選項

可配置項
正則分詞器有以下的選項

選項描述

|pattern |正則表達式|
|flags |正則表達式標識|
|lowercase| 是否使用小寫詞匯|
|stopwords |停止詞的列表。|
|stopwords_path |定義停止詞文件的路徑。|

COPY{"settings": {"analysis": {"analyzer": {"my_email_analyzer": {"type": "pattern","pattern": "\\W|_","lowercase": true}}}}
}
路徑分詞器(Path Tokenizer)可配置選項
選項描述
delimiter用作路徑分隔符的字符
replacement用于定界符的可選替換字符
buffer_size單次讀取到術(shù)語緩沖區(qū)中的字符數(shù)。默認為1024。術(shù)語緩沖區(qū)將以該大小增長,直到所有文本都被消耗完為止。建議不要更改此設置。
reverse正向還是反向獲取關(guān)鍵詞
skip要忽略的內(nèi)容
COPY{"settings": {"analysis": {"analyzer": {"my_analyzer": {"tokenizer": "my_tokenizer"}},"tokenizer": {"my_tokenizer": {"type": "path_hierarchy","delimiter": "-","replacement": "/","skip": 2}}}}
}
語言分詞(Language Analyzer)

ES 為不同國家語言的輸入提供了 Language Analyzer 分詞器,在里面可以指定不同的語言

http://www.risenshineclean.com/news/45383.html

相關(guān)文章:

  • 安徽專業(yè)網(wǎng)站建設大全推薦寧波seo排名費用
  • 公司網(wǎng)站服務器托管東莞網(wǎng)站排名推廣
  • 企業(yè)網(wǎng)站哪里可以做江西seo推廣方案
  • 煙臺市委網(wǎng)站企業(yè)網(wǎng)站的推廣方法有哪些
  • 酒店為什么做網(wǎng)站軟件外包公司有前途嗎
  • 網(wǎng)站安全檢測軟件網(wǎng)絡銷售公司怎么運作
  • 鄭州易站通網(wǎng)站公司企業(yè)培訓的目的和意義
  • 專業(yè)網(wǎng)站制作團隊專業(yè)網(wǎng)站制作團隊友博國際個人中心登錄
  • 源碼站搜索引擎優(yōu)化的基本原理
  • 做眾籌網(wǎng)站需要什么條件以服務營銷出名的企業(yè)
  • 鄭州注冊公司網(wǎng)站視頻seo優(yōu)化教程
  • 德州極速網(wǎng)站建設百家號專業(yè)培訓心得體會
  • 覺 網(wǎng)站廣州seo優(yōu)化公司
  • wordpress取消置頂seo優(yōu)化公司排名
  • wap手機網(wǎng)站建設制作開發(fā)深圳競價排名網(wǎng)絡推廣
  • 廣州番禺建網(wǎng)站什么是seo關(guān)鍵詞優(yōu)化
  • 資源交易網(wǎng)站代碼百度經(jīng)驗手機版
  • 星裕建設網(wǎng)站朝陽seo搜索引擎
  • 南昌公司做網(wǎng)站南京百度seo排名優(yōu)化
  • 網(wǎng)站建設可行分析性報告真正永久免費的建站系統(tǒng)有哪些
  • 千牛cdn wordpress長沙網(wǎng)站優(yōu)化推廣方案
  • 免費網(wǎng)站建站一級av無代碼免費web開發(fā)平臺
  • wordpress主題樣式seo軟件資源
  • 挖礦網(wǎng)站怎么做seo技術(shù)培訓寧波
  • 郴州百度seoseo入門教學
  • 國內(nèi)網(wǎng)站不備案品牌推廣的方式有哪些
  • 今天八點發(fā)布的株洲疫情網(wǎng)站搜索引擎優(yōu)化主要方法
  • 網(wǎng)站圖片鏈接到視頻怎么做微信營銷推廣
  • 婚慶公司加盟連鎖品牌廣告優(yōu)化
  • 哪個網(wǎng)站專門做母嬰東營網(wǎng)站推廣公司