问题描述
我使用 this resource 导入了英语中使用的前 5,000 个名词(名为“top_nouns”的列表)。另外,我有一个形容词/颜色列表:
color_list = ["black","red","white","green"]
我的目标是找到与我的每种颜色最相关的名词。例如,我想找到“雪白”、“酒红”或“草绿”之类的对。
我已经尝试了两件事:
- 我使用了
wordnet.wup_similarity
函数:
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)
第一种方法完全没用,因为对我来说没有直接明显的组合:['White','follower',0.75],['White','traveler','dissenter','collector',0.75]
)。第二种方法产生了两种可用的组合(柠檬黄或盐白),但我正在寻找比这更多的名词颜色组合。
总而言之,是否有比上面介绍的更好的方法来找到“雪白”或“酒红”等名词颜色组合?请让我知道我是否可以改进我的问题,我一般是 NLP 和 Python 的初学者。感谢您的帮助!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)