当部分预期数据丢失时,我被要求猜测用户的意图。例如,如果我希望获得very well或not very well,但只获得not,则应该将其标记为not very well。
not和very well的Levenshtein距离为9,not和not very well的距离为10。我想我实际上是想用扳手来驱动螺丝钉,但是我们已经在我们的团队中同意在这个案子中使用Levenshtein。
正如您在上面看到的,如果我能通过更改插入、替换和删除成本来理解问题,是否有什么意义呢?
我不是在找这个特别的例子的黑客。我想要的东西,一般的工作,如预期和输出一个更好的结果,在这些情况下也。
发布于 2014-04-27 03:22:28
、not和 well的Levenshtein距离实际上是12。
------not
very well因此有6个插入,总成本为6(每次插入成本为1),以及总成本为6(每次替换成本为2)的3个替换。总费用是12英镑。
、not和not well的Levenshtein距离为10。对齐方式为:
not----------
not very well这仅包括10次插入。所以你可以选择不是很好的作为最好的匹配。
对于python,可以用htql计算成本和对齐:
import htql
a=htql.Align()
a.align('not', 'very well')
# (12.0, ['------not', 'very well'])
a.align('not', 'not very well')
# (10.0, ['not----------', 'not very well'])https://stackoverflow.com/questions/21727074
复制相似问题