我正在开发一款游戏,我需要找到特定句子的最大权重。
假设我有一个句子“the quick brown fox”,并且假设只有单个单词具有它们定义的权重:“the”-> 10,“quick”-> 5,“brown”-> 3,“fox”-> 8
在这种情况下,问题很简单,因为解决方案在于添加每个单词的权重。
现在假设我们还添加了双词,那么除了上面的词,我们还有“the quick” -> 5, “quick brown” -> 10, “brown fox” -> 1
我想知道哪种单双词组合提供的权重最大,在本例中为“the”、“quick brown”、“fox”
我的问题是,除了明显的蛮力方法之外,还有其他可能的方法来获得解决方案吗?不用说,我正在寻找一些最佳方法来为较大的句子实现这一点。
谢谢。
最佳答案
可以看看Integer Linear Program类似 lp_solve 的图书馆.在这种情况下,您需要最大化分数,并且您的目标函数将包含权重。然后你可以对其施加约束,就像你不能同时拥有“quick brown”和“brown”一样。
对于单词对齐,这用于此 paper ,但是您的问题比这简单得多,但是您可以浏览论文以了解如何使用 ILP。除了 ILP 之外,可能还有其他算法可以用来优化解决这个问题,但是对于小问题,ILP 可以优化和高效地解决它。
关于nlp - 用权重最大的词拆分句子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10002290/