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



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

nltk.corpus.brown.tagged.words()
[('The', 'AT'), ('Fulton', 'NP-TL'), ...]

我想得到一个所有这些标签的列表(每行一个标签(,没有它们附带的单词。例如:

AT
NP-TL
...

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

您只需要一个映射来访问元组的每一个元素,这与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')

最新更新