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