将包含中文或日文或英文的字符串拆分为单词

时间:2016-05-05 13:56:35

标签: java parsing unicode

如何使用正则表达式或任何实用程序类将包含中文,日文或英文的字符串拆分为单词?

示例1:

  

根据从2013年的一项研究,由一群来自美国俄亥俄州立大学的研

输出1:

  

根据从2013年的一项研究,由一群来自美国俄国俄州立大学的研究

示例2:

  

根据美国研究小组2013年的一项研究

输出2:

  

根据,2013年,研究,研究,小组,来自,美国,

确定输入字符串不会将英语与日语混合 - 两者都将以单独的字符串形式出现;但是,英文字符串也应该被这段代码拆分:

words = input.split("[ ./()\\[\\]=,<>;\"']+");

如果在Java中无法做到这一点,请建议非英语输入字符串是否只能用空白字符分隔。

2 个答案:

答案 0 :(得分:3)

我认为你可能对中国人(也可能是日本人,但我不太了解它)的问题是,单词中断是上下文的。有时两个字符将是两个单独的单词,有时相同的两个字符将是一个单词。

所以我认为你需要解析文本才能做到这一点。

答案 1 :(得分:1)

示例1:

  

根据从2013年的一项研究,由一群来自美国俄亥俄州立大学的研

输出1:

  

根据从2013年的一项研究,由一群来自美国俄国俄州立大学的研究

这是不正确的中文。 正确的输出应该是:

  

根据从2013年的一项研究,由一群来自美国俄亥俄州立大学的研

你需要一个中文单词库才能做到这一点。