Чтобы ускорить классификацию NER, я пытаюсь выполнить ее в режиме сервера на порту xxxx, чтобы он мог дать более быстрый результат при отправке запроса.
Вот исходная команда выполнения без сервера, который я использую.
java -mx1500m -cp $1/stanford-ner.jar edu.stanford.nlp.ie.crf.CRFClassifier -loadClassifier $1/classifiers/ner-eng-ie.crf-3-all2008-distsim.ser.gz -textFile $2
(эта команда находится в файле .sh и выполняется скриптом python. $ 1 - имя входного файла)
В этой документации объясняется, как его можно запустить в режиме сервера. Ссылка. Здесь показано, как начать работу с сервером:
java -mx400m -cp stanford-ner.jar edu.stanford.nlp.ie.NERServer -loadClassifier classifiers/ner-eng-ie.crf-3-all2008.ser.gz 1234
Теперь сервер находится в режиме ожидания на порту 1234.
Как я могу сделать звонок, используя входной текстовый файл для этого сервера?
Я следовал за этим tut: Link и выполнил эту команду:
java -cp stanford-ner.jar edu.stanford.nlp.ie.NERServer -port 1234 -client
Но это просто напечатать это сообщение:
Usage: NERServer [-loadFile file|-loadJarFile resource] portNumber
Я работаю в системе Linux.
Чтобы запустить NER в режиме сервера, вы должны использовать следующую командную строку:
java -mx400m -cp stanford-ner.jar edu.stanford.nlp.ie.NERServer -loadClassifier classifiers/ner-eng-ie.crf-3-all2008.ser.gz -port 1234
(-port
отсутствует в файле README, он работает хорошо для меня)