1. 简介
2. 各个模型功能
3.模型的应用
3.1.分词
pyltp 分词支持用户使用外部自定义词典。外部分词词典是一个文本文件,每一行指定一个词,编码为 UTF-8,
加载模型:
# 分词 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() # 释放模型
举例:
播放/v 周杰伦/nh 的/u 歌/n
我/r 想/v 听/v 一/m 首/v 小/a 虎队/n 的/u 爱/v
我/r 想/v 听/v 一/m 首/v 小虎队/nh 的/u 爱/n
LTP 使用的词性标注集:

对于语料中歌手歌曲名的识别,只用到分词﹑词性标注两步。在分词这一步,采用外部分词词典,将语料中出现的部分歌手名﹑歌曲名都作为外部词放入外部分词词典;在词性标注这一步,采用外部词性标注词典,人工将部分歌手名的词性标注为 nh ,将部分歌曲名的词性标注为 n ,同时将语料中一些干扰信息的词性标注为非 n 词性,比如:将“歌”的词性标注为 v 或者 a ,这样,“我想听歌”这一语料进行分词词性标注之后,就不会将名词“歌”输出到歌曲名列表中去。
3. 命名实体识别
LTP 采用 BIESO 标注体系。B 表示实体开始词,I 表示实体中间词,E 表示实体结束词,S 表示单独成实体,O 不构成命名实体。
LTP 提供的命名实体类型为:人名(Nh),地名(Ns),机构名(Ni)。
pyltp 命名实体识别标注:BIESO 位置标签和实体类型标签用一个横线相连,O 标签后面没有实体类型标签。
我/O 想/O 听/O 一/O 首/O 小虎队/S-Nh 的/O 爱/O
命名实体识别标注集:
五种标注:

三种 NE :

4. 依存句法分析
代码:
# 依存句法分析 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
示例:
依存句法分析 2:SBV 0:HED 2:VOB 5:ATT 8:ATT 8:ATT 6:RAD 3:VOB
=====依存句法分析===== SBV(我, 想) HED(想, Root) VOB(听, 想) ATT(一, 首) ATT(首, 爱) ATT(小虎队, 爱) RAD(的, 小虎队) VOB(爱, 听)
图:

依存句法关系:

5. 语义角色标注
代码:
# 语义角色标注 labeller.load(srl_model_path) # 加载模型 roles = labeller.label(words, postags, arcs) # 语义角色标注 for role in roles: print(role.index, "".join( ["%s:(%d,%d)" % (arg.name, arg.range.start, arg.range.end) for arg in role.arguments])) for arg in role.arguments: if arg.name == 'A1': words_list=words[arg.range.start:arg.range.end+1] a = '' print(a.join(words_list))
“ 我 / 想 / 看 / 恐龙 / 来 / 了 ” 1 A0:(0,0)A1:(2,5) 2 A1:(3,3)
A1:(2,5) -->看恐龙来了 A1:(3,3) -->恐龙
图:

在语义角色标注这一步中输出 A1 ,输出放入结果列表,即为提取出的动画片名。(对于有多个谓词对应的多个 A1 ,一般输出谓词索引较大时对应的那一个 A1 ,因为对于提取动画片名的语料,只用提取一次信息(即动画片名),所以不用担心 A1 中可能出现非动画片名的信息。
【 而对于歌手歌曲名的识别,歌手歌曲可能连着作为一个 A1 ,比如“周杰伦的告白气球”,无法分开这两项,比如“我想听周杰伦的告白气球”的结果“周杰伦的告白气球”会作为一个 A1 输出的。】
词性标注# 我/r 想/v 看/v 恐龙来了/n
#语义角色标注# 2 A1:(3,3) 恐龙来了

(2)附加语义角色15个:

转载:https://blog.csdn.net/_/article/details/
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/224799.html原文链接:https://javaforall.net
