0

我正在尝试编写一个简单的函数,如下所示:

def lexical_diversity(text,word):
    from nltk.book import text
    return 100*text.count(word)/len(set(text))

我知道我可以在函数之前导入文本。但是,我想知道为什么会出现以下错误

ImportError:无法从“nltk.book”导入名称“文本”

它告诉我,作为语料库的“文本”在 nltk 中不存在——这是真的。但是,我希望用户将文本识别为 text1、text2 或 text3。

4

1 回答 1

0

为了在 python 中导入库的子模块,您可以使用importlibmodule.

import importlib

def lexical_diversity(nltk_sub_module,word):
    
    imported_model_module = importlib.import_module( "nltk.book")
    text = getattr(imported_model_module,nltk_sub_module)

    return 100*text.count(word)/len(set(text))

lexical_diversity("text3", "book")
于 2021-05-03T03:15:49.857 回答