gpt4 book ai didi

ruby - 同义词的数据结构

转载 作者:搜寻专家 更新时间:2023-10-30 21:47:09 26 4
gpt4 key购买 nike

我正在寻找一种数据结构来保留同义词。我想要“Washington D.C.”、“Washington DC”或“Washington D.C”来关联“Washington”。类似于 List => Value 结构。

我有一项服务,如果在特定网站上提到他们的城市,我会向用户发送电子邮件。当他们注册时,他们输入他们的电子邮件和城市。然而,有些人会输入“Washington”,有些人会输入“Washington D.C.”。现在我希望将这些放在同一个“桶”中,如果网站上提到“华盛顿特区”或“华盛顿”,我会向所有这些人发送电子邮件。

最佳答案

class Synonyms
def initialize( *syns )
@all = []
@idx = {}
syns.each{ |syn| self << syn }
end
def <<( syn )
p syn
unless @idx.include?(syn)
@all << syn
@idx[syn] = @all
end
end
def []( syn )
@idx[syn]
end
end

wash = Synonyms.new "Washington DC", "Washington", "Washington D.C."

p wash["Washington"] #=> ["Washington DC", "Washington", "Washington D.C."]
p wash["Washington DC"] #=> ["Washington DC", "Washington", "Washington D.C."]
p wash["Nope"] #=> nil

接下来,创建一个将每个已知同义词映射到其列表的散列,或循环遍历它们,或其他任何方式。

关于ruby - 同义词的数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16183637/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com