當前位置:首頁 » 操作系統 » 詞性標注演算法

詞性標注演算法

發布時間: 2023-04-16 05:51:53

Ⅰ NLP第八篇-詞性標注

詞性(part-of-speech)是詞彙基本的語法屬性,通常也稱為詞類。詞性標注就是在給定句子中判定每個詞的語法范疇,確定其詞性並加以標注的過程,是中文信息處理面臨的重要基礎性問題。

基於統計模型的詞性標注方法

我們可以基於HMM去實現詞性標注方法,實現基於HMM的詞性標注方法中,模型的參數估計是其中的關鍵問題,也就是HMM的第三個問題,當時我們講可以隨機地初始化HMM的所有參數,但是,這將使詞性標注問題姿賣啟過於缺乏限制。

因此,通常利用詞典信息約束模型的參數。假設輸出符號表由單詞構成(即詞序列為HMM的觀察序列),如果某個對應的『詞彙-詞性標記』沒有被包含在詞典中,那該詞彙被標記為該詞性標記的概率就為0;如果存在,那該詞彙被標記為某詞彙標記的概率為其所有可能被標記的所有詞性個數的倒數:

然後我們根據訓練語料給定詞性標記生成詞的概率,我們思考一下,如何根據訓練語料來合理的估計模型概率,對於某詞性標記j生成詞wl的概率,分子我們用詞wl出現的次數乘以該詞彙被標記為該詞彙標記的概率,分母是在訓練語料范圍內,所有詞被標記為該詞彙標記的概率乘以該詞出現的次數。某詞性標記j生成詞wl的概率,也即下式:

不僅考慮詞出現次數的原因,個人理解,一是考慮到前面說過的,有些詞是不能由特定詞性標記輸出的,所以其乘積為0,累加時就會被忽略;二是在估計模型參數時考慮到詞本身所可能對應的詞性標配祥記的個數,在計算特定詞性標記的生成概率時,給予對應詞性標記少的詞彙一定的優待,給予其一定的概率傾斜。

另外,還有一種方法是採用將詞彙劃分成若乾等價類的策略,以類為單位進行參數統計,進而避免了為每個單詞單獨調整參數,大大減少了參數的總個數。

一旦初始化完成後,就可以按照HMM的前向後向演算法進行訓練。

還有一點要注意的是,由於不同領域語料的概率有所差異,HMM的參數也應隨著語料的變化而變化。

這就涉及到一個問題,在對原有的訓練語料增加新的語料以後,模型的參數就需要重新調整了。而根據經典HMM的理論,也就是上篇講的HMM,已經訓練過的語料就難以再發揮作用了,所以這里希望當有新語料進來時,新舊語料能夠同時發揮作用。

只需要對HMM的前向後向演算法做一些微調即可,我們還記得,前向後向演算法需要根據初始化好的模型去計算轉移概率的期望值,再根據期望值去估計模型參數,也即π、aij、bj(k),最終收斂,我們得到了訓練完畢的π、aij、bj(k),但是這里我們不只保存π、aij、bj(k),我們還要保存前一步的結果,也就是那些期望值,這樣,當新的語料引入時,我們將原來模型中保存的期望值與新語料訓練的期望值相加,即得到了反映新舊語料期望值變數的值,通過計算即可得到新的模型。這樣也就解決了舊語料的利用問題。

基於規則的詞性標注方法

基於規則的詞性標注方法是人們提出較早的一種詞性標注方法,其基本思想是按兼類詞(擁有多種可能詞性的詞)搭配關系和上下文語境建造詞類消歧規則,早期的規則一般由人編寫。

然而隨著語料庫規模的逐步增大,以人工提取規則的方式顯然是不現實的,於是人們提出了基於機器學習的規則自動提取方法。如下圖所示:

基於規則的錯誤驅動的機器學習方法的基本思想是,首先運用初始狀態標注器標識未標注的文本,由此產生已標注的文本。文本一旦被標注以後,跡如將其與正確的標注文本進行比較,學習器可以從錯誤中學到一些規則,從而形成一個排序的規則集,使其能夠修正已標注的文本,使標注結果更接近於參考答案。

