我试图返回 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 获得丰富的文本
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