2 回答

TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超5個(gè)贊
您正在替換數(shù)據(jù)結(jié)構(gòu),而不僅僅是更新值。如果此時(shí)不存在,您只想創(chuàng)建一個(gè)新容器。
對(duì)于行動(dòng):
if token.pos_ == "VERB":
action_key = str.lower(token.text)
if action_key not in actions:
actions[action_key] = 0
actions[action_key] += 1
對(duì)于實(shí)體:
for token in doc.ents:
entity_key = token.label_
entity_value = token.text
if entity_key not in entities:
entities[entity_key] = []
if entity_value not in entities[entity_key]:
entities[entity_key].append(entity_value)
請(qǐng)注意,您可以使用defaultdict. 您還可以使用一組,而不是每次都檢查列表中是否有重復(fù)項(xiàng)
actions = defaultdict(int)
entities = defaultdict(set)
...
if token.pos_ == "VERB":
actions[str.lower(token.text)] += 1
...
for token in doc.ents:
entities[token.label_].add(token.text)

TA貢獻(xiàn)1785條經(jīng)驗(yàn) 獲得超4個(gè)贊
您在將令牌轉(zhuǎn)換為小寫方面不一致。分配給字典時(shí)使用小寫版本,但調(diào)用時(shí)使用原始大小寫actions.get()
。因此,如果令牌具有混合大小寫,則在調(diào)用 時(shí)將繼續(xù)獲取默認(rèn)值actions.get()
,并繼續(xù)將其設(shè)置為 1。
actions[token.text.lower()] = actions.get(token.text.lower(), 0) +1
添加回答
舉報(bào)