计算NLTK书籍包中文本的丰富度

问题描述 投票:0回答:1

我试图返回 NLTK 书中提供的 NLTK 文本的丰富性,但由于某种原因我没有得到任何结果。

有人可以解释一下我做错了什么吗?

从 nltk.book 导入 *

def lexical_diversity_of_nltk_text(text_input):

books = [text1, text2, text3, text4, text5, text6, text7, text8, text9]

if text_input in books:
        richness =  len(text_input)/len(set(text_input))

    return richness 

text_input = input('请输入文本数量,如示例 - "text1": ')

打印(lexical_diversity_of_nltk_text(text_input))

我期待从 ntlk book.package 获得丰富的文本

python text nltk text-processing
1个回答
0
投票

text_input
变量是一个字符串(例如,
"text1"
),因为它来自
input()
。但是,
books
列表包含实际的 NLTK
Text
对象(例如,
text1
text2
),而不是它们的字符串名称。当你检查是否
text_input in books
时,它总是返回
False
,因为像
"text1"
这样的字符串与对象
text1
不一样。

使用字典将字符串名称(如

"text1"
)映射到相应的 NLTK
Text
对象。然后,检查
text_input
是否是字典中的有效键。

def lexical_diversity_of_nltk_text(text_input):
    books = {
        "text1": text1,
        "text2": text2,
        "text3": text3,
        "text4": text4,
        "text5": text5,
        "text6": text6,
        "text7": text7,
        "text8": text8,
        "text9": text9
    }
    
    if text_input in books:
        text = books[text_input]
        richness = len(text) / len(set(text))
        return richness
    else:
        return None
© www.soinside.com 2019 - 2024. All rights reserved.