這樣,在所有學習到的可能的規則中,搜索那些使已標注文本中的錯誤數減少最多的規則加入到規則集,並將該規則用於調整已標注的文本,然後對已標注的語料重新打分(統計錯誤數)。不斷重復該過程,直到沒有新的規則能夠使已標注的語料錯誤數減少。最終的規則集就是學習到的規則結果。

這種方法的標注速度要快於人工,但仍然存在著學習時間過長的問題,改進方法是,在演算法的每次迭代過程中,只調整受到影響的小部分規則,而不需要搜索所有的轉換規則。因為每當一條獲取的規則對訓練語料實施標注後,語料中只有少數詞性會發生改變,而只有在詞性發生改變的地方,才影響與該位置相關的規則的得分。

統計方法與規則方法相結合的詞性標注方法

有人提出了這樣一種詞性標注方法,其基本思想是,對漢語句子的初始詞性標注結果,先經過規則排歧,排除漢語中那些最常見的、語言現象比較明顯的歧義現象,然後再通過統計排歧,處理那些剩餘的多類詞並進行未登錄詞的詞性推斷,最後再進行人工校對,得到正確的標注結果。人工校對時可以發現系統中的問題,並進行改進。

但是上面這種方法存在一個很大的問題就是統計的可信度,我們不知道統計結果的可信度,總是需要人工校對所有的統計排歧結果,所以有人又提出了一種新的統計方法與規則方法相結合的詞性標注方法。

新的方法通過計算詞被標注為所有詞性的概率,來對統計標注的結果給出一個可信度,這樣對於所有的語料,先經過統計標注,然後對那些可信度小於閾值,或者說錯誤可能性高於閾值的統計標注結果,才進行人工校對和採用規則方法進行歧義消解。

詞性標注的一致性檢查與自動校對

在語料庫建設中,詞性標注的一致性檢查和自動校對是不可缺少的重要環節。

一般情況下,語料庫中出現的詞性標注不一致現象主要由兩種,一種情況是,詞彙在詞表中本來是非兼類詞,只有一種詞性標記,在語料中卻被標注了不同的詞性標記;另一種情況是,詞彙在詞表中本來就是兼類詞,允許不同的詞性標注,可在標注語料語境相同時出現了不同的詞性標注。

第一種現象比較好解決,第二種現象可以採用基於聚類和分類的詞性標注一致性檢查方法,其基本觀點是,同一個詞在相似的上下文中應該具有相同的詞性。所以,根據訓練語料,可以對每個兼類詞分別計算出詞性標注相同時期上下文語境向量的平均值VA,然後計算該兼類詞被標注成每個可能的詞性符號時所在的上下文語境向量與相應的VA之間的關系,如果

與VA之間的距離大於了某個閾值H,則認為其可能出現了詞性標注不一致。

然後是詞性標注的自動校對方法,在計算機自動實現詞性標注的語料中,錯誤情況一般分為兩種,一種是,對於同樣的情況,如果一個地方出錯則通篇有錯,一錯到底。而另一種情況是,只有部分出錯,這也就是前面的一致性問題之一,已經給出了解決方法。

而對於一錯到底的情況,處理方法的基本思路實際上也相似,其基本思路是通過機器學習,從大規模訓練語料中抽取每個兼類詞在特定上下文語境中被標注的詞性信息,形成一個詞性校對決策表。這里用的不再是平均值了,對於被校對的標注語料,首先檢測每個兼類詞的上下文語境與決策表中的對應語境是否匹配,若匹配,則認為該校對語料中的兼類詞的語境與決策表中的條件一直,那其兼類詞的詞性也應該一致。

Ⅱ jieba分詞詳解

「結巴」分詞是一個Python 中文分片語件,參見 https://github.com/fxsjy/jieba
可以對中文文本進行 分詞、詞性標注、關鍵詞抽取 等功能,並且支持自定義詞典。

本文包括以下內容:
1、jieba分詞包的 安裝
2、jieba分詞的 使用教程
3、jieba分詞的 工作原理與工作流程
4、jieba分詞所涉及到的 HMM、TextRank、TF-IDF等演算法介紹

可以直接使用pip來進行安裝:
sudo pip install jieba
或者
sudo pip3 install jieba

關鍵詞抽取有兩種演算法,基於TF-IDF和基於TextRank:

jieba分詞有三種不同的分詞模式: 精確模式、全模式和搜索引擎模式

對應的,函數前加l即是對應得到list結果的函數:

