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

调用NLTK book库计算文本lexical diversity返回None求助

问题分析与修复方案

你的代码返回None主要有以下几个问题,逐一解决即可:

1. 输入类型不匹配

用户通过input()输入的是字符串(比如"text1"),但函数里的books列表存储的是NLTK的Text对象,字符串和对象无法匹配,导致if text_input in books永远为False,函数直接返回None。

2. 缩进语法错误

原代码中return richness的缩进位置错误,Python对缩进有严格要求,它应该和if语句保持同一缩进层级,否则会触发语法错误。

3. 文本丰富度计算逻辑颠倒

Lexical Diversity(文本丰富度)的标准计算方式是不同词汇数量 / 总词汇数量,你写反成了len(text_input)/len(set(text_input)),得到的是词汇重复度而非丰富度。


修复后的完整代码

from nltk.book import *

def lexical_diversity_of_nltk_text(text_name):
    # 建立文本名称与对应Text对象的映射
    book_map = {
        "text1": text1,
        "text2": text2,
        "text3": text3,
        "text4": text4,
        "text5": text5,
        "text6": text6,
        "text7": text7,
        "text8": text8,
        "text9": text9
    }
    # 校验输入并计算结果
    if text_name in book_map:
        text = book_map[text_name]
        richness = len(set(text)) / len(text)
        return richness
    # 输入无效时返回提示
    return "输入无效,请输入text1-text9中的一个"

text_input = input('Please enter the number of text as in example - "text1": ')
print(lexical_diversity_of_nltk_text(text_input))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 07:07:34