【发布时间】:2018-11-27 14:38:20
【问题描述】:
我已经阅读了 stanford 网站上的 Permuterm indexes 页面,但是我仍然无法弄清楚我们如何从:*X* 到 X*。
那么$在哪里?
我可以得到这些:
For X, look up X$
For X*, look up $X*
For *X, look up X$*
For X*Y, look up Y$X*
【问题讨论】:
我已经阅读了 stanford 网站上的 Permuterm indexes 页面,但是我仍然无法弄清楚我们如何从:*X* 到 X*。
那么$在哪里?
我可以得到这些:
For X, look up X$
For X*, look up $X*
For *X, look up X$*
For X*Y, look up Y$X*
【问题讨论】:
Permuterm Index 背后的想法是旋转通配符查询,使得 * 走到最后。
因此,您将模糊查询转换为可比较查询。正如您所写,查找查询 X* 的 $X* 因为 * 是不确定的,但开始部分 X 是确定性的。
说到X,我们有两颗星。问题是我们应该旋转哪颗星。
旋转第一颗星
你把X*看作Y的一部分,那么我们得到*Y。所以我们要查找Y$*,也就是X*$*,相当于X*。
旋转第二颗星
你把*X看作Y的一部分,那么我们得到Y*。所以我们要查找*$Y,也就是*$*X。这个不好处理。
基于此,我们可以知道为什么在遇到 *X* 之类的查询时要查找 X*。原因不是 $ 是因为 $ 表示单词的结尾,而我们的查询不包含关于结尾的信息。
【讨论】:
W*X*Y*Z吗?我知道X*Y*Z 是,但我无法想出一个查询三个通配符的解决方案。