NLTK-从Brown语料库获取PoS标签列表

时间:2018-10-31 15:11:56

标签: python

在NLTK布朗语料库中,每个单词都与对应的PoS标签一起显示,如下所示(其中'AT, 'NP-TL'...为标签):

nltk.corpus.brown.tagged.words()

[('The', 'AT'), ('Fulton', 'NP-TL'), ...]

我想获得所有这些标签的列表(每行一个标签),但不带单词。例如:

AT
NP-TL
...

有人知道我只需要访问标签而不是单词需要使用的功能吗?

1 个答案:

答案 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')