中文語法分析是目前的自然語言處理的主要任務之一,語義依賴分析是目前實施中文語法分析的主要理論技術,開源的工具則主要有stanford parser
和哈工大的語音雲ltp
。ltp(語言技術平台)是哈工大社會計算與資訊檢索研究中心研製的一整套開放中文自然語言處理系統。
pyltp 是 ltp 的 python 封裝,提供了分詞,詞性標註,命名實體識別,依存句法分析,語義角色標註的功能(暫不提供語義依存分析功能)
1)分詞—— cws. model
2) 詞性標註—— pos. model
3)命名實體識別—— ner. model
4)依存句法分析—— parser. model
5)語義角色標註——(pisrl. model)
pyltp 分詞支援使用者使用外部自定義詞典。外部分詞詞典是乙個文字檔案,每一行指定乙個詞,編碼為 utf-8,
# coding=utf-8
# 分詞
cws_model_path = "./ltp_data/cws.model"
from pyltp import segmentor
def segmentor(sentence):
segmentor = segmentor() # 初始化例項
segmentor.load(cws_model_path) # 載入模型
# 使用分詞外部詞典
segmentor.load_with_lexicon(cws_model_path, 'path to /segment_lexicon_6_2') # 載入模型,第二個引數是外部詞典檔案路徑
words = segmentor.segment(sentence) # 分詞
segmentor.release() # 釋放模型
return words
sentence='想飛上天和太陽肩並肩'
words = segmentor(sentence)
print ','.join(words)
segmentor: model reloaded!
想,飛,上,天,和,太陽,肩,並肩
pyltp 詞性標註也支援使用者自定義外部詞典。詞性標註詞典也為乙個文字檔案,每行第一列指定乙個詞,第二列指定該詞的候選詞性(可以有多項詞性,一項一列)
pos_model_path = "./ltp_data/pos.model"
postagger = postagger()
postagger.load(pos_model_path) # 載入模型
# 使用詞性標註外部詞典
# postagger.load_with_lexicon(pos_model_path,'path to/postag_lexicon_6_2') # 載入模型
postags = postagger.postag(words)
print ','.join(postags)
segmentor: model reloaded!
v,v,v,n,c,n,n,d
ltp 採用 bieso標註體系。b 表示實體開始詞,i表示實體中間詞,e表示實體結束詞,s表示單獨成實體,o表示不構成命名實體。
ltp 提供的命名實體型別為:人名(nh)、地名(ns)、機構名(ni)。
b、i、e、s位置標籤和實體型別標籤之間用乙個橫線 - 相連;o標籤後沒有型別標籤。
from pyltp import parser
par_model_path = './ltp_data/parser.model'
# 依存句法分析
def parse(words , postags):
parser = parser() # 初始化例項
parser.load(par_model_path) # 載入模型
arcs = parser.parse(words, postags) # 句法分析
print("\t".join("%d:%s" % (arc.head, arc.relation) for arc in arcs))
parser.release() # 釋放模型
return arcs
姚,明,想,飛,上,天,和,太陽,肩,並肩
nh,nh,v,v,v,n,c,n,n,d
2:att 3:sbv 0:hed 3:vob 6:att 4:vob 9:lad 9:att 6:coo 3:coo
arc. head 表示依存弧的父結點的索引。 root 節點的索引是 0 ,第乙個詞開始的索引依次為1,2,3,···
arc. relation 表示依存弧的關係。
附:ltp依存分析模組所使用的依存關係標記含義 (
依存關係標記(共24個)
第乙個詞開始的索引依次為 0,1,2,···
返回結果 roles 是關於多個謂詞的語義角色分析的結果。由於一句話中可能不含有語義角色,所以結果可能為空。
role. index 代表謂詞的索引,role. arguments 代表關於謂詞的若干語義角色。
arg. name 表示語義角色關係,role. range. start 表示該語義角色起始詞位置的索引,arg. range. end 表示該語義角色結束詞位置的索引。
Ubuntu apt 使用指南
起初gnu linux系統中只有.tar.gz。使用者必須自己編譯他們想使用的每乙個程式。在debian出現之後,人們認為有必要在系統中新增 一種機制用來管理安裝在計算機上的軟體包。人們將這套系統稱為dpkg。至此著名的 package 首次在gnu linux上出現。不久之後紅帽子也 開始著手建立...
CImageList使用指南
1.綜述 在mfc 中cimagelist 類封裝了 影象列表控制項的功能,影象列表是乙個具有相同大小的 影象 可以是不同 型別 的集合,其主要用於 應用程式中大規模 圖示的儲存。該控制項是不可 見的,通常與其它如 clistbox ccombobox ccomboboxex ctabctrl 以及...
CImageList使用指南
cimagelist使用指南 1.綜述 在 mfc中cimagelist類封裝了影象列表控制項的功能,影象列表是乙個具有相同大小的影象 可以是不同型別 的集合,其主要用於應用程式中大 規模圖示的儲存,該控制項是不可見的。通常與其它如clistbox,ccombobox,ccomboboxex以及ct...