Boh*_*ian 2 java string text-processing
我想从英文散文的输入字符串中删除所有撇号,但保留原始含义和大小写,即
在java中实现这一目标的最佳/最简单方法是什么?
替换宫缩有一些硬性和快速的规则.只需要一个在字符串上执行这些功能的方法.
public String removeContractions(String inputString) {
inputString = inputString.replaceAll("n't", " not");
inputString = inputString.replaceAll("'re", " are");
inputString = inputString.replaceAll("'m", " am");
inputString = inputString.replaceAll("'ll", " will");
inputString = inputString.replaceAll("'ve", " have");
return inputString;
}
Run Code Online (Sandbox Code Playgroud)
这甚至可以保护你的所有权.
当然,有些收缩取决于背景,例如he'd.这可能是"他可以","他会","他有"等等,因此不仅仅是简单的替代算法,而且更多的是机器学习领域.
public String removeControversialContractions(String inputString) {
inputString = inputString.replaceAll("'d", " would");
inputString = inputString.replaceAll("'s", "s");
return inputString;
}
Run Code Online (Sandbox Code Playgroud)
也许对于's您可以检查,看是否包含它的词用大写字母(表示名称)开始,有条件用要么更换s或is.然而,这不会在句子开头出现正常的收缩,所以...
如果你想要一个简单而完美的方法,我不确定你会得到一个.要做这些更复杂的事情,你需要一个你经常参考的大字典文件或机器学习技巧.