一个算法问题

netapple 2002-10-18 05:35:49
问题:
  翻译某英文句子,该英文句子中的所有单词都存放在一个文件中,每个英文单词对应一个或多个含义,在该字典中查找对应的单词将某一英文句子翻译成相应的中文。
输入文件如下:
 I 我
 AM 是
 A  一个

如果输入是i AM A
则输出为“我是一个”
当然输入文件中的词可以很多。
哪们高手有好的算法,请指教。我现在了解的是KMP,但不是太理想。
...全文
62 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lynxliu 2002-12-16
  • 打赏
  • 举报
回复
先进行句子的结构分解,包括关键的短语,解释的时候,短语优先。追求速度可以把解释组织成B树的形式。别的上面的人已经说了。更复杂的进行时态和语气分析就不是这么短的文字可以描述的了。
wl_95421 2002-12-08
  • 打赏
  • 举报
回复
这里用
HashTable
是对的
另外如果更快一点的话
可能要用哈夫曼编码
以及一些数据统计
tiger999 2002-11-16
  • 打赏
  • 举报
回复
英文句子可以这么简单地翻译???
fastmask 2002-11-16
  • 打赏
  • 举报
回复
你需要的就是对一个字典的查询效率,采用hash算法是不错的选择,DanielYWoo说得很清楚阿 。
nielinjie 2002-10-21
  • 打赏
  • 举报
回复
路过。感觉楼主问题放错地方咯。
DanielYWoo 2002-10-20
  • 打赏
  • 举报
回复
KMP是字符串模式匹配算法,你的这个程序不是模式匹配。

你应该是类似编译原理的词法分析(比之更简单一些),
每次通过过滤white space, 解析出一个单词,
然后一般是利用外存储Hashtable(可以按首字母分段),
读入中文解释。当然,这时你也可以用KMP,
但是KMP适用于你想在一个串中查找模式串,
尽管它是一个非常好的算法,但在这里绝对不适用。
KMP的优势在于在一次匹配中指针不用回溯,
而你要不停的重复性搜索,KMP的优势体现不出来,
她节省出来的那点重复指针回溯时间和你的重复性搜索的
时间相比简直就是1:10000。

你应该是要字典型的数据结构,Hashtable等等。

51,412

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