You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用NLTK提取文本动词和名词时得到异常返回结果如何解决

问题原因分析
  • 语言不匹配:NLTK 自带的 averaged_perceptron_tagger 词性标注器是基于英文语料训练的,你输入的文本是葡萄牙语,标注结果完全不符合预期,自然筛选不到正确的名词、动词。
  • filter 迭代器未转换:Python 3 中 filter() 函数返回的是迭代器对象,直接打印只会输出内存地址,不会展示具体的筛选结果,需要用 list() 转换后才能看到内容。
修正方案

1. 验证现有代码逻辑

将最后一行代码修改为如下形式,就能看到你当前筛选逻辑下的输出结果,不过因为标注器不支持葡萄牙语,结果依旧不符合预期:

NV = list(filter(lambda x:x[1]=='NN' or x[1] == 'VB', pos_tagged))
print(NV)

2. 正确处理葡萄牙语文本的词性标注

如果需要正确提取葡萄牙语的名词、动词,建议改用支持多语言的词性标注工具,比如 spaCy 安装葡萄牙语模型后使用,示例代码如下:

import spacy
# 前置安装命令:pip install spacy && python -m spacy download pt_core_news_sm
nlp = spacy.load("pt_core_news_sm")
text = """Executam serviços de apoio nas áreas de recursos humanos, administração, finançase logística; atendem fornecedores e clientes, fornecendo e recebendo informações sobre produtos e serviços; tratam de documentos variados, cumprindo todo o procedimento necessário referente aos mesmos. atuam na concessão de microcrédito a  microempresários, atendendo clientes em campo e nas agências, prospectando clientes nas comunidades."""
doc = nlp(text)
# 筛选名词(NOUN)、动词(VERB)
NV = [(token.text, token.pos_) for token in doc if token.pos_ in ("NOUN", "VERB")]
print(NV)

运行后即可得到符合预期的葡萄牙语名词、动词提取结果。

内容的提问来源于stack exchange,提问作者waka

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 23:15:06