算法设计:用文字,移动字母和形成一个句子

时间:2011-04-01 12:02:33

标签: algorithm

在我们的组织内,我们获得了一些任务/迷你竞赛,我们获得了一系列单词(水的品牌)。目标是切换这些单词的字母,并以句子结束。因为列表不是太短(大约10个单词,大多数甚至不是很短的单词),我想我想研究解决这个问题的解决方案。

我确实有技术背景,但我不是一个全面的程序员,更不用说有足够的洞察力来创建这么大的算法。

最大的收获将是单词的匹配以及语法。我找到了一个单词列表,但我不相信这个单词包含不同形式的动词。我将研究发现更多这些,但我希望有一种替代方案可以使用某种现有的语法引擎或API。 问题:这需要在DUTCH中完成,而不是用英语

句子的实际形成(如单词的顺序)不太重要。如果输出是一个忽略单词顺序的“句子”列表,我可以过滤那些没有任何意义的手动,然后交换单词以使其有意义。

如果拥有合适技能的人能够指出我正确的方向,或者以另一种方式帮助我,我将不胜感激。

让那些braincells工作:-) 此致

2 个答案:

答案 0 :(得分:0)

有一个在线anagram finder可以与荷兰语here一起使用。它们允许的最大输入长度为35个字符(取决于服务器负载),但是您可以联系它们并通过甜言蜜语/贿赂它们来在较长的输入集上运行问题。

答案 1 :(得分:0)

如果我理解这一点,你似乎在这里有两个问题。

首先,你需要取出所有的单词,尝试每个单词中所有可能的字母排列,并从中构建一个新的单词列表。

其次,您需要尝试从新的单词列表中创建有效短语的所有可能方法。

第一个问题是可行的。我认为即使这样做也没有任何优化仍然没关系,认为可能需要一点时间来计算(请记住,即使只是一个7个字母的单词,也会有~5000个可能的排列,但肯定其中绝大多数会这样做不会导致有效的话)。您需要访问字典的副本(只是单词,而不是定义),并且您可能希望将其存储在trie或至少一个hashset中以便快速访问,因为您需要快速检查每个排列是否存在这是一个有效的词。

第二个问题是IMO不是真的在公园散步。你会得到一个我认为相当大的单词列表。然后:

  • 您需要检查安排这些单词以构成有效短语的可能方法。这不是一个容易的问题。即使对于相对较短的短语,也会有许多可能的短语结构(我的意思是可能的语法功能的安排)。
  • 对于这些安排中的每个人(将它们想象为安排盒子的方式),将会有很多方法将您的文字放入其中。 (例如,那里的每个名词都可以是一个主题)。弄清楚每个单词可以有什么功能也不容易,你需要一些自然语言解析库来帮助你解决这个问题。
  • 最后,你会得到很多可能的短语,其中大部分都没有任何意义。如何检查它们是否有意义?这根本不是微不足道的:)如果你不能这样做并且必须手动完成所有这些,我认为这是相当多的工作。

我在想,也许会有某种方法来“欺骗”这些困难问题,弄清楚语义,甚至可能生成短语,只是使用谷歌搜索来帮助你找出短语。如同,使用自动填充和自动更正功能来确定您的短语是否有效。我可以看到一些方法就这样......

总而言之,我认为你有一个成倍增长的问题(所有可能的字母组合 - >所有可能的结果词组合)并需要相当多的智能过滤来删除所有无效的条目并保留它从太大了。这绝对是可以做到的,但确实需要相当多的工作。

我很想听到其他的想法虽然:)