1. 程式人生 > >基於結構化感知機的詞性標註與命名實體識別框架

基於結構化感知機的詞性標註與命名實體識別框架

開發十年,就只剩下這套架構體系了! >>>   

 

上週就關於《結構化感知機標註框架的內容》已經分享了一篇《分詞工具Hanlp基於感知機的中文分詞框架》,本篇接上一篇內容,繼續分享詞性標註與命名實體識別框架的內容。

詞性標註

訓練

詞性標註是分詞後緊接著的一個任務,訓練語料同上,介面如下:

 

命令列

java -cp hanlp.jar com.hankcs.hanlp.model.perceptron.Main -task POS -train -reference data/test/pku98/199801.txt -model data/test/perceptron/pos.bin

 

API

public void testTrain() throws Exception

{

    PerceptronTrainer trainer = new POSTrainer();

    trainer.train("data/test/pku98/199801.txt", Config.POS_MODEL_FILE);

}

 

測試

詞性標註器接受的輸入不再是純文字,而是分詞後的單詞陣列或列表:

 

public void testLoad() throws Exception

{

    PerceptronPOSTagger tagger = new PerceptronPOSTagger(Config.POS_MODEL_FILE);

    System.out.println(Arrays.toString(tagger.tag("中國 交響樂團 譚利華 在 布達拉宮 廣場 演出".split(" "))));

}

正常情況下輸出每個單詞的詞性:

[ns, n, nr, p, ns, n, v]

關於如何組合分詞器和詞性標註器,使其同時進行分詞與詞性標註,請參考接下來的章節。

 

命名實體識別

目前本系統預設支援人名(nr),地名(ns),機構名(nt)三種命名實體的識別,使用者可以過載NERTrainer的createTagSet來支援任意NER型別。

訓練

命名實體識別是詞性標註的後續任務,訓練語料依然同上,介面如下:

 

命令列

java -cp hanlp.jar com.hankcs.hanlp.model.perceptron.Main -task NER -train -reference data/test/pku98/199801.txt -model data/test/perceptron/ner.bin

 

API

public void testTrain() throws Exception

{

    PerceptronTrainer trainer = new NERTrainer();

    trainer.train("data/test/pku98/199801.txt", Config.NER_MODEL_FILE);

}

 

自定義NER型別

過載NERTrainer的createTagSet來支援自己的NER型別。當然,使用者提供的語料必須滿足2014人民日報格式。

 

        PerceptronTrainer trainer = new NERTrainer()

        {

            @Override

            protected TagSet createTagSet()

            {

                NERTagSet tagSet = new NERTagSet();

                tagSet.nerLabels.add("YourNER1");

                tagSet.nerLabels.add("YourNER2");

                tagSet.nerLabels.add("YourNER3");

                return tagSet;

            }

        };

測試

命名實體識別器的輸入不再是純文字,而是分詞結果與詞性標註結果:

 

public void testTag() throws Exception

{

    PerceptionNERecognizer recognizer = new PerceptionNERecognizer(Config.NER_MODEL_FILE);

    System.out.println(Arrays.toString(recognizer.recognize("吳忠市 乳製品 公司 譚利華 來到 布達拉宮 廣場".split(" "), "ns n n nr p ns n".split(" "))));

}

 

正常情況下輸出:

[B-nt, M-nt, E-nt, S, O, S, O]

7個標籤代表上述7個詞語所屬的命名實體成分。

相關推薦

基於結構感知詞性標註命名實體識別框架

開發十年,就只剩下這套架構體系了! >>>   

python_NLP實戰之詞性標註命名實體識別

一、詞性標註 jieba詞性標註結合規則和統計的方法,詞典匹配和HMM共同作用 二、命名實體識別 HMM將分詞作為字標記來解決,其中有兩條獨立性假設 1、輸出觀察值之間相互獨立 2、狀態轉移過程中,當前狀態只與前一狀態有關 CRF也是一種用來標記和切分序列化資料的統計

HMM分詞、詞性標註命名實體識別

HMM(隱馬爾可夫模型)是用來描述隱含未知引數的統計模型,舉一個經典的例子:一個東京的朋友每天根據天氣{下雨,天晴}決定當天的活動{公園散步,購物,清理房間}中的一種,我每天只能在twitter上看到她發的推“啊,我前天公園散步、昨天購物、今天清理房間了!”,那麼我可以根據她

HMM演算法-viterbi演算法的實現及分詞、詞性標註命名實體識別的引用

轉自:http://www.hankcs.com/nlp/hmm-and-segmentation-tagging-named-entity-recognition.html HMM(隱馬爾可夫模型)是用來描述隱含未知引數的統計模型,舉一個經典的例子:一個東京的朋友每天

結構數據結構數據提取----XPathlxml類庫

html ext sce .html 文件系統 結構化數據 繼續 http encoding 什麽是XML XML 指可擴展標記語言(EXtensible Markup Language) XML 是一種標記語言,很類似 HTML XML 的設計宗旨是傳輸數據,而非顯示數

結構資料結構資料提取--- JSON模組JsonPath

資料提取之JSON與JsonPATH JSON(JavaScript Object Notation) 是一種輕量級的資料交換格式,它使得人們很容易的進行閱讀和編寫。同時也方便了機器進行解析和生成。適用於進行資料互動的場景,比如網站前臺與後臺之間的資料互動。 JSON和XML的比較可謂不相上下。 Pyt

jieba詞性標註分詞結果不一致(提取關鍵詞)

