我正在用python在线学习nltk。
任务是从完整的Text6集合中过滤单词,第一个字母为大写字母,所有其他字母为小写字母。 打印出现的单词数。
有人可以帮忙说出确切答案(因为这是nltk的标准文字)以及代码中有什么问题。
我尝试了以下代码:
from nltk.book import text6
import re
pattern = '[A-Z]+[a-z]+$'
capsword= [word for word in set(text6) if re.search(pattern, word)]
print(len(capsword))
我的实际输出是461。 但是,我不确定预期的输出是否被隐藏。
答案 0 :(得分:1)
这应该对您有用,在Fresco Play上对我有用
from nltk.book import text6
title_words = [word for word in text6 if word.istitle()]
print(len(title_words))
Output: 2672
根据挑战,我们应该在text6中使用完整的单词集。
istitle()方法对于首字母大写而所有其他字母小写的单词返回 True
答案 1 :(得分:0)
我更改了模式(包括特殊字符,如ABC!或ABC。),它起作用了:
from nltk.book import text6
import re
pattern = '[A-Z][a-z*]'
a = [word for word in set(text6) if (re.search(pattern, word))]
print(len(a))