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

如何使用Spacy统计语料每句指定token的出现次数并生成对应结果列表

代码问题分析
  • 追加计数的位置错误:你将nb_and.append(i)写在了单token匹配and的判断分支内,每匹配到一次and就会立刻向列表追加当前的计数,而不是遍历完整个句子、拿到该句的总and次数后再追加。
  • 无and的句子不会生成计数:如果某句中完全没有and,就不会触发if分支的代码,自然不会把0的计数追加到列表中,导致最终列表缺少对应句子的计数项。
修复后代码

如果你需要的是字符串类型的计数结果(和示例输出格式一致),可以用以下写法:

doc = nlp(corpus)
nb_and = []
for sent in doc.sents:
    i = 0
    for token in sent:
        if token.text == "and":
            i += 1
    # 遍历完当前句子所有token后,统一追加该句的计数
    nb_and.append(str(i))

如果需要数值类型的结果,去掉str()包裹即可。也可以用更简洁的推导式写法:

doc = nlp(corpus)
nb_and = [str(sum(1 for token in sent if token.text == "and")) for sent in doc.sents]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 20:45:07