nlp - 用权重最大的词拆分句子

标签 nlp combinatorics

我正在开发一款游戏,我需要找到特定句子的最大权重。

假设我有一个句子“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/

相关文章:

python - 多语言 .py 文件的编码

matlab - 在 MatLab 中迭代固定总和的值

algorithm - 您如何找到学生在类里面的最佳分配?

algorithm - 不重复地计算来自多个列表的成对项目的组合

python - SMOTE,Python 中文本分类的过采样

google-cloud-platform - 错误: (gcloud.compute.instances.create)无法全局获取资源: - Quota 'GPUS_ALL_REGIONS' exceeded.限制: 0.0

python - 从Python中的句子中提取子句

python - 如何从 BIO 分块句子中提取分块? - Python

arrays - Ocaml 中的数组操作

python - 两个长度不等的列表之间的排列