Java 从字符串中删除POS标记

Java 从字符串中删除POS标记,java,Java,我有一个字符串,看起来像: 富尔顿/新罕布什尔州tl县/nn tl格兰德/jj tl陪审团/nn tl赛义德/vbd 星期五/nr an/at调查/nn of/in亚特兰大/np$最近/jj 主要/nn选举/nn产生/vbd/no/at证据/nn'/'' 表示/cs任何/dti异常情况/nns发生/vbd发生/nn./ 我只想提取原始文本并丢弃POS标签。我可以使用什么正则表达式来执行此操作。我知道我可以拆分/但我也需要删除标签并获得。我应该使用正则表达式来识别标签吗 富尔顿县大陪审团星期五说,

我有一个字符串,看起来像:

富尔顿/新罕布什尔州tl县/nn tl格兰德/jj tl陪审团/nn tl赛义德/vbd 星期五/nr an/at调查/nn of/in亚特兰大/np$最近/jj 主要/nn选举/nn产生/vbd
/
no/at证据/nn'/'' 表示/cs任何/dti异常情况/nns发生/vbd发生/nn./

我只想提取原始文本并丢弃POS标签。我可以使用什么正则表达式来执行此操作。我知道我可以拆分/但我也需要删除标签并获得。我应该使用正则表达式来识别标签吗

富尔顿县大陪审团星期五说,他们正在调查亚特兰大的 最近的初选“没有证据”表明存在任何违规行为 发生了

您可以使用模式
/.*(\s |$)
删除POS标记。我认为下面的代码应该可以让你非常接近你想要的位置

String input = "The/at Fulton/np-tl County/nn-tl Grand/jj-tl Jury/nn-tl said/vbd Friday/nr an/at investigation/nn of/in Atlanta's/np$ recent/jj primary/nn election/nn produced/vbd / no/at evidence/nn ''/'' that/cs any/dti irregularities/nns took/vbd place/nn ./.";
input = input.replaceAll("/.*?(?:\\s|$)", " ");
System.out.println(input);
输出:

The Fulton County Grand Jury said Friday an investigation of Atlanta's recent primary
election produced  no evidence " that any irregularities took place . "

这就是我快速编写的用来提取所需字符串的内容。你有没有更好/更有效的想法,因为我需要在海量数据上完成这项工作

public static void main(String args[]) {

            StringBuilder sb = new StringBuilder();


            String str = "The/at Fulton/np-tl County/nn-tl Grand/jj-tl Jury/nn-tl said/vbd Friday/nr an/at investigation/nn of/in Atlanta's/np$ recent/jj primary/nn election/nn produced/vbd ``/`` no/at evidence/nn ''/'' that/cs any/dti irregularities/nns took/vbd place/nn ./.";
            String [] newLine = str.split(" ");
            for (String word : newLine){
                int index = word.indexOf("/");
                String newWord = word.substring(0, index);
                sb.append(newWord);
                sb.append(" ");

            }
            System.out.println(sb);
}

非常感谢你的回答!这个看起来比我的好。