2013-04-09 62 views
0

我要寻找一些库,这将有助于我做到以下几点:一般标记者

对于给定的输入文本文档: 1.将文档转换为小写(易与toLowerCase功能解决。) 2。除去符号 3.记号化导致词语

EG的列表: “A,b; C \ ND F” 应导致[ “一”, “b”, “C”, “d”,“ e“,”f“]。

应该与所有语言。除了英文,我还有一些俄文,中文和日文文本。

这是我曾尝试:

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

java.util.StringTokenizer的这类作品,但它不会删除符号。

以下是我在寻找: 执行所有这三个操作一种优雅的方式。不找精细(即长度)的代码,做它(我自己写的,如果没有很好的解决方案)。

回答

1

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

沿着这个东西线。

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

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

这将删除所有的符号和空白,并返回一个字符串,这将是你的标记化名单没有任何符号的阵列。

+0

@ElKamina没有您在正则表达式的'\\ s'和'+'?的'+'应在1个或多个字符是该组的一部分相匹配。 注:'\\ s'匹配所有空白字符 – FDinoff 2013-04-09 20:33:10

+0

我已经排除了他们。它现在有效。谢谢! – ElKamina 2013-04-09 20:34:08

+0

不客气。 – FDinoff 2013-04-09 20:35:47