精確模式是最常用的分詞方法,全模式會將句子中所有可能的詞都列舉出來,搜索引擎模式則適用於搜索引擎使用。具體的差別可在下一節工作流程的分析中詳述。

在上述每個函數中,都有名為HMM的參數。這一項表示是否在分詞過程中利用HMM進行新詞發現。關於HMM,本文附錄中將簡述相關知識。

另外分詞支持自定義字典,詞典格式和 dict.txt 一樣,一個詞佔一行;每一行分三部分:詞語、詞頻(可省略)、詞性(可省略),用空格隔開,順序不可顛倒。
具體使用方法為:

關鍵詞抽取的兩個函數的完整參數為:

可以通過

來打開或關閉並行分詞功能。
個人感覺一般用不到,大文件分詞需要手動實現多進程並行,句子分詞也不至於用這個。

jieba分詞主要通過詞典來進行分詞及詞性標注,兩者使用了一個相同的詞典。正因如此,分詞的結果優劣將很大程度上取決於詞典,雖然使用了HMM來進行新詞發現。
jieba分詞包整體的工作流程如下圖所示:

下面將根據源碼詳細地分析各個模塊的工作流程。

在之後幾節中,我們在 藍色的方框 中示範了關鍵步驟的輸出樣例或詞典文件的格式樣例。在本節中都採用類似的表示方式。

jieba分詞中,首先通過對照典生成句子的 有向無環圖 ,再根據選擇的模式不同,根據詞典 尋找最短路徑 後對句子進行截取或直接對句子進行截取。對於未登陸詞(不在詞典中的詞)使用 HMM 進行新詞發現。

詞典的格式應為
word1 freq1 word_type1
word2 freq2 word_type2

其中自定義用戶詞典中詞性word_type可以省略。
詞典在其他模塊的流程中可能也會用到,為方便敘述,後續的流程圖中將會省略詞典的初始化部分。

圖b演示了搜索引擎模式的工作流程,它會在精確模式分詞的基礎上,將長詞再次進行切分。

在這里我們假定讀者已經了解HMM相關知識,如果沒有可先行閱讀下一章內容中的HMM相關部分或者跳過本節。

在jieba分詞中,將字在詞中的位置B、M、E、S作為隱藏狀態,字是觀測狀態,使用了詞典文件分別存儲字之間的表現概率矩陣(finalseg/prob_emit.py)、初始概率向量(finalseg/prob_start.py)和轉移概率矩陣(finalseg/prob_trans.py)。這就是一個標準的 解碼問題 ,根據概率再利用 viterbi演算法 對最大可能的隱藏狀態進行求解。

詞性分析部分與分詞模塊用了同一個基礎的分詞器,對於詞典詞的詞性,將直接從詞典中提取,但是對於新詞,詞性分析部分有一個 專屬的新詞及其詞性的發現模塊
用於詞性標注的HMM模型與用於分詞的HMM模型相似,同樣將文字序列視為可見狀態,但是隱藏狀態不再是單單的詞的位置(B/E/M/S),而變成了詞的位置與詞性的組合,如(B,v)(B,n)(S,n)等等。因此其初始概率向量、轉移概率矩陣和表現概率矩陣和上一節中所用的相比都要龐大的多,但是其本質以及運算步驟都沒有變化。
具體的工作流程如下圖所示。

jieba分詞中有兩種不同的用於關鍵詞抽取的演算法,分別為TextRank和TF-IDF。實現流程比較簡單,其核心在於演算法本身。下面簡單地畫出實現流程,具體的演算法可以參閱下一章內容。

TextRank方法默認篩選詞性,而TF-IDF方法模型不進行詞性篩選。

在本章中,將會簡單介紹相關的演算法知識,主要包括用於新詞發現的 隱馬爾科夫模型 維特比演算法 、用於關鍵詞提取的 TextRank TF-IDF 演算法。

HMM即隱馬爾科夫模型,是一種基於馬爾科夫假設的統計模型。之所以為「隱」,是因為相較於馬爾科夫過程HMM有著未知的參數。在世界上,能看到的往往都是表象,而事物的真正狀態往往都隱含在表象之下,並且與表象有一定的關聯關系。

其中,S、O分別表示狀態序列與觀測序列。

