0

0

如何让 Stanza 词形还原器仅返回词元而不是字典?

霞舞

霞舞

发布时间:2025-09-23 16:08:58

|

831人浏览过

|

来源于php中文网

原创

如何让 stanza 词形还原器仅返回词元而不是字典?

本文介绍了如何在使用 Stanza 进行词形还原时,从其输出的嵌套字典结构中提取出纯粹的词元(lemma)。通过示例代码演示了如何遍历 Stanza 处理后的文档对象,并使用列表推导式高效地提取每个词的词元,避免了不必要的字典处理开销,从而简化了后续的文本分析流程。

在使用 Stanza 进行自然语言处理时,词形还原 (lemmatization) 是一个常见的任务。Stanza 能够很好地处理多种语言的词形还原,但其默认输出格式是包含多个属性(如 ID、文本、词性标注、词元等)的字典结构,这在某些情况下显得过于冗余。如果只需要词元本身,直接处理整个字典会增加不必要的计算开销。本文将介绍如何从 Stanza 的输出中提取纯粹的词元,避免处理额外的字典信息。

Stanza 的 Pipeline 处理文档后,会生成一个嵌套的结构。文档被分割成句子,每个句子又是一个 token 列表,而每个 token 包含一个或多个 word 对象,每个 word 对象就是一个包含各种属性的字典,其中包括我们需要的词元 (lemma)。

以下代码演示了如何使用 Stanza 进行词形还原,并提取出纯粹的词元列表:

import stanza

# 下载西班牙语模型(如果尚未下载)
stanza.download('es', package='ancora', processors='tokenize,mwt,pos,lemma', verbose=False)

# 创建 Stanza Pipeline
stNLP = stanza.Pipeline(processors='tokenize,mwt,pos,lemma', lang='es', use_gpu=False) #use_gpu根据实际情况设置

# 处理文本
doc = stNLP('me hubiera gustado mas “sincronia” con la primaria')

# 提取词元
lemmas = [word.lemma for t in doc.iter_tokens() for word in t.words]

# 打印词元列表
print(lemmas)

代码解释:

Warp
Warp

新一代的终端工具(内置AI命令搜索)

下载
  1. stanza.download(...): 下载西班牙语模型。processors='tokenize,mwt,pos,lemma' 指定了要使用的处理模块,包括分词 (tokenize)、多词单元 (mwt)、词性标注 (pos) 和词形还原 (lemma)。
  2. stanza.Pipeline(...): 创建一个 Stanza Pipeline 对象,用于处理文本。lang='es' 指定了语言为西班牙语。use_gpu=True 可以利用 GPU 加速处理,如果你的机器支持 CUDA,可以设置为 True,否则设置为 False。
  3. doc = stNLP(...): 使用 Pipeline 处理文本,返回一个 Document 对象。
  4. lemmas = [word.lemma for t in doc.iter_tokens() for word in t.words]: 这是一个列表推导式,用于提取词元。
    • doc.iter_tokens(): 迭代文档中的每个 token。
    • for word in t.words: 迭代 token 中的每个 word 对象(一个 token 可能包含多个 word 对象,例如多词单元)。
    • word.lemma: 访问 word 对象的 lemma 属性,即词元。

注意事项:

  • 确保已安装 Stanza 库。可以使用 pip install stanza 进行安装。
  • use_gpu 参数应该根据你的硬件环境进行设置。如果你的机器没有 GPU 或者 CUDA 不可用,请设置为 False,否则可能会出现错误。
  • 代码中 stanza.download() 只会下载一次模型,之后会从本地加载。
  • stanza.Pipeline 的 processors 参数指定了要运行的处理模块。根据你的需求,可以添加或删除模块。例如,如果不需要词性标注,可以从 processors 中移除 pos。

总结:

通过遍历 Stanza 处理后的文档对象,并使用列表推导式,可以方便地提取出纯粹的词元列表,避免了处理额外的字典信息。这种方法可以提高处理效率,并简化后续的文本分析流程。请注意 Stanza 的版本,不同版本可能在 API 上有所差异。本文示例基于 stanza==1.7.0 版本。

相关专题

更多
pip安装使用方法
pip安装使用方法

安装步骤:1、确保Python已经正确安装在您的计算机上;2、下载“get-pip.py”脚本;3、按下Win + R键,然后输入cmd并按下Enter键来打开命令行窗口;4、在命令行窗口中,使用cd命令切换到“get-pip.py”所在的目录;5、执行安装命令;6、验证安装结果即可。大家可以访问本专题下的文章,了解pip安装使用方法的更多内容。

339

2023.10.09

更新pip版本
更新pip版本

更新pip版本方法有使用pip自身更新、使用操作系统自带的包管理工具、使用python包管理工具、手动安装最新版本。想了解更多相关的内容,请阅读专题下面的文章。

412

2024.12.20

pip设置清华源
pip设置清华源

设置方法:1、打开终端或命令提示符窗口;2、运行“touch ~/.pip/pip.conf”命令创建一个名为pip的配置文件;3、打开pip.conf文件,然后添加“[global];index-url = https://pypi.tuna.tsinghua.edu.cn/simple”内容,这将把pip的镜像源设置为清华大学的镜像源;4、保存并关闭文件即可。

760

2024.12.23

python升级pip
python升级pip

本专题整合了python升级pip相关教程,阅读下面的文章了解更多详细内容。

349

2025.07.23

登录token无效
登录token无效

登录token无效解决方法:1、检查token的有效期限,如果token已经过期,需要重新获取一个新的token;2、检查token的签名,如果签名不正确,需要重新获取一个新的token;3、检查密钥的正确性,如果密钥不正确,需要重新获取一个新的token;4、使用HTTPS协议传输token,建议使用HTTPS协议进行传输 ;5、使用双因素认证,双因素认证可以提高账户的安全性。

6113

2023.09.14

登录token无效怎么办
登录token无效怎么办

登录token无效的解决办法有检查Token是否过期、检查Token是否正确、检查Token是否被篡改、检查Token是否与用户匹配、清除缓存或Cookie、检查网络连接和服务器状态、重新登录或请求新的Token、联系技术支持或开发人员等。本专题为大家提供token相关的文章、下载、课程内容,供大家免费下载体验。

816

2023.09.14

token怎么获取
token怎么获取

获取token值的方法:1、小程序调用“wx.login()”获取 临时登录凭证code,并回传到开发者服务器;2、开发者服务器以code换取,用户唯一标识openid和会话密钥“session_key”。想了解更详细的内容,可以阅读本专题下面的文章。

1064

2023.12.21

token什么意思
token什么意思

token是一种用于表示用户权限、记录交易信息、支付虚拟货币的数字货币。可以用来在特定的网络上进行交易,用来购买或出售特定的虚拟货币,也可以用来支付特定的服务费用。想了解更多token什么意思的相关内容可以访问本专题下面的文章。

1306

2024.03.01

c++ 根号
c++ 根号

本专题整合了c++根号相关教程,阅读专题下面的文章了解更多详细内容。

58

2026.01.23

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
SQL 教程
SQL 教程

共61课时 | 3.6万人学习

麻省理工大佬Python课程
麻省理工大佬Python课程

共34课时 | 5.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号