一般标记器

时间:2013-04-09 19:32:08

标签: java string unicode split tokenize

我正在寻找一些可以帮助我做以下事情的图书馆:

对于给定的输入文本文档: 1.将文档转换为小写(Easy。使用toLowerCase函数解决) 2.删除符号 3. Tokenize产生一个单词列表

例如:“A,B; C \ nD.F”应该产生[“a”,“b”,“c”,“d”,“e”,“f”]。

它应该适用于所有语言。除了英语之外,我还有一些俄语,中文和日语。

以下是我的尝试:

如果我只处理英语,Replacing all non-alphanumeric characters with empty strings中提到的解决方案很容易适应我的问题。

java.util.StringTokenizer有点工作,但不会删除符号。

以下是我要找的内容: 执行所有这三个操作的优雅方式。不寻找精心设计的(即长度)代码(如果没有优雅的解决方案,我可以自己编写)。

1 个答案:

答案 0 :(得分:1)

您是否尝试将String.split()与使用符号和空格作为分隔符的正则表达式一起使用?

有些事情。

document.toLowerCase().split(["\\p{Punct}\\s]+");

根据Pattern,\ p {Punct}等于!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~

这将删除所有符号和空格,并返回一个字符串数组,这些字符串将是您的标记化列表,不带任何符号。