如果讀者還對這部分內容心存疑問,不妨先往下閱讀,下面我們將以一個比較簡單的例子對HMM及解碼演算法進行實際說明與演示,在讀完下一小節之後再回來看這些式子,或許能夠恍然大悟。

下面以一個簡單的例子來進行闡述:
假設小明有一個網友小紅,小紅每天都會在朋友圈說明自己今天做了什麼,並且假設其僅受當天天氣的影響,而當天的天氣也只受前一天天氣的影響。
於小明而言,小紅每天做了什麼是可見狀態,而小紅那裡的天氣如何就是隱藏狀態,這就構成了一個HMM模型。一個HMM模型需要有五個要素:隱藏狀態集、觀測集、轉移概率、觀測概率和初始狀態概率。

即在第j個隱藏狀態時,表現為i表現狀態的概率。式中的n和m表示隱藏狀態集和觀測集中的數量。
本例中在不同的天氣下,小紅要做不同事情的概率也不同, 觀測概率 以表格的形式呈現如下:

其中

除此之外,還需要一個初始狀態概率向量π,它表示了觀測開始時,即t=0時,隱藏狀態的概率值。本例中我們指定 π={0,0,1}

至此,一個完整的 隱馬爾科夫模型 已經定義完畢了。

HMM一般由三類問題:
概率計算問題 ,即給定 A,B,π 和隱藏狀態序列,計算觀測序列的概率;
預測問題 ,也成解碼問題,已知 A,B,π 和觀測序列,求最優可能對應的狀態序列;
學習問題 ,已知觀測序列,估計模型的 A,B,π 參數,使得在該模型下觀測序列的概率最大,即用極大似然估計的方法估計參數。

在jieba分詞中所用的是解碼問題,所以此處對預測問題和學習問題不做深入探討,在下一小節中我們將繼續以本節中的例子為例,對解碼問題進行求解。

在jieba分詞中,採用了HMM進行新詞發現,它將每一個字表示為B/M/E/S分別代表出現在詞頭、詞中、詞尾以及單字成詞。將B/M/E/S作為HMM的隱藏狀態,而連續的各個單字作為觀測狀態,其任務即為利用觀測狀態預測隱藏狀態,並且其模型的 A,B,π 概率已經給出在文件中,所以這是一個標準的解碼問題。在jieba分詞中採用了 Viterbi演算法 來進行求解。

Viterbi演算法的基本思想是: 如果最佳路徑經過一個點,那麼起始點到這個點的路徑一定是最短路徑,否則用起始點到這點更短的一條路徑代替這段,就會得到更短的路徑,這顯然是矛盾的;從起始點到結束點的路徑,必然要經過第n個時刻,假如第n個時刻有k個狀態,那麼最終路徑一定經過起始點到時刻n中k個狀態里最短路徑的點
將時刻t隱藏狀態為i所有可能的狀態轉移路徑i1到i2的狀態最大值記為

下面我們繼續以上一節中的例子來對viterbi演算法進行闡述:
小明不知道小紅是哪裡人,他只能通過小紅每天的活動來推斷那裡的天氣。
假設連續三天,小紅的活動依次為:「睡覺-打游戲-逛街」,我們將據此計算最有可能的天氣情況。

表示第一天為雨天能夠使得第二天為晴天的概率最大(也就是說如果第二天是晴天在最短路徑上的話,第一天是雨天也一定在最短路徑上,參見上文中Viterbi演算法的基本思想)

此時已經到了最後的時刻,我們開始回溯。

其計算過程示意圖如下圖所示。

)的路徑。

TF-IDF(詞頻-逆文本頻率)是一種用以評估字詞在文檔中重要程度的統計方法。它的核心思想是,如果某個詞在一篇文章中出現的頻率即TF高,並且在其他文檔中出現的很少,則認為這個詞有很好的類別區分能力。

其中:

TextRank是一種用以關鍵詞提取的演算法,因為是基於PageRank的,所以先介紹PageRank。
PageRank通過互聯網中的超鏈接關系確定一個網頁的排名,其公式是通過一種投票的思想來設計的:如果我們計算網頁A的PageRank值,那麼我們需要知道哪些網頁鏈接到A,即首先得到A的入鏈,然後通過入鏈給網頁A進行投票來計算A的PR值。其公式為:

其中:

