我怎么能把单词粘在一起?

时间:2010-01-05 04:44:56

标签: php

我有很多名字很差的文件

videoofmegoingtoschool.avi

是否有一个库或某些算法可以将它正确分开?

video of me going to school.avi

5 个答案:

答案 0 :(得分:3)

我认为那里没有任何东西。我可以设想一个程序,它使用单词字典并选择从左到右匹配的最短单词,然后如果找不到第二个单词,则它会返回以搜索下一个最大的单词,依此类推。 (必要时回溯)然而,这可能会产生误报和否定。听起来像是一个有趣的问题!

答案 1 :(得分:2)

在此之前已经多次讨论过SO,不幸的是I can only find one link现在。

编辑 - 更多链接:

答案 2 :(得分:0)

我怀疑没有。这甚至是一个有趣的问题需要解决,因为你必须确定最可能的分裂方式,在某些点分裂会影响未来的分裂。有人在业余时间为一个有趣的项目,但在现实世界中,你需要手动完成:)

答案 3 :(得分:0)

假设你有一个字典,而t(str)意味着str是一个有效的单词或一组单词,
t(str)= sum_over_i(t(str [0,i])&& t(str [i + 1,length])
也就是说,要检查一组字词是否形成一个有效的词组,在第一个字母后添加一个空格,看看你是否仍然可以形成两半的单词;如果这不起作用,请尝试第二个字母,然后是第三个字母......

使用动态编程,这可以在O(n ^ 2)时间内完成!

[编辑]人们不喜欢我的回答。也许是一些伪代码。

function IsValidString(x)
    if(x is one letter, not 'a' or 'i')
        return false
    if(x is a dictionary word)
        return true
    for i from 0 to x.length-2
        if( IsValidString(x[0,i]) and IsValidString(x[i+1, x.length-1]) )
            return true
    return false

这里,如果有办法将字符串分解为单个有效字,则IsValidString返回true,否则返回false。不难看出如何跟踪 i (空间位置)的哪些值使字符串有效。

答案 4 :(得分:0)

在Linux中你可能有: / usr / share / dict / american-english


您可以尝试一次创建一个单词1个字母(从左侧开始),然后查看它是否在该dict文件中作为一个整体存在。然后将该标记另存为单独的单词。

相关问题