Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python中如何处理键的部分匹配 怎么办_Python_String_Nlp_Character_Spacy - Fatal编程技术网

Python中如何处理键的部分匹配 怎么办

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':

希望结合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':'transparent', 'machine':'gray'}

#output
{'plate':['red', 'some'], 'glass':['transparent', 'some'], 'washing machine':['gray', 'the'] }
输出与误差 我想知道如何解决这个问题,以获得有关部分匹配问题的首选输出

希望添加部分复合词的元素,在本例中,
machine
的元素添加到key
washing-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)