python(8)—- pyltp5个核心函数

python(8)—- pyltp5个核心函数1 简介 LTP 语言技术平台 是哈工大社会计算与信息检索研究中心研制的一整套开放中文自然语言处理系统 pyltp 是 LTP 的 python 封装 提供了分词 词性标注 命名实体识别 依存句法分析 语义角色标注的功能 暂不提供语义依存分析功能 2 各个模型功能 1 分词 cws model 2 词性标注 pos model 3

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 使用的词性标注集:

python(8)---- pyltp5个核心函数

对于语料中歌手歌曲名的识别,只用到分词﹑词性标注两步。在分词这一步,采用外部分词词典,将语料中出现的部分歌手名﹑歌曲名都作为外部词放入外部分词词典;在词性标注这一步,采用外部词性标注词典,人工将部分歌手名的词性标注为 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

命名实体识别标注集:

五种标注:

python(8)---- pyltp5个核心函数

三种 NE :

python(8)---- pyltp5个核心函数

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(爱, 听)

图:

python(8)---- pyltp5个核心函数

 

依存句法关系:

python(8)---- pyltp5个核心函数

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) -->恐龙

图:

python(8)---- pyltp5个核心函数

在语义角色标注这一步中输出 A1 ,输出放入结果列表,即为提取出的动画片名。(对于有多个谓词对应的多个 A1 ,一般输出谓词索引较大时对应的那一个 A1 ,因为对于提取动画片名的语料,只用提取一次信息(即动画片名),所以不用担心 A1 中可能出现非动画片名的信息。

【 而对于歌手歌曲名的识别,歌手歌曲可能连着作为一个 A1 ,比如“周杰伦的告白气球”,无法分开这两项,比如“我想听周杰伦的告白气球”的结果“周杰伦的告白气球”会作为一个 A1 输出的。】

词性标注# 我/r 想/v 看/v 恐龙来了/n
#语义角色标注# 2 A1:(3,3) 恐龙来了

python(8)---- pyltp5个核心函数

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

python(8)---- pyltp5个核心函数

 

转载:https://blog.csdn.net/_/article/details/

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

(0)
上一篇 2026年3月17日 上午11:07
下一篇 2026年3月17日 上午11:07


相关推荐

  • 百度分享解决https格式

    百度分享解决https格式现在的百度分享都是不支持https格式的,所以碰到https格式的就会没有效果,想要解决这个问题也很简单,只需要两步:1.https://github.com/hrwhisper/baiduShare在此网址里面下载一个static包,主要要放到项目里的根目录下,我这里用的是Yii框架,是把static包直接放到web下面了2.src=’http://bdimg.share.baidu.com…

    2022年10月8日
    5
  • quartus ii 12.0安装教程_系统安装教程

    quartus ii 12.0安装教程_系统安装教程安装前先关闭杀毒软件和360卫士,注意安装路径不能有中文,安装包路径也不要有中文。1.鼠标右击【QuartusII12.0】压缩包选择【解压到QuartusII12.0】。2.双击打开解压后的【QuartusII12.0】文件夹。3.双击打开【Quartus】文件夹。4.鼠标右击【12.0_178_quartus_windows.exe】选择【以管理员身份运行】。5.点击【Install】。6.解压中。7.勾选【AllowA…

    2022年10月8日
    3
  • 多项logistic回归系数解释_Logistic回归结果的回归系数和OR值解读

    多项logistic回归系数解释_Logistic回归结果的回归系数和OR值解读Logistic 回归结果的回归系数和 OR 值解读 Logistic 回归虽然名字叫 回归 但却是一种分类学习方法 使用场景大概有两个 第一用来预测 第二寻找因变量的影响因素 一从线性回归到 Logistic 回归线性回归和 Logistic 回归都是广义线性模型的特例 假设有一个因变量 y 和一组自变量 x1 x2 x3 xn 其中 y 为连续变量 我们可以拟合一个线性方程 y 0 1 x

    2026年3月16日
    2
  • python列表转成字符串,同时自定义分隔符[通俗易懂]

    python列表转成字符串,同时自定义分隔符[通俗易懂]python列表转成字符串,同时自定义分隔符a=’,’mylist=[‘Brazil’, ‘Russia’, ‘India’, ‘China’]print(a.join(mylist))提供Python自动化脚本编写服务,如有需求可以联系qq:838648292…

    2022年5月4日
    60
  • Linux 命令(139)—— nslookup 命令

    Linux 命令(139)—— nslookup 命令1.命令简介nslookup(NameServerLookup)是一种网络管理命令,用于从DNS服务器查询域名、IP或其他DNS记录信息。nslookup有两种工作模式,交互模式和非交互模式。在交互模式下,用户可以向域名服务器查询各类主机、域名的信息,或者输出域名中的主机列表。在非交互模式下,针对一个主机或域名仅仅获取特定的名称或所需信息。进入交互模式有两种方式:(1)直接输入nslookup命令,不加任何参数,此时nslookup会连接到默认的域名服务器(/etc/resol

    2022年10月19日
    6
  • PyCharm报错Unresolved Reference

    PyCharm报错Unresolved Reference两台不同的电脑 开发相同的软件时 一台电脑总是报错 UnresolvedRe 解决办法如下

    2026年3月17日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号