CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  专题开发/技术/项目 >  数据结构与算法

分隔单词中的英文和中文!

楼主stevecrisewu(月亮骑士)2002-05-11 17:02:18 在 专题开发/技术/项目 / 数据结构与算法 提问

如何将词汇中的英文和中文区别开来。  
  英文可能是单词也可能是词组还可能是数词(100-dollars)  
  还有词性也要单独区别开来。  
  还有可能提供的词汇不是很规范,里面可能会出现非法字符,如在英文单词前有*号,还可能中文和英文之间没有空格(大多数是有空格的)  
   
  这个算法不是很难,难的是对各种意外情况下的考虑。 问题点数:30、回复次数:17Top

1 楼lbl20020123(天天)回复于 2002-05-11 17:23:41 得分 0

upTop

2 楼one_add_one()我要睡觉:)回复于 2002-05-11 17:24:33 得分 3

中文的ASCII码是161以后。(161不知道记错没有)  
   
  两个字节组成一个汉字。  
   
  把161以前的和161以后的分开应该就可以了。Top

3 楼stevecrisewu(月亮骑士)回复于 2002-05-13 08:23:32 得分 0

这些我都知道,我已经解决了中文跟英文的区别了.Top

4 楼nethermit(网络隐士)回复于 2002-05-13 10:26:16 得分 3

中文第一字节161-247,第二字节161-254Top

5 楼zzwu(未名)回复于 2002-05-13 18:07:11 得分 0

除了中文跟英文的区别(这您自己已经解决了),还需进一步区分的“词性”指什么?请举个例子,看是否困难。Top

6 楼stevecrisewu(月亮骑士)回复于 2002-05-14 14:54:36 得分 0

比如  
  absence   n.     缺席  
  a   cup   of   tea   一杯茶  
  100-meters     num.   100米  
  *dollar   [M]n.美圆  
  这些区分如何?Top

7 楼nlstone(天外流星)回复于 2002-05-14 17:11:37 得分 2

你既然说中英文你已经能够区分开来,那么你给的这个例子中唯一需要作处理  
  的就是“100米“这个地方。(*为英文字符,空格亦不影响中英文的区分)  
          每读到一个数词即进行判断是否后面紧跟中文,处理起来很容易。Top

8 楼nlstone(天外流星)回复于 2002-05-14 17:14:51 得分 3

忽略了一点,对数词判断时不光要判断后面,还要判断前面。Top

9 楼zzwu(未名)回复于 2002-05-14 17:18:47 得分 2

你的意思是要进一步区分名词,数词,动词等词类吗?这原则上是备一个字典来查的,但特殊情况也可不去查字典,如根据后缀即可知道某些单字的词类。至于*之类的符号就把它当作空格一样处理就行了。Top

10 楼gcd0318(gcd0318)回复于 2002-05-14 17:22:43 得分 0

词性其实更好判断,因为有空格Top

11 楼nlstone(天外流星)回复于 2002-05-14 17:27:04 得分 2

词性:从你的词汇字典来看,词性总是汉字前的一个英文单词。如果这一部分的词,如[M]n.   还有各种书写情况的话,应做进一步分析。Top

12 楼stevecrisewu(月亮骑士)回复于 2002-05-14 19:05:48 得分 0

其实,这个问题是比较简单的,但是就是有些细节太繁琐了。  
  汉字前不一定会有空格,英文也不一定是标准的。  
  Top

13 楼yxgsb(浪子小管)回复于 2002-05-14 22:12:54 得分 5

1.英文和中文区别可以用内码表示处理方法来区别!  
  2.单词和词组要用英语语法加以区别,数词更好办用Ascii  
  3.词性???不懂???  
  4.余下可以综合考虑综合处理Top

14 楼freemore()回复于 2002-05-14 23:38:03 得分 2

你是想做什么  
   
  能对你处理的录入数据做更详细的描述吗?例如是分离任意文章的中英文(象个字典生成工具),还是分离一定格式下的文件(格式有很多细节特例),例如某字典的词汇库,如你前例子。  
   
  Top

15 楼nlstone(天外流星)回复于 2002-05-15 08:54:55 得分 8

to   月昊:  
  正如你所说,这个问题是比较简单。  
  照我看,恐怕比你想像的简单还要简单一些,细节并不繁杂。  
  中英文区分可以简单地依靠最高位是否为1来判断,每一个中文为双字节。  
  空格,*什么的不会有影响,它们的最高位为0,看作英文字符。  
  特殊字符,只要不是汉字字符,双字节字符,它们的最高位依然为0,同样不会对判断造成任何影响。  
  唯一需要处理的仅仅是数词,需要判断每一个出现的数词应算作中文还是英文。  
  正如我前面所说,判断时可很简单地以该数词前后是否“紧跟”中文为依据。  
   
  Top

16 楼jashy(jashy)回复于 2002-05-15 11:02:06 得分 0

nodTop

17 楼stevecrisewu(月亮骑士)回复于 2002-05-15 16:57:01 得分 0

This   problem   is   over!  
  Thanks.Top

相关问题

  • 用VB做项目的朋友们,你们怎样给一个变量命名?用英文单词,中文拼音,还是就是中文,或者其它??
  • 问个超基础问题“MSC51”中的“MSC”是哪几个英文单词的缩写,中文是什么意思?
  • 请问在一个Edit框中输入的回车的时候 我怎么判断输入的是英文单词还是一个中文呢?
  • 英文单词自动换行
  • "合同"的英文单词是什么?
  • Office 2000 中文/英文版
  • 中文转换成英文!
  • 如何判断字符串,当中有英文单词并把该英文单词提取出来
  • 如何从包含汉字、英文单词、html标签的字符串中提取 英文单词
  • 情人节的英文单词怎么写?

关键词

  • 中文
  • 字符
  • 汉字
  • 中英文
  • 数词
  • 英文
  • 单词
  • 词性
  • 空格
  • 判断

得分解答快速导航

  • 帖主:stevecrisewu
  • one_add_one
  • nethermit
  • nlstone
  • nlstone
  • zzwu
  • nlstone
  • yxgsb
  • freemore
  • nlstone

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo