首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Coldfusion / Java中拆分多语言字符串

在Coldfusion / Java中拆分多语言字符串
EN

Stack Overflow用户
提问于 2013-12-17 22:12:59
回答 1查看 260关注 0票数 1

我有一个文本,它来自多语言字符串,如下所示

代码语言:javascript
复制
This is a multi-lingual string.私は別の言語にそれを分割する必要がありますPlease help me. This is a multi-lingual string.私は別の言語にそれを分割する必要がありますPlease help me

我不得不分成不同的语言(在这个例子中,英语和日语)。

即,我需要如下所示的字符串,

代码语言:javascript
复制
1. This is a multi-lingual string.
2. 私は別の言語にそれを分割する必要があります
3. Please help me. This is a multi-lingual string.
4. 私は別の言語にそれを分割する必要があります
5. Please help me

请帮帮忙。提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2013-12-17 22:23:54

这是一个非常困难的问题,你需要字典来检查句子的单词,即使这样也没有确定的方法来做,例如句子:

“战争战争”

可能是"war (english) to (源自德语战争)奇异(源自荷兰战争)“,但无法区分这两种不同的语言。

老实说,如果你的问题定义是“将任何字符串拆分成它的组件语言”,我根本不确定是否能做到这一点。

编辑:如果你不介意这种烦人的边界情况,你可以查看谷歌的语言检测应用程序接口:https://code.google.com/p/language-detection/

它声称对超过53种语言的准确率为99%。这对你来说可能就足够了。

你还必须将其与一些智能的单词分组算法相结合,按字母类型进行拆分可能是一个很好的开始。您可以使用unicode字符范围正则表达式来拆分字母类型,例如:/([\u0600-\u06FF]+\s*)+/应匹配句子中用阿拉伯语书写的所有单词组。

如果您正在寻找特定的字母表,可以在维基百科上找到unicode代码的完整列表:https://en.wikipedia.org/wiki/List_of_Unicode_characters

编辑2:现在您已经缩小了问题解决方案的范围,您可以使用一个简单的正则表达式来实现:/([a-zA-Z,.]+\s*)+/将匹配用拉丁脚本编写的所有词组。如果使用了标点符号,您可以在该列表中添加更多标点符号,但记住要么以破折号开头,要么转义破折号,因为它在字符类中具有特殊意义。然后,您可以简单地在div标记中替换这些组来解决您的问题。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20636420

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档