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

如何使用Stanza在保留标点的情况下统计不含标点的词数?

使用Stanza统计不含标点的词数

你可以通过过滤掉Stanza标注为标点(POS标签为PUNCT)的token来实现需求,原代码里的doc.num_tokens会统计所有token(包括标点、符号),所以得到了8的结果。

修改后的代码如下:

import stanza

# 初始化Stanza的英文nlp pipeline(如果还没初始化)
nlp = stanza.Pipeline(lang='en')

text = """ Q1 revenue reached €12 .7 billion ."""
doc = nlp(text)

# 过滤标点token,统计剩余有效token数量
word_count = sum(1 for token in doc if token.pos != 'PUNCT')
print(word_count)

运行这段代码会输出6,对应文本里的Q1、revenue、reached、€12、.7、billion这几个非标点token。

简单说明:

  • Stanza会给每个token自动标注词性(POS),所有标点符号的POS标签统一为PUNCT
  • 遍历doc中的所有token,只保留POS不为PUNCT的内容,统计它们的数量就是你需要的不含标点的词数

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 09:45:27