Ter*_*mos 21 algorithm nlp dynamic-programming string-split text-segmentation
将字符串拆分成单词的正确方法是什么?(字符串不包含任何空格或标点符号)
例如:"stringintowords" - >"String into Words"
你能告诉我这里应该使用什么算法吗?
!更新:对于那些认为这个问题仅仅是为了好奇的人.该算法可用于动态域名("sportandfishing .com" - >"SportAndFishing .com"),此算法目前由aboutus dot org用于动态执行此转换.
Fal*_*ner 23
假设您有一个函数isWord(w),它w使用字典检查单词是否为单词.为简单起见,我们现在假设您只想知道是否可以进行某些分词w.这可以通过动态编程轻松完成.
让S[1..length(w)]与布尔条目的表格.S[i]如果单词w[1..i]可以拆分,则为true .然后设置S[1] = isWord(w[1])和for i=2到length(w)计算
S [i] =(isWord [w [1..i]或{2..i}中的任何j:S [j-1]和isWord [j..i]).
如果字典查询是恒定时间,则这需要O(长度(w)^ 2)时间.要实际找到分裂,只需将获胜分割存储在设置为true的每个S [i]中.这也可以适用于通过存储所有这样的分裂来枚举所有解决方案.
如果你想确保你做到这一点,你将不得不使用基于字典的方法,这将是极其低效的.您还必须期望从算法中获得多个结果.
例如:windowsteamblog(的http://windowsteamblog.com/名望)
windows team blogwindow steam blog| 归档时间: |
|
| 查看次数: |
17947 次 |
| 最近记录: |