0
我有元組的列表:如果第二個元素相同,則將列表中的第一個元素合併爲一個元組?
[('Donald', 'PERSON'), ('Trump', 'PERSON'), ('enters', 'O'), ('the', 'O'), ('White', 'LOCATION'), ('House', 'LOCATION')]
,我想輸出是:
[('Donald Trump'), ('enters the'), ('White House')]
下面的代碼讓我更接近想要的結果,但我不是很熟悉groupby功能呢。
mergedTags = []
from itertools import groupby
for tag, chunk in groupby(tagList, lambda x: x[1]):
if tag != "O":
tagMerged = " ".join(w for w, t in chunk)
mergedTags.extend([tagMerged])
else:
#tagMerged = " ".join(t for t, w in chunk)
for word, chunk in groupby(tagList, lambda x: x[0]):
mergedTags.extend([word])
print(mergedTags)
爲什麼基於'你有一個條件「O''? –
斯坦福大學Entitiy識別器標記未被識別爲「O」的元素。 – Yanic