删除标记的句子中不需要的符号

2024-06-02 08:32:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用nltkbrown语料库来获得简化的标记集

import nltk
from nltk.corpus import brown

brown_tags = []

for sent in brown.tagged_sents(categories = 'news', simplify_tags = True):
    brown_tags.extend([tag for (word, tag) in sent])

tag_set = set(brown_tags)

然后我得到

set(['', 'FW', 'DET', 'WH', "''", 'VBZ', 'VB+PPO', "'", ')', 'ADJ', 'PRO', '*', ',', '.', 'TO', 'NUM', 'NP', ':', 'ADV', '``', 'VD', 'VG', 'VN', 'N', 'P', 'EX', 'V', 'CNJ', 'UH', '(', 'MOD'])

为什么有'', '""', ')',...? 我怎样才能删除这些符号?在


Tags: infrom标记importfortagtagscorpus
2条回答

奇怪的标签不是错误。您可以使用nltk.help.brown_tagset()查看标记及其含义的完整列表。神秘标记代表句子的结束(.,代表.?!等)、否定词(*代表notn't)等等,所以不要把它们扔掉。在

另外,您接受的答案将过滤掉所有的双标记,如VB+PRO(动词加代词,如lemmegimme)。别这么快就把信息扔出去。在

你可以这样移除

>>> lst = ['', 'FW', 'DET', 'WH', "''", 'VBZ', 'VB+PPO', "'", ')', 'ADJ', 'PRO', '*', ',', '.', 'TO', 'NUM', 'NP', ':', 'ADV', '``', 'VD', 'VG', 'VN', 'N', 'P', 'EX', 'V', 'CNJ', 'UH', '(', 'MOD']    
>>> print ([ i for i in lst if i.isalpha() ])
['FW', 'DET', 'WH', 'VBZ', 'ADJ', 'PRO', 'TO', 'NUM', 'NP', 'ADV', 'VD', 'VG', 'VN', 'N', 'P', 'EX', 'V', 'CNJ', 'UH', 'MOD']

相关问题 更多 >