Python中如何处理键的部分匹配 怎么办
希望结合NLP中给定句子和现有词典中的信息 关键词是预期名词和提取限定词,如Python中如何处理键的部分匹配 怎么办,python,string,nlp,character,spacy,Python,String,Nlp,Character,Spacy,希望结合NLP中给定句子和现有词典中的信息 关键词是预期名词和提取限定词,如the和some #input text = "Many plates and glasses are in the washing machine. These plates are my favourite." keywords = ['plate', 'glass', 'washing machine'] #existing data dic = {'plate':'red', 'glass':
the
和some
#input
text = "Many plates and glasses are in the washing machine. These plates are my favourite."
keywords = ['plate', 'glass', 'washing machine']
#existing data
dic = {'plate':'red', 'glass':'transparent', 'machine':'gray'}
#output
{'plate':['red', 'some'], 'glass':['transparent', 'some'], 'washing machine':['gray', 'the'] }
输出与误差
我想知道如何解决这个问题,以获得有关部分匹配问题的首选输出
希望添加部分复合词的元素,在本例中,machine
的元素添加到keywashing-machine
的元素中
我不想创建新密钥,但要在密钥“machine和washing machine”之间进行部分匹配
输出
{'plate': [], 'glass': [], 'washing machine': []}
plate Some
{'plate': ['Some'], 'glass': [], 'washing machine': []}
machine the
错误
第一次试验的结果
希望不要添加新的键“machine”,而是将machine
的元素添加到洗衣机
{'plate': ['Some', 'These', 'red'], 'glass': ['transparent'],
'washing machine': [], 'machine': ['the', 'gray']}
预期产量
#output
{'plate':['red', 'some'], 'glass':['transparent', 'some'],
'washing machine':['gray', 'the'] }
更新代码中的以下部分:
if k == target_k:
result[k].append(dic[k])
进入
同样地
result[token.head.lemma_].append(token.text)
进入
@DevCI9感谢您的回答。我的问题不够清楚,所以我做了一些修正。@Mahler我也更新了答案。请check@DevCI9再次感谢你。我试图执行它,但仍然没有获得prefferd输出。
if k == target_k:
result[k] = result.get(k, [])
result[k].append(dic.get(k, None))
result[token.head.lemma_].append(token.text)
result[token.head.lemma_] = result.get(token.head.lemma_, [])
result[token.head.lemma_].append(token.text)