Ⅰ Python中文分詞的原理你知道嗎
中文分詞,即 Chinese Word Segmentation,即將一個漢字序列進行切分,得到一個個單獨的詞。表面上看,分詞其實就是那麼回事,但分詞效果好不好對信息檢索、實驗結果還是有很大影響的,同時分詞的背後其實是涉及各種各樣的演算法的。
中文分詞與英文分詞有很大的不同,對英文而言,一個單詞就是一個詞,而漢語是以字為基本的書寫單位,詞語之間沒有明顯的區分標記,需要人為切分。根據其特點,可以把分詞演算法分為四大類:
基於規則的分詞方法
基於統計的分詞方法
基於語義的分詞方法
基於理解的分詞方法
下面我們對這幾種方法分別進行總結。
基於規則的分詞方法
這種方法又叫作機械分詞方法、基於字典的分詞方法,它是按照一定的策略將待分析的漢字串與一個「充分大的」機器詞典中的詞條進行匹配。若在詞典中找到某個字元串,則匹配成功。該方法有三個要素,即分詞詞典、文本掃描順序和匹配原則。文本的掃描順序有正向掃描、逆向掃描和雙向掃描。匹配原則主要有最大匹配、最小匹配、逐詞匹配和最佳匹配。
最大匹配法(MM)。基本思想是:假設自動分詞詞典中的最長詞條所含漢字的個數為 i,則取被處理材料當前字元串序列中的前 i 個字元作為匹配欄位,查找分詞詞典,若詞典中有這樣一個 i 字詞,則匹配成功,匹配欄位作為一個詞被切分出來;若詞典中找不到這樣的一個 i 字詞,則匹配失敗,匹配欄位去掉最後一個漢字,剩下的字元作為新的匹配欄位,再進行匹配,如此進行下去,直到匹配成功為止。統計結果表明,該方法的錯誤率 為 1/169。
逆向最大匹配法(RMM)。該方法的分詞過程與 MM 法相同,不同的是從句子(或文章)末尾開始處理,每次匹配不成功時去掉的是前面的一個漢字。統計結果表明,該方法的錯誤率為 1/245。
逐詞遍歷法。把詞典中的詞按照由長到短遞減的順序逐字搜索整個待處理的材料,一直到把全部的詞切分出來為止。不論分詞詞典多大,被處理的材料多麼小,都得把這個分詞詞典匹配一遍。
設立切分標志法。切分標志有自然和非自然之分。自然切分標志是指文章中出現的非文字元號,如標點符號等;非自然標志是利用詞綴和不構成詞的詞(包 括單音詞、復音節詞以及象聲詞等)。設立切分標志法首先收集眾多的切分標志,分詞時先找出切分標志,把句子切分為一些較短的欄位,再用 MM、RMM 或其它的方法進行細加工。這種方法並非真正意義上的分詞方法,只是自動分詞的一種前處理方式而已,它要額外消耗時間掃描切分標志,增加存儲空間存放那些非 自然切分標志。
最佳匹配法(OM)。此法分為正向的最佳匹配法和逆向的最佳匹配法,其出發點是:在詞典中按詞頻的大小順序排列詞條,以求縮短對分詞詞典的檢索時 間,達到最佳效果,從而降低分詞的時間復雜度,加快分詞速度。實質上,這種方法也不是一種純粹意義上的分詞方法,它只是一種對分詞詞典的組織方式。OM 法的分詞詞典每條詞的前面必須有指明長度的數據項,所以其空間復雜度有所增加,對提高分詞精度沒有影響,分詞處理的時間復雜度有所降低。
此種方法優點是簡單,易於實現。但缺點有很多:匹配速度慢;存在交集型和組合型歧義切分問題;詞本身沒有一個標準的定義,沒有統一標準的詞集;不同詞典產生的歧義也不同;缺乏自學習的智能性。
基於統計的分詞方法
該方法的主要思想:詞是穩定的組合,因此在上下文中,相鄰的字同時出現的次數越多,就越有可能構成一個詞。因此字與字相鄰出現的概率或頻率能較好地反映成詞的可信度。可以對訓練文本中相鄰出現的各個字的組合的頻度進行統計,計算它們之間的互現信息。互現信息體現了漢字之間結合關系的緊密程度。當緊密程 度高於某一個閾值時,便可以認為此字組可能構成了一個詞。該方法又稱為無字典分詞。
該方法所應用的主要的統計模型有:N 元文法模型(N-gram)、隱馬爾可夫模型(Hiden Markov Model,HMM)、最大熵模型(ME)、條件隨機場模型(Conditional Random Fields,CRF)等。
在實際應用中此類分詞演算法一般是將其與基於詞典的分詞方法結合起來,既發揮匹配分詞切分速度快、效率高的特點,又利用了無詞典分詞結合上下文識別生詞、自動消除歧義的優點。
基於語義的分詞方法
語義分詞法引入了語義分析,對自然語言自身的語言信息進行更多的處理,如擴充轉移網路法、知識分詞語義分析法、鄰接約束法、綜合匹配法、後綴分詞法、特徵詞庫法、矩陣約束法、語法分析法等。
擴充轉移網路法
該方法以有限狀態機概念為基礎。有限狀態機只能識別正則語言,對有限狀態機作的第一次擴充使其具有遞歸能力,形成遞歸轉移網路 (RTN)。在RTN 中,弧線上的標志不僅可以是終極符(語言中的單詞)或非終極符(詞類),還可以調用另外的子網路名字分非終極符(如字或字串的成詞條件)。這樣,計算機在 運行某個子網路時,就可以調用另外的子網路,還可以遞歸調用。詞法擴充轉移網路的使用, 使分詞處理和語言理解的句法處理階段交互成為可能,並且有效地解決了漢語分詞的歧義。
矩陣約束法
其基本思想是:先建立一個語法約束矩陣和一個語義約束矩陣, 其中元素分別表明具有某詞性的詞和具有另一詞性的詞相鄰是否符合語法規則, 屬於某語義類的詞和屬於另一詞義類的詞相鄰是否符合邏輯,機器在切分時以之約束分詞結果。
基於理解的分詞方法
基於理解的分詞方法是通過讓計算機模擬人對句子的理解,達到識別詞的效果。其基本思想就是在分詞的同時進行句法、語義分析,利用句法信息和語義信息來處理歧義現象。它通常包括三個部分:分詞子系統、句法語義子系統、總控部分。在總控部分的協調下,分詞子系統可以獲得有關詞、句子等的句法和語義信息來對分詞歧義進行判斷,即它模擬了人對句子的理解過程。這種分詞方法需要使用大量的語言知識和信息。目前基於理解的分詞方法主要有專家系統分詞法和神經網路分詞法等。
專家系統分詞法
從專家系統角度把分詞的知識(包括常識性分詞知識與消除歧義切分的啟發性知識即歧義切分規則)從實現分詞過程的推理機中獨立出來,使知識庫的維護與推理機的實現互不幹擾,從而使知識庫易於維護和管理。它還具有發現交集歧義欄位和多義組合歧義欄位的能力和一定的自學習功能。
神經網路分詞法
該方法是模擬人腦並行,分布處理和建立數值計算模型工作的。它將分詞知識所分散隱式的方法存入神經網路內部,通過自學習和訓練修改內部權值,以達到正確的分詞結果,最後給出神經網路自動分詞結果,如使用 LSTM、GRU 等神經網路模型等。
神經網路專家系統集成式分詞法
該方法首先啟動神經網路進行分詞,當神經網路對新出現的詞不能給出准確切分時,激活專家系統進行分析判斷,依據知識庫進行推理,得出初步分析,並啟動學習機制對神經網路進行訓練。該方法可以較充分發揮神經網路與專家系統二者優勢,進一步提高分詞效率。
以上便是對分詞演算法的基本介紹。
Ⅱ 什麼是演化演算法
演化演算法是解決組合優化問題的高效搜索演算法.該文在現有求解TSP問題的演化演算法的基礎上,通過引入映射運算元、優化運算元以及增加一些控制策略,提出了一種高效的演化搜索演算法.實驗表明,該演算法是有效的,通過對CHN144以及國際通用的TSPLIB中不同城市規模的數據進行測試表明,其中實例CHN144得到的最短路徑為30353.860997,優於吳斌等運用分段演算法得到的最短路徑30354.3,亦優於朱文興等人的結果,實例st70和kroB150得到的最短路徑分別與運用分段演算法得到的最短路徑值相同,實例pr136得到的最短路徑值為96770.924122,優於TSPLIB中提供的最短路徑96772,對於其它實例也均能快速地得到和TSPLIB中提供的最優路徑相同或更優的路徑,該演算法不僅很容易收斂到問題的最優解,而且求解速度極快.
Ⅲ 百度演算法中怎麼進行中文切詞分詞
導讀:網路作為中文搜索引擎的先驅,它的核心地位可以說在短時期是沒有任何搜索引擎可以超越的,網路的卓越成就在於它對博大精深的中國文化的領悟和對中文分詞的的超強功底。網路受歡迎的主要原因除了用戶習慣的原因,在較大程度上得益於網路演算法的精準率,搜索結果值更貼近用戶的想獲得的資訊。用一句廣告詞 「正是我想要的」來形容網路最恰當不過了。
正因為網路對中國搜索引擎市場的統治地位,企業想在網上賺取大量的鈔票,就不得不依靠網路。所以做搜索引擎的優化實際上就是網路優化。但網路強大的反優化能力和人工干預機制,使得眾多的優化者以失敗以失敗告終。對於大多數優化者來說,網路成了洪水猛獸。果真如此嗎?網路行銷大師鄧友成認為不盡然。只要是搜索引擎就離不開演算法,任何演算法都是有規律可循的。下面我們深入淺出的探討一下網路的演算法吧。
一. 搜索信息響應
當用戶向網路提出搜索請求後網路會迅速根據用戶的請求提供比較精準的結果值。
1. 比喻當用戶提交「搜索引擎 優化 技術」這個查詢文字串.網路會將文字串分割成若乾子文字串,用空格,標點符等做細分處理。那麼這個文字串就可以分成「搜索引擎,優化,技術」。
2. 如果用戶提交的請求有重復的文字元,例如」優化 技術 優化」,網路會將重復的文字元看成一個。而字元的出現順序就忽略。
3. 當用戶提交請求中出現英文字元,網路一般會將英文字元當作一個整體來看,並和中文詞分割開來,如果中文出現數字也是這樣處理的。
網路通過切割、重組、歸並、減負等手段對用戶請求進行精準響應,使搜索結果符合用戶的想法,以節省用戶的查詢時間,提高查詢效率。
二. 中文核心分詞
中文分詞是網路演算法的核心要素。按中文語法習慣,三個字(含三個字)以下的文字元是獨立精準的詞彙,沒有重組的必要,所以網路對三個字(含三個字)以下的文字元不考慮細分。這也是網路核心演算法的第一層,也是響應數量最多的部分。一般這些文字元更新的時間比較慢一些,一周或兩周的時間。屬於大更新的范疇。
四個字元的網路就會毫不客氣的大卸十八塊比如,網路工具這個文字串,當用戶發出搜索請求後,會發現在搜索結果裡面出現了紅色的標記,已經把這個文字元分成了「網路,工具」。當然如果是四個字以上的文字串就更不用說了。會分成更多的分詞。
三、字詞匹配
大概了解了網路的分詞原理後,我們要了解的一個重要方面就是字詞的匹配問題。如果不知道字詞的匹配,做優化就是空談了。
最大匹配法
最大匹配法亦稱MM法。假設自動分詞詞典(或詞庫)中的最長詞條是y個字,則取被處理材料當前字元串序列中的前y個字作為匹配欄位,查找詞典,若詞典中存在這樣的一個y字詞,則匹配成功,匹配欄位被作為一個詞切分出來;如果在詞典中找不到這樣一個y字詞,則匹配失敗,匹配欄位去掉最後一個字,剩下的欄位重新進行匹配,如此進行下去,直到匹配成功,也就是完成一輪匹配,切分出一個詞為止。
正向最大匹配演算法
正向最大匹配法(由左到右的方向)。首先粗分,按照句子把文本切成一個一個句子。然後把每個句子切成單字。字典按照樹形結構存儲,比如這句話「春天還會遠嗎」首先查找「春」字開頭的詞,然後按照字典樹形結構往下走一個節點,查找「春」後面一個字是「天」的詞,然後又下沉一個節點,找「還」下面是「會」的詞,找不到了,查找就結束。
反向最大匹配演算法
逆向最大匹配法(由右到左的方向);就是朝相反的方向發掘可以匹配的文字,比如網上商城這個文字串,那麼會向左延伸在王上的前面會出現的結果是區域性的文字,不如上海或者北京等,在商城的前面會出現更精準的定義文字元,不如愛家,女人等專屬性強的文字元。
雙向最大匹配演算法
正向最大匹配方法和逆向最大匹配方法結合起來構成雙向匹配法。就是向左右縱深挖掘比較匹配的結果值。
熟悉了網路分詞的方法後,我們就要在優化的過程充分的考慮相關聯的因素,合理的對你所要向用戶推薦的文字串做合理的規范和謀劃。軟優化歡迎優化者們和我們一道加強交流共同進步。
Ⅳ 什麼是自動分詞系統搜索引擎是如何實現的
緊接著上一講,搜索引擎索引網頁庫建立之後,我們需要對索引網頁庫預處理,其中又分為兩大類:網頁分析和建立倒排文件索引。而搜索引擎的自動分詞系統就是進行網頁分析的前提。
首先,中文和英文不同的是,英文單詞之間有空格,而中文都是連貫在一起來操作的,在形式上,無法做出區分。所以中文文本在進行網頁分析之前,需要將文本切分為多個詞或者字。在目前檢索中,主要可以分為按字檢索和按詞檢索,其中按詞檢索,擁有更快的速度和較高的准確性。
自動分詞系統演算法介紹
分詞系統基本方法:基於字元串匹配的分詞方法和基於統計的分詞方法。
1)基於字元串匹配:也稱為機械分詞,按照幾個既定的策略,將等待分析的字元串和一個容量足夠大的詞典中的詞條進行匹配,若在詞典中找到同樣的一個字元串,那麼匹配成功。
字元串匹配分詞,按照掃描方向,可以分為:正向匹配和逆向匹配;按照不同長度有限匹配,可以分為:最大匹配和最小匹配;按照是否與詞性標注相結合,可以分為:單純分詞方法和分詞與標注相結合的一體化方法;
常用的機械分詞方法:正向最大匹配,逆向最大匹配,最小切分(就是在每一句中切除的詞量最少,而不是單個詞位元組最少) (鹽城SEO聯想:使用正向最大匹配,逆向最大匹配,和我們SEO中經常用到的關鍵詞靠前,則排名越有利,是否存在關聯)
同時,在機械分詞法中,存在這樣一個模型:ASM(d,a,m);
d:匹配方向,+表示正向,-表示逆向;
a:每次匹配失敗後增加或減少字串長度(字元串),「+」就是增加一個,「-」就是減少一個;
m:最大或最小匹配標志,+為最大匹配,-為最小匹配。
對於,中文漢字來說,ASM(+,=,+)是最為實用的方法。
2)基於統計的分詞方法介紹:
在表現形式上,詞是多個字的穩定組合,所以說,在文章中,相鄰的字同時出現的次數越多,那麼越有可能是一個詞,因此,字和字相鄰出現的的頻率可以大概的反應出詞的可信率。
通過公式:M(x,y)=log( P(x,y) / p(x)p(y) )來計算他們的互現信息,該互現信息體現了漢字之間結合的緊密程度,當M(x,y)的值大於某一閾值時,便可以確定這是一個詞。
因為,只需要對字組頻率進行計算,不需要使用詞典,所以叫做無詞典分詞方法,或者說統計分詞方法。
缺點:經常會抽出一些高頻,但不是詞的常用片語,如:「我們」「共同」「有的」等。
所以在正常使用中,統計分詞法,都會使用一部基本的分詞詞典(常用詞詞典),通過字元串分詞系統,識別出常用片語,同時通過統計分詞系統,識別出新詞,生詞,兩者結合,即發揮出字元串匹配分詞系統的速度快,效率高,又可以利用統計分詞系統識別生詞,自動消除歧義的優點。