在一个单词中找到两个单词?

时间:2013-10-20 17:06:55

标签: split logic double

我想知道在一个单词中找到两个单词的最佳做法。

例如,如果我想拆分“Stackoverflow”,它应该发现“Stack”是一个单词而“Overflow”是另一个单词。我怎么能通过逻辑来做到这一点?我用PHP和C#进行编程,所以如果你已经有一个同样的代码片段,请分享它。

你也可以给我一个提示,我应该怎么做。

我不希望有一个不同单词的图书馆,无论如何都应该找到它。

另一个例子是“Googleplex”=> “Google”+“Plex”。

提前致谢! :)

祝你好运, 的Mikael

3 个答案:

答案 0 :(得分:2)

关于自然语言没有逻辑。除非您可以依赖“标记”,例如驼峰大小写(“StackOverflow” - 每个大写字母表示新单词的开头),否则您将不得不使用包含自然语言知识的库/词典(在这种情况下为英语) )。

答案 1 :(得分:1)

你可能已经这样做过了,但是如果你没有这样做,那么就会有很多努力发表,写博客,并且对你所做的事情感兴趣。以下是一些链接:

<强> SO - algorithms
SO - Python subwords
Java - subwordfinder 我知道Java不是您列出的标准,但此页面上引用的算法可能会回答您的问题 的 Java - KPM algorithm
VITERBI ALGORITHM - Paper on subword unit (沉重的理论,关注技术)

每个人的共同点是使用某种形式的外部引用的规则集,即字典或类似的。希望这可以帮助。

答案 2 :(得分:0)

如果没有字典库,这显然只是 不可能。

说你有一个单词.. forAmerica ..程序将for理解为关键字,但不是的真实单词。您需要使用词典或哈希映射/ arraylists来教育它