我有以下内容:
[('The', 'NNP'), ('map', 'NNP'), ('is', 'VBZ'),
('way', 'NN'), ('of', 'IN'), ('using', 'VBG'), ('tool', 'NN'),
(',', ','), ('skill', 'VBG'), ('and', 'CC')]
并且,每次与'NN'配对时,我需要用'NN'替换字符串。所以输出应该是:
[('The', 'NNP'), ('map', 'NNP'), ('is', 'VBZ'),
('NN', 'NN'), ('of', 'IN'), ('using', 'VBG'), ('NN', 'NN'),
(',', ','), ('skill', 'VBG'), ('and', 'CC')]
我尝试了以下操作,但它不会替换该项目。请帮忙!
for s in sentence:
if s[1] == 'NN':
s[0] == 'NN'
print(sentence)
答案 0 :(得分:2)
无法分配元组 - 它们是不可变的。一种选择是从头开始重建POS标签列表。
pos_tags = [(x if y != 'NN' else y, y) for x, y in pos_tags]
如果不是这样,那么,重新分配您的列表项。
for i, (x, y) in enumerate(pos_tags):
if y == 'NN':
pos_tags[i] = ('NN', 'NN')
print(pos_tags)
[('A', 'NNP'),
('Discourse', 'NNP'),
('is', 'VBZ'),
('NN', 'NN'),
('of', 'IN'),
('using', 'VBG'),
('NN', 'NN'),
(',', ','),
('thinking', 'VBG'),
('and', 'CC'),
('acting', 'VBG')]