我正在使用nltk
brown
语料库来获取简化的标签集
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'])
为什么有'', '""', ')',...
?
我该如何删除这些符号?
答案 0 :(得分:1)
你可以这样删除,
>>> 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']
答案 1 :(得分:1)
奇怪的标签不是错误。您可以使用nltk.help.brown_tagset()
查看完整的标记列表及其含义。神秘标签代表句子终止(.
,.
,?
,!
等标签),负{* 1}} *
},not
)等等所以不要把它们抛弃。
此外,您接受的答案将过滤掉所有双重标记,例如n't
(动词加代词,如 lemme , gimme )。不要太快丢弃信息。