Python NLP:查找与特定形容词匹配的名词

Python NLP:查找与特定形容词匹配的名词,python,nlp,nltk,linguistics,Python,Nlp,Nltk,Linguistics,我曾经导入英语中使用的前5000个名词(一个叫做“top_名词”的列表)。此外,我还有一个形容词/颜色列表: color_list = ["black", "red", "white", "green"] 我的目标是找到与我的每种颜色最相关的名词。例如,我想找到像“雪白”、“酒红”或“草绿”这样的情侣组合。 我已经尝试了两件事: 我使用了wordnet.wup\u相似性函数: 我存储了我的名词的每一个可能的语法集的

我曾经导入英语中使用的前5000个名词(一个叫做“top_名词”的列表)。此外,我还有一个形容词/颜色列表:

color_list = ["black", "red", "white", "green"]
我的目标是找到与我的每种颜色最相关的名词。例如,我想找到像“雪白”、“酒红”或“草绿”这样的情侣组合。

我已经尝试了两件事:

  • 我使用了
    wordnet.wup\u相似性
    函数:
  • 我存储了我的名词的每一个可能的语法集的定义,并检查是否包括我的一种颜色
  • 第一种方法是完全无用的,因为没有任何组合对我来说是显而易见的:
    ['White','follower',0.75],'White','traveler',0.75],'White','dispositer',0.75],'White','collector',0.75]
    )。第二种方法产生了两种可用的组合(柠檬黄或盐白色),但我正在寻找更多的名词颜色组合

    总而言之,有没有比上面介绍的更好的方法来找到像“雪白”或“酒红”这样的名词颜色组合?请让我知道我是否可以改进我的问题,我是NLP和Python的初学者。谢谢你的帮助

    list = []
    list_temp = []
    
    for word1 in color_list:
        for word2 in top_nouns:
            wordFromColor_list = wn.synsets(word1)
            wordFromTop_nouns = wn.synsets(word2)
            if wordFromColor_list and wordFromTop_nouns:
                s = wordFromColor_list[0].wup_similarity(wordFromTop_nouns[0])
                list_temp = [wordFromColor_list[0].lemmas()[0].name(), wordFromTop_nouns[0].lemmas()[0].name(), s]
                list.append(list_temp)
    
    sorted_list = sorted(list, key=lambda x: x[2])
    print(sorted_list)
    
    list = []
    list_temp = []
    
    for n in top_nouns:
      if wn.synsets(n):
        for l in range(len(wn.synsets(n))):
          synset = wn.synsets(n)[l]
          definition = wn.synset(synset.name()).definition()
          list_temp = [n, definition]
          list.append(list_temp)
          #print(f"Definition of {n}: {definition}")
    
    import pandas as pd
    df = pd.DataFrame(list, columns = ['noun', 'def'])
    for c in color_list:
        df_filter = df[df['def'].str.match(c)]
        print(df_filter)