"这是一个段落。在这一段中有词。一些单词,如单词和段落,可以重复。我还有一个我需要映射的单词列表。"
这个,段落,段落,那里,单词,一些,单词,喜欢,单词,和段落,可以,是,重复,还有,有,列表,单词,需要,地图
我希望找到从列表中的单词到文本中可能位置的映射,从而最大化列表中用完的单词。您可以将其视为尝试从基础单词重新组合一段文本,或尝试放回一个拼图(并非所有部分都存在)。
在上面的示例中,匹配看起来像:
这 - 大于0
中─→10
IN-> 21
中─> 28
那里 - > 38
words-> 48(或其他'单词的位置')
等等列表中的其他成员。
是否有匹配算法可以帮助完成此任务?是否可以扩展为仅使用二进制数据片段列表查找二进制数据?
答案 0 :(得分:0)
这是一个称为Longest Common Subsequence的问题。将文本也视为一系列单词。您必须找到包含在最大长度的两个原始序列中的序列。
这个问题有O(n * m)个解决方案。动态编程解决方案最容易理解。