我有一个语音标记词的部分列表(每个元素都是“word tag”格式),在删除某个“word”之后,我试图找到一种删除相应“tag”的方法。更具体地说,我的算法只能处理每个元素的“word”部分,因此我首先将当前的“word”“tag”列表拆分为两个单独的列表文字和标签。不过,在从单词列表中删除某些不必要的单词之后,我想连接相应的标记。如何有效地从不同的列表中删除相应的标记?或者有更好的方法吗?我最初尝试使用带标记的单词运行我的清理算法,但找不到忽略每个单词的标记的方法。
通过显示我的代码,我的问题可能更清楚:
my_list = ['I|PN', 'am|V', 'very|ADV', 'happy|ADJ']
tags = []
words = []
for i, x in enumerate(my_list):
front, mid, end = x.partition('|')
words.append(front)
tags.append(mid+end)
当前输出(在我通过清理算法运行单词列表之后):
words = ['I', 'very', 'happy']
tags = ['PN', 'V', 'ADV', 'ADJ']
很明显,我不能再连接这些列表元素了,因为我没有从删除的单词中删除相应的标记。
期望输出:
words = ['I', 'very', 'happy']
tags = ['PN', 'ADV', 'ADJ']
如何实现上述输出?