2017-02-01 8 views
2

からPOSタグを削除する:郡/ NN-TLグランド/ JJ-TLの審査員/ NN-TLは/ VBD 言っフルトン/ NP-TLで私がどのように見える文字列を持っている文字列

/アトランタの/ np $ recent/jj プライマリ/ nn選挙/ nnプロダクション/ vbd / no /エビデンス/ nn ''/'' /cs any/dti不正/ nnsは/ vbd place/nn ./を取得しました。

生のテキストのみを抽出し、POSタグを破棄したいとします。これを行うためにRegexを使うことができます。 /私は分割することができます/私もタグを削除して取得する必要があります。タグを識別するためにRegexを使うべきですか?

フルトン郡大陪審は、任意の凹凸が 行われたことを「証拠」作らないアトランタの 最近の予備選挙の調査金曜日に言いました。

答えて

3

String#replaceAll()を使用して、/.*?(\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 . " 
+0

お返事ありがとうございます!これは私のものよりよく見えます。 – serendipity

0

だから、これは私がすぐに必要な文字列を抽出するために書いたものです。たくさんのデータでこれを行う必要があるので、より優れた、より効率的なアイデアはありますか?

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); 
} 
関連する問題