分隔单词中的英文和中文!
如何将词汇中的英文和中文区别开来。
英文可能是单词也可能是词组还可能是数词(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




