python - NLTK - 从布朗语料库中获取 PoS 标签列表
问题描述
在 NLTK Brown Corpus 中,每个单词都与其对应的 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中,一个map是返回一个map对象,如果想作为list使用,需要转换成list
l = [('The', 'AT'), ('Fulton', 'NP-TL')]
expected_list = list(map(lambda x: x[1], l))
获取列表后,您可以使用 print(*) 方法轻松地将所有答案打印在新行上(仅限 Python3)
print(*expected_list, sep='\n')
推荐阅读
- elixir - Elixir 地图返回 nil
- java - Android 在屏幕上录制音频
- visual-studio-2019 - Sonarlint 未突出显示 Visual Studio Enterprise 2019 中的问题
- javascript - 多个 WebBrowser 控件 WPF 中的集线器连接失败
- oracle - DBMS_PARALLEL_EXECUTE 和间接授予对过程的授权
- python - 如何使用 Python unittest 在另一个方法中模拟一个方法?
- python - Tweepy 地理搜索不断返回超出范围的推文
- java - MAVEN :- 无法解析项目的依赖关系
- netbeans - 返回到 Netbeans 中的当前调试行
- google-cloud-platform - 如何确保我的客户不会滥用我通过 Google Cloud Marketplace 提供的解决方案