基於結構化感知機的詞性標註與命名實體識別框架
上週就關於《結構化感知機標註框架的內容》已經分享了一篇《分詞工具 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個詞語所屬的命名實體成分。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31524777/viewspace-2640638/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Python自然語言處理實戰(4):詞性標註與命名實體識別Python自然語言處理詞性標註
- 基於結構化平均感知機的分詞器Java實現分詞Java
- 基於keras的BiLstm與CRF實現命名實體標註KerasCRF
- 分詞工具Hanlp基於感知機的中文分詞框架HanLP中文分詞框架
- HanLP-命名實體識別總結HanLP
- 精通Python自然語言處理 4 :詞性標註--單詞識別Python自然語言處理詞性標註
- 基於感知機的人名-性別預測系統 —— Python實現Python
- python的詞性標註Python詞性標註
- pyhanlp 中文詞性標註與分詞簡介HanLP詞性標註分詞
- 條件隨機場實現命名實體識別條件隨機場
- 中文分詞工具之基於字標註法的分詞中文分詞
- jieba 詞性標註 & 並行分詞Jieba詞性標註並行分詞
- 雲鯨在SLAM、三維感知、AI物體識別、機器人結構技術SLAMAI機器人
- 自然語言處理工具pyhanlp分詞與詞性標註自然語言處理HanLP分詞詞性標註
- python呼叫hanlp進行命名實體識別PythonHanLP
- 機器學習實戰 | 性別預測模型的構建與優化機器學習模型優化
- Android 基於註解IOC元件化/模組化的架構實踐Android元件化架構
- 基於深度學習的機器人目標識別和跟蹤深度學習機器人
- 採用常用實體命名機構資料
- go基於grpc構建微服務框架-服務註冊與發現GoRPC微服務框架
- go基於grpc構建微服務框架-結構化日誌輸出GoRPC微服務框架
- HanLP分詞命名實體提取詳解HanLP分詞
- SimpleDet:一套簡單通用的目標檢測與物體識別框架框架
- 【NLP學習其四】如何構建自己用於訓練的資料集?什麼是詞性標註?詞性標註
- SpringBoot 全域性日期格式化(基於註解)Spring Boot
- 使用DeepKE訓練命名實體識別模型DEMO(官方DEMO)模型
- 微調大型語言模型進行命名實體識別模型
- 「NLP-NER」如何使用BERT來做命名實體識別
- 基於DDD知識揭示Go中結構指標兩個優點Go指標
- 關於結構體型別的學習結構體型別
- 讓gin,echo等golang框架支援結構體註冊Golang框架結構體
- 醫動力Android基於CC元件化框架的探索與實踐Android元件化框架
- 面向機器智慧的TensorFlow實戰5:目標識別與分類
- 基於主函式視角和結構體框架的專案再梳理函式結構體框架
- opencv python 基於KNN的手寫體識別OpenCVPythonKNN
- opencv python 基於SVM的手寫體識別OpenCVPython
- [OpenCV實戰]1 基於深度學習識別人臉性別和年齡OpenCV深度學習
- java命名與註釋Java