【发布时间】:2014-12-02 04:58:27
【问题描述】:
假设我有两个字符串
我喜欢鸡肉沙拉,这是我最喜欢的食物。
这本书包含大量制作各种食物的食谱,包括蛋糕、鸡肉沙拉等。
这里两个字符串之间的重叠短语是 - chicken, salad, chicken salad, food。
找到两个字符串之间重叠短语的最佳方法是什么?假设两者的语法和语义都是干净的,而且第一个总是比第二个短。
【问题讨论】:
-
您可以在较短的字符串中创建单词的哈希,然后将第二个单词的每个单词与第一个单词进行比较,或者将每个单词插入哈希中,如果它找到一个使用它来显示它重叠
-
我会标记短字符串并在长字符串中搜索。附带说明一下,您应该考虑使用额外的停用词列表来忽略搜索常用词,如 the、to、at、it 等,
-
如果在较长的字符串中找到任何可能的较短字符串的子字符串,那将产生大量的标记
-
是否有一个库可以对字符串进行标记化?对于第一个字符串,我假设部分标记化的结果将包括“鸡肉”、“鸡肉沙拉”、“最喜欢的食物”、“食物”等......
-
@MattCoubrough,我还希望在进行标记化时也应删除“I”、“the”、“my”等“噪音”词。
标签: java string string-matching