代码之家  ›  专栏  ›  技术社区  ›  user3541631

检查格式错误的字符串中的基本关键字和相关关键字

  •  0
  • user3541631  · 技术社区  · 5 年前

    我有以下数据:

    base = ['Manufacturing', 'Aviation', 'Astronomy', 'Entertaiment', 'Defense & Security']
    

    这些关键字也有相关的关键字:

    related = {'Defense & Security': ['defense', 'security'],
               'Entertaiment': ['soccer', 'sports', 'cinematography'] }
    

    我想使用基本关键字及其相关关键字搜索一些文本。如果找到其中一个关键字或相关关键字,搜索应停止,并返回基本关键字。

    即使单词之间没有空格,我也想搜索。例如:

    keyword = 'Aviation'
    search_in = 'detectorshigh intensity lampsbar codeaviation readerphotodiodesview' 
    
    if keyword.lower() in search_in.lower():
         return True
    

    上面的代码不会返回 True ,因为有些单词之间不存在空格,但我希望它能返回 没错 .

    0 回复  |  直到 5 年前
        1
  •  1
  •   Georgina Skibinski    5 年前

    应该这样做:

    def getKeywords(search_in, base, related):
        lst=[]
    
        for w in base:
            if(w.lower() in search_in):
                lst.append(w)
            else:
                for w_r in related.get(w, []):
                    if(w_r.lower() in search_in):
                        lst.append(w)
                        break
        return lst
    
    base = ['Manufacturing', 'Aviation', 'Astronomy', 'Entertaiment', 'Defense & Security']
    
    related = {'Defense & Security': ['defense', 'security'],
               'Entertaiment': ['soccer', 'sports', 'cinematography'] }
    
    search_in = 'detectorshigh intensity lampsbar codeaviation readerphotodiodesview' 
    
    print(getKeywords(search_in, base, related))
    #outputs: ['Aviation']