2015-09-23 1 views
0

Le processeur central NLP utilise le Tokenizer PTB pour la tokenisation. Mais, je veux implémenter mon propre tokenizer. En tant que partie de cela, dans le fichier de propriétés où nous spécifions les annotateurs, je n'ai pas mis tokenize comme je veux écrire Tokenizer moi-même et mettre les jetons en sortie en CoreAnnotations.TokensAnnotation.class par set méthode de sorte que ssplit les utilise plus tard.Mais, quand je essayer d'exécuter ceci, le programme échoue à dire que ssplit ne peut pas être présent sans tokenizer. Je voudrais savoir s'il existe une procédure pour implémenter un Tokenizer personnalisé?Quelle est la procédure standard pour l'implémentation d'un tokenizer à partir de la bibliothèque Stanfordcorenlp?

Répondre

0
  1. Assurez-vous de créer un Annotator qui utilise votre tokenization personnalisé (l'interface Annotator est dans edu/stanford/NLP/pipeline); pour cet exemple, nous allons appeler votre MyTokenizerAnnotator annotateur personnalisé, et supposons qu'il est dans le paquet org.foo

  2. Lorsque vous construisez le pipeline de StanfordCoreNLP, assurez-vous d'ajouter à propriétés:

    props.set("customAnnotatorClass.mytokenize" , "org.foo.MyTokenizerAnnotator") 
    
  3. lorsque vous définissez annotateurs pour votre pipeline, au lieu de « tokenize » mettre « mon tokenize »

    props.set("annotators", "mytokenize, ssplit, pos, lemma") 
    
  4. Assurez-vous d'ajouter Annotator.TOKENIZE_REQUIREMENT à l'ensemble de la méthode requirementsSatisfied() de MyTokenizerAnnotator renvoie, cela indiquera au pipeline que votre tokenizer personnalisé remplit la condition de tokenize et arrêtera la plainte ssplit

  5. Pour votre référence, voici les javadocs pour certaines classes pertinentes, vous devriez certainement regarder l'implémentation de TokenizerAnnotator.java si vous allez construire votre propre tokenizer:

    http://nlp.stanford.edu/nlp/javadoc/javanlp/edu/stanford/nlp/pipeline/Annotator.html

    http://nlp.stanford.edu/nlp/javadoc/javanlp/edu/stanford/nlp/pipeline/TokenizerAnnotator.html

S'il vous plaît laissez-moi savoir si vous besoin d'aide supplémentaire!