我正在寻找一些可以帮助我做以下事情的图书馆:
对于给定的输入文本文档: 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有点工作,但不会删除符号。
以下是我要找的内容: 执行所有这三个操作的优雅方式。不寻找精心设计的(即长度)代码(如果没有优雅的解决方案,我可以自己编写)。
答案 0 :(得分:1)
您是否尝试将String.split()
与使用符号和空格作为分隔符的正则表达式一起使用?
有些事情。
document.toLowerCase().split(["\\p{Punct}\\s]+");
根据Pattern,\ p {Punct}等于!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
。
这将删除所有符号和空格,并返回一个字符串数组,这些字符串将是您的标记化列表,不带任何符号。