2017-05-02 9 views
1

私はスタンフォードパーサを使用してテキストに注釈を付ける心理学スタンフォードNLP:句読トークンを保持していますか?

  • 、幼児教育にこのような

    大卒などの文章を探しています。

  • 次に、各文を繰り返し、NER(名前付きエンティティ認識)を使用して「学士号」を特定します。
  • トリプルを処理することで、オブジェクトが「BE IN」に続き、大学の主要である可能性が高いことがわかります。
  • したがって、私はさらなる解析のためにオブジェクトフレーズを送信します。私の悩みは、私は、この手順のために私のコードはをループ

    心理学​​

    から

    を教え幼児

を分離する方法がわからないということです特定のPOS要件が満たされている場合はオブジェクトを3倍にして保持します。

private void processTripleObject(List<CoreLabel> objectPhrase) 
{ 
    try 
    { 
     StringBuilder sb = new StringBuilder(); 
     for(CoreLabel token: objectPhrase) 
     { 
      String pos = token.get(CoreAnnotations.PartOfSpeechAnnotation.class); 

      TALog.getLogger().debug("pos: "+pos+" word "+token.word()); 
      if(!matchDegreeNameByPos(pos)) 
      { 
       return; 
      } 

      sb.append(token.word()); 
      sb.append(SPACE); 
     } 

     IdentifiedToken itoken = new IdentifiedToken(IdentifiedToken.SKILL, sb.toString()); 

    } 
    catch(Exception e) 
    { 
     TALog.getLogger().error(e.getMessage(),e); 
    } 

教師と心理学の間のカンマはトークンに含まれていないため、分裂をどのように認識するのか分かりません。

誰も助言できますか?

答えて

2

POSタグが見つからない場合、token.get(CoreAnnotations.PartOfSpeechAnnotation.class)はトークンを返すことに注意してください。 CoreNLP 3.7.0および"tokenize ssplit pos"アノテータでテスト済みです。興味のある句読点を含む文字列にposが含まれているかどうかを確認することができます。例:私がテストしたコード:

関連する問題