Algorithm 全组合树算法
我有一个关于树木的问题。我有大约100句关于“汽车”这样的主题的句子。这些句子基本上都是关于汽车的。如果用户提交查询:“查找单词“engine”和“oil”之间的所有单词链接组合”。我想查找所有可能的单词链接,以便“engine”和“oil”通过句子中任意数量的类似单词连接 比如说Algorithm 全组合树算法,algorithm,path,tree,combinations,Algorithm,Path,Tree,Combinations,我有一个关于树木的问题。我有大约100句关于“汽车”这样的主题的句子。这些句子基本上都是关于汽车的。如果用户提交查询:“查找单词“engine”和“oil”之间的所有单词链接组合”。我想查找所有可能的单词链接,以便“engine”和“oil”通过句子中任意数量的类似单词连接 比如说 发动机运转时是热的 这辆汽车有一个发动机 汽车使用机油 在这种情况下,答案将是:发动机->汽车->机油(三个单词组合)。我想找到所有可能的组合,以便最终“发动机”和“机油”相互连接。它不是最短的路径,也不是最长的路径
fa323你的问题太不明确了。。。也就是说,即使在您的示例中,也不清楚为什么答案不包括
engine->an->oil
此外,它实际上与树没有任何关系,而是处理图形
您需要做的第一件事是确定如何构建图形。一个合理的方法是,如果两个词都出现在一个特定的句子中,那么两个词之间应该有一个边缘
然后你必须决定你想要输出什么。我很怀疑你想要所有的路。为什么?好吧,如果你建立我描述的图表,那么即使只使用你的第一句话,从发动机到机油有24条路径,不计算循环路径。然而,如果这正是您想要的,您可以通过深度优先搜索找到图形中的所有非循环路径,在深度优先搜索中,当您将节点推到堆栈上时,您可以标记访问的节点,当您将其取下时,您可以取消标记该节点。您肯定会找到循环。。。你想用它们做什么?你肯定不会在树中找到循环。但这不是一棵树,它是一个泛型graph@ltjax所以标题和第一句都错了。好的,谢谢。我会设法弄明白的。您是正确的“发动机->发动机->机油”也有效。