d為阻尼系數,取值范圍為0-1,代表從一定點指向其他任意點的概率,一般取值0.85。
將上式多次迭代即可直到收斂即可得到結果。

TextRank演算法基於PageRank的思想,利用投票機制對文本中重要成分進行排序。如果兩個詞在一個固定大小的窗口內共同出現過,則認為兩個詞之間存在連線。

公式與PageRank的基本相同。多次迭代直至收斂,即可得到結果。
在jieba分詞中,TextRank設定的詞窗口大小為5,將公式1迭代10次的結果作為最終權重的結果,而不一定迭代至收斂。

Ⅲ ikanalyzer 可以做詞性標注嗎

  • 可以的

Ⅳ 副詞縮寫ad.和adv.的區別

adj(形容詞)櫻岩:

一般用於修飾名詞或者代詞。形容詞靠近所修飾的名詞或代詞,作定語。

adv(副詞):

一般用於修飾形容詞或動詞。副詞一般以ly結尾. 副詞在句中作狀語,一般靠近謂語動詞或源辯者在句首或者句末。

一、(4)詞性標注演算法擴展閱讀:

形容雹頌缺詞(Adjective),很多語言中均有的主要詞類中的一種。形容詞主要用來描寫或修飾名詞或代詞,表示人或事物的性質、狀態、特徵或屬性,常用作定語,也可作表語、補語或狀語。

副詞(Adverb 簡稱adv.)是指在句子中表示行為或狀態特徵的詞,用以修飾動詞、形容詞、其他副詞或全句,表示時間、地點、程度、方式等概念。副詞可分為:時間副詞、頻率副詞、地點副詞、方式副詞、程度副詞、疑問副詞、連接副詞、關系副詞、表順序的副詞。

二、例句分析:

①a. Joelle is a pretty child.(形容詞)
b. Tom will be back pretty soon.(副詞)

②a. The old man has been ill for some time.(形容詞)
b. Don't speak ill of others.(副詞)

③a. What a deep ocean it is !(深的)
b. The boy g deep into the ground.(深)

④a. Look at the high mountain!(高的)
b. Birds fly high in the sky.(高)

⑤a. John came late yesterday.(遲)
b. John has been working hard lately.(最近)

Ⅳ 分詞的定義及介紹

