在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')