在NLTK布朗语料库中,每个单词都与对应的PoS标签一起显示,如下所示(其中'AT, 'NP-TL'...
为标签):
nltk.corpus.brown.tagged.words()
[('The', 'AT'), ('Fulton', 'NP-TL'), ...]
我想获得所有这些标签的列表(每行一个标签),但不带单词。例如:
AT
NP-TL
...
有人知道我只需要访问标签而不是单词需要使用的功能吗?
答案 0 :(得分:0)
您只需要一个映射即可访问元组的每个第二个元素,这与nltk无关
您可以使用for循环
l = [('The', 'AT'), ('Fulton', 'NP-TL')]
expected_list = [tuple[1] for tuple in l]
此理解列表存储列表中存在的每个元组的第二个元素(哪个是标签)
您也可以使用地图和lambda函数。 一张地图将lambda函数应用于列表的每个元素(在这里,您获得了每个元组的第二个元素)
在python3中,地图正在返回地图对象,如果要将其用作列表,则需要转换为列表
l = [('The', 'AT'), ('Fulton', 'NP-TL')]
expected_list = list(map(lambda x: x[1], l))
获取列表后,您可以使用print(*)方法轻松地将所有答案打印在新行上(仅适用于Python3)
print(*expected_list, sep='\n')