http://www.fullsearcher.com/n2004911134640735.asp什麼是中文分詞
眾所周知,英文是以詞為單位的,詞和詞之間是靠空格隔開,而中文是以字為單位,句子中所有的字連起來才能描述一個意思。例如,英文句子I am a student,用中文則為:「我是一個學生」。計算機可以很簡單通過空格知道student是一個單詞,但是不能很容易明白「學」、「生」兩個字合起來才表示一個詞。把中文的漢字序列切分成有意義的詞,就是中文分詞,有些人也稱為切詞。我是一個學生,分詞的結果是:我 是 一個 學生。 中文分詞技術
中文分詞技術屬於自然語言處理技術范疇,對於一句話,人可以通過自己的知識來明白哪些是詞,哪些不是詞,但如何讓計算機也能理解?其處理過程就是分詞演算法。
現有的分詞演算法可分為三大類:基於字元串匹配的分詞方法、基於理解的分詞方法和基於統計的分詞方法。
1、基於字元串匹配的分詞方法
這種方法又叫做機械分詞方法,它是按照一定的策略將待分析的漢字串與一個「充分大的」機器詞典中的詞條進行配,若在詞典中找到某個字元串,則匹配成功(識別出一個詞)。按照掃描方向的不同,串匹配分詞方法可以分為正向匹配和逆向匹配;按照不同長度優先匹配的情況,可以分為最大(最長)匹配和最小(最短)匹配;按照是否與詞性標注過程相結合,又可以分為單純分詞方法和分詞與標注相結合的一體化方法。常用的幾種機械分詞方法如下:
1)正向最大匹配法(由左到右的方向);
2)逆向最大匹配法(由右到左的方向);
3)最少切分(使每一句中切出的詞數最小)。
還可以將上述各種方法相互組合,例如,可以將正向最大匹配方法和逆向最大匹配方法結合起來構成雙向匹配法。由於漢語單字成詞的特點,正向最小匹配和逆向最小匹配一般很少使用。一般說來,逆向匹配的切分精度略高於正向匹配,遇到的歧義現象也較少。統計結果表明,單純使用正向最大匹配的錯誤率為1/169,單純使用逆向最大匹配的錯誤率為1/245。但這種精度還遠遠不能滿足實際的需要。實際使用的分詞系統,都是把機械分詞作為一種初分手段,還需通過利用各種其它的語言信息來進一步提高切分的准確率。
一種方法是改進掃描方式,稱為特徵掃描或標志切分,優先在待分析字元串中識別和切分出一些帶有明顯特徵的詞,以這些詞作為斷點,可將原字元串分為較小的串再來進機械分詞,從而減少匹配的錯誤率。另一種方法是將分詞和詞類標注結合起來,利用豐富的詞類信息對分詞決策提供幫助,並且在標注過程中又反過來對分詞結果進行檢驗、調整,從而極大地提高切分的准確率。
對於機械分詞方法,可以建立一個一般的模型,在這方面有專業的學術論文,這里不做詳細論述。
2、基於理解的分詞方法
這種分詞方法是通過讓計算機模擬人對句子的理解,達到識別詞的效果。其基本思想就是在分詞的同時進行句法、語義分析,利用句法信息和語義信息來處理歧義現象。它通常包括三個部分:分詞子系統、句法語義子系統、總控部分。在總控部分的協調下,分詞子系統可以獲得有關詞、句子等的句法和語義信息來對分詞歧義進行判斷,即它模擬了人對句子的理解過程。這種分詞方法需要使用大量的語言知識和信息。由於漢語語言知識的籠統、復雜性,難以將各種語言信息組織成機器可直接讀取的形式,因此目前基於理解的分詞系統還處在試驗階段。
3、基於統計的分詞方法
從形式上看,詞是穩定的字的組合,因此在上下文中,相鄰的字同時出現的次數越多,就越有可能構成一個詞。因此字與字相鄰共現的頻率或概率能夠較好的反映成詞的可信度。可以對語料中相鄰共現的各個字的組合的頻度進行統計,計算它們的互現信息。定義兩個字的互現信息,計算兩個漢字X、Y的相鄰共現概率。互現信息體現了漢字之間結合關系的緊密程度。當緊密程度高於某一個閾值時,便可認為此字組可能構成了一個詞。這種方法只需對語料中的字組頻度進行統計,不需要切分詞典,因而又叫做無詞典分詞法或統計取詞方法。但這種方法也有一定的局限性,會經常抽出一些共現頻度高、但並不是詞的常用字組,例如「這一」、「之一」、「有的」、「我的」、「許多的」等,並且對常用詞的識別精度差,時空開銷大。實際應用的統計分詞系統都要使用一部基本的分詞詞典(常用詞詞典)進行串匹配分詞,同時使用統計方法識別一些新的詞,即將串頻統計和串匹配結合起來,既發揮匹配分詞切分速度快、效率高的特點,又利用了無詞典分詞結合上下文識別生詞、自動消除歧義的優點。
到底哪種分詞演算法的准確度更高,目前並無定論。對於任何一個成熟的分詞系統來說,不可能單獨依靠某一種演算法來實現,都需要綜合不同的演算法。筆者了解,海量科技的分詞演算法就採用「復方分詞法」,所謂復方,相當於用中葯中的復方概念,即用不同的葯才綜合起來去醫治疾病,同樣,對於中文詞的識別,需要多種演算法來處理不同的問題。

熱點內容
內置存儲卡可以拆嗎 發布:2025-05-18 04:16:35 瀏覽:333
編譯原理課時設置 發布:2025-05-18 04:13:28 瀏覽:376
linux中進入ip地址伺服器 發布:2025-05-18 04:11:21 瀏覽:610
java用什麼軟體寫 發布:2025-05-18 03:56:19 瀏覽:31
linux配置vim編譯c 發布:2025-05-18 03:55:07 瀏覽:107
砸百鬼腳本 發布:2025-05-18 03:53:34 瀏覽:941
安卓手機如何拍視頻和蘋果一樣 發布:2025-05-18 03:40:47 瀏覽:739
為什麼安卓手機連不上蘋果7熱點 發布:2025-05-18 03:40:13 瀏覽:802
網卡訪問 發布:2025-05-18 03:35:04 瀏覽:510
接收和發送伺服器地址 發布:2025-05-18 03:33:48 瀏覽:371