1、 先描述下現象 >>> aa='北京時間月日晚劉強東的刑辯律師在接受澎湃新聞記者電話採訪時表示劉強東涉嫌 強姦一案中的指控與證據是有出入的一旦調查結束證據將會披露給公眾證明他是無罪的' =======過濾詞性,能識別“劉強東” >>>

Deeplearning4j 實戰(5):基於多層感知的Mnist壓縮以及在Spark實現

在上一篇部落格中,我們用基於RBM的的Deep AutoEncoder對Mnist資料集進行壓縮,應該說取得了不錯的效果。這裡,我們將神經網路這塊替換成傳統的全連線的前饋神經網路對Mnist資料集進行壓縮,看看兩者的效果有什麼異同。整個程式碼依然是利用Deeplearning4j進行實現,並且為了方

python 分詞、自定義詞表、停用詞、詞頻統計權值(tfidf)、詞性標註部分詞性刪除

# -*- coding: utf-8 -*- """ Created on Tue Apr 17 15:11:44 2018 @author: NAU """ ##############分詞、自定義詞表、停用詞################ import jieba 

十、半個小時搞定詞性標註關鍵詞提取

想要做到和人聊天,首先得先讀懂對方在說什麼,所以問句解析是整個聊天過程的第一步,問句解析是一個涉及知識非常全面的過程,幾乎涵蓋了自然語言處理的全部,本節讓我們嘗試一下如何分析一個問句 問句解析的過程 一般問句解析需要進行分詞、詞性標註、命名實體識別、關鍵詞提取、句法分析以及查詢問句分類等。這些事情我

pyhanlp 中文詞性標註分詞簡介

  pyhanlp實現的分詞器有很多,同時pyhanlp獲取hanlp中分詞器也有兩種方式 第一種是直接從封裝好的hanlp類中獲取,這種獲取方式一共可以獲取五種分詞器,而現在預設的就是第一種維特比分詞器 1.維特比 (viterbi):效率和效果的最佳平衡。也是最短路分詞,H

【中文分詞】結構感知器SP

結構化感知器(Structured Perceptron, SP)是由Collins [1]在EMNLP'02上提出來的,用於解決序列標註的問題。中文分詞工具THULAC、LTP所採用的分詞模型便是基於此。 1. 結構化感知器 模型 CRF全域性化地以最大熵準則建模概率\(P(Y|X)\);其中,\(X\)為

深度學習Deeplearning4j 入門實戰(5):基於多層感知的Mnist壓縮以及在Spark實現

在上一篇部落格中,我們用基於RBM的的Deep AutoEncoder對Mnist資料集進行壓縮,應該說取得了不錯的效果。這裡,我們將神經網路這塊替換成傳統的全連線的前饋神經網路對Mnist資料集進行壓縮,看看兩者的效果有什麼異同。整個程式碼依然是利用Deeplearnin

Rosenblatt感知-神經網路機器學習筆記1

一、Rosenblatt感知機小結 感知機模型 輸入向量:x(n)=[+1,x1(n),x2(n),...,xm(n)]T 權重向量:w(n)=[b,w1(n),w2(n),...wm(n)]T 當輸入向量線性可分時,我們需要尋找到一個合適的w,正確

《李航:統計學習方法》--- 感知演算法原理實現

感知機模型 感知機是一個二類分類的線性分類模型。所謂二類分類就是它只能將例項分為正類和負類兩個類別。那麼為什麼是線性分類模型呢,我的理解是感知機學習旨在求出可以將資料進行劃分的分離超平面,而分離超平面的方程 w⋅x+b=0 為線性方程,所以感知機為線性分類模型

面向物件方法和結構方法各自的特點利弊

結構化技術的特點:把現實世界描繪為資料在資訊系統中的流動,在資料流動過程中資料發生轉化。通過自頂向下的程式設計將複雜的程式分解為程式模組的層次圖。概括為自頂向下、逐步求精、模組化設計、結構化編碼的基本特點。面向物件的特點:面向物件技術將資料模型和處理模型二者合一,將屬性和方

基於結構隨機森林的DME病灶分割

Learning layer-specific edges for segmenting retinal layers with large deformations 作者:S. P. K. KARRI 來源:2016 BOE 摘要:本文提出了一種結構化學

統計自然語言處理梳理一:分詞、命名實體識別詞性標註

 進行統計自然語言處理系統梳理,學習資料《統計自然語言處理.宗成慶》。 一、自動分詞          詞,詞是最小的能夠獨立運用的語言單位。          自動分詞問題由來。中文(還有日語、越南語、藏語等)的文字不像西方屈折語的文字,詞與詞之間沒有空格之類的標註來顯示

NLP漢語自然語言處理原理實踐 5 詞性、語塊和命名實體識別

        NLP中很多問題要求解的輸出標籤不是相互獨立的,而是時間或結構上相互依存的結構化標籤。這種結構包括序列、樹狀或更普通意義上的圖結構。而對於中文分詞、詞性標註、組塊標註、淺層語法分析等任務,標記和切分觀察序列都是序列結構的。解決詞類方法最常用的模型也是概率圖模

中文命名實體識別之學習筆記一(詞性標註

   接觸命名實體識別這個領域有不少時間了,中文命名實體識別的主要任務是識別出文本中的人名,地名,組織機構名等專有名稱和有意義的時間,日期等數量短語並加以歸類。命名實體識別技術是資訊抽取,資訊檢索,機器翻譯,問答系統等多種自然語言處理技術必不可少的組成部分。對於這個技術,自己