Nous avons déconseillé les StanfordTokenizer
/ StanfordSegmenter
, StanfordPOSTagger
et StanfordNERTagger
.
Il serait bon de déprécier également les anciens StanfordParser
, StanfordDependencyParser
et StanfordNeuralDependencyParser
par
2a. Enveloppez les types de canard pour CoreNLPParser
qui émule les fonctions de l'ancienne interface
2b. Rédigez des documentations sur la façon d'utiliser CoreNLPParser
pour utiliser l'analyse des dépendances et des dépendances neuronales
Les deux méthodes (2a) et (2b) ne devraient affecter que l'argument properties
du api_call
L'interface actuelle pour CoreNLPParser
:
>>> from nltk.parse.corenlp import CoreNLPParser
>>> sent = 'The quick brown fox jumps over the lazy dog.'
>>> next(parser.raw_parse(sent)).pretty_print() # doctest: +NORMALIZE_WHITESPACE
ROOT
|
S
_______________|__________________________
| VP |
| _________|___ |
| | PP |
| | ________|___ |
NP | | NP |
____|__________ | | _______|____ |
DT JJ JJ NN VBZ IN DT JJ NN .
| | | | | | | | | |
The quick brown fox jumps over the lazy dog .
L'interface souhaitée peut ressembler à ceci:
# Using Duck-types
>>> from nltk.parse.stanford import CoreNLPParser
>>> depparser = CoreNLPDependencyParser('http://localhost:9000')
>>> depparser.parse(sent)
>>> ndepparser = CoreNLPNeuralDependencyParser('http://localhost:9000')
>>> ndepparser.parse(sent)
# Using arguments to control `properties` for `api_call()`
>>> from nltk.parse.stanford import CoreNLPParser
>>> depparser = CoreNLPParser('http://localhost:9000', parser_type="dependency")
>>> depparser.parse(sent)
>>> ndepparser = CoreNLPNeuralDependencyParser('http://localhost:9000', parser_type="neural_dependency")
>>> ndepparser.parse(sent)
Cela ferait un bon projet de classe ou un bon premier défi; P
Salut, j'aimerais travailler sur ce problème, mais je n'ai pas compris pourquoi la simulation utilisée comme ça
Maintenant, les tests ne testent rien. Même si tokenize body est complètement effacé, les tests réussiront toujours. Peut-être que nous devrions patcher la méthode api_call
puis appeler tokenize
corenlp_tokenizer = CoreNLPTokenizer()
corenlp_tokenizer.api_call = MagicMock(return_value=predefined_return_value)
corenlp_tokenizer.tokenize(input_string)
@artiemq Merci pour l'intérêt
Mock a été utilisé dans le test unitaire car c'était un moyen rapide de documenter comment le flux python des API et comment un utilisateur devrait l'utiliser, mais il n'a pas réellement appelé CoreNLP.
En ce qui concerne l'unittest, l'utilisation de unittest.mock
n'est peut-être pas la meilleure façon de tester les fonctionnalités CoreNLP. N'hésitez pas à le réécrire / le modifier et à créer un PR =)
Je peux voir des informations ici sur la façon de me connecter au «serveur» POStagger au port 9000, mais je ne peux pas trouver d'informations sur la façon d' exécuter le serveur postagger de Stanford pour écouter sur le port 9000 ... Quelqu'un le sait?
Alors, est-ce décidé ou non?
J'essaye maintenant d'exécuter nltk.tag.StanfordNERTagger()
. Il y a un petit problème avec cela, que je voulais résoudre. Dois-je le faire ou pas?
Je veux que l'analyseur s'exécute localement sans appels d'API. Est-ce possible avec CoreNLPParser
?
Commentaire le plus utile
@artiemq Merci pour l'intérêt
Mock a été utilisé dans le test unitaire car c'était un moyen rapide de documenter comment le flux python des API et comment un utilisateur devrait l'utiliser, mais il n'a pas réellement appelé CoreNLP.
En ce qui concerne l'unittest, l'utilisation de
unittest.mock
n'est peut-être pas la meilleure façon de tester les fonctionnalités CoreNLP. N'hésitez pas à le réécrire / le modifier et à créer un PR =)