Запуск пользовательской модели stanford ner в качестве сервера

81
8

Я подготовил свою собственную модель для NER, используя Stanford NER. Я могу взаимодействовать с ним из моего кода на Python, используя следующий код, и он корректно аннотирует именованные объекты в исходном тексте.

st = NERTagger('stanford_classifiers/ner-model-custom.ser.gz',
'stanford_classifiers/stanford-ner.jar', 'utf-8')
entities = st.tag(input_text.split())

Но так как это слишком медленно для каждого ввода текста, я запускаю модель в качестве сервера и получаю доступ к результату путем запроса из python с использованием следующего кода. Но я не получаю результатов от моей обученной модели.

Я запускаю сервер следующим образом:

java -mx1000m -cp stanford-ner.jar edu.stanford.nlp.ie.NERServer -loadClassifier ner-m
odel-custom.ser.gz -port 8080 -outputFormat inlineXML

Я получаю это сообщение на сервере:

Loading classifier from XX\XX\stanford_classifiers\ner-model-custom.ser.gz ... done [6.1 sec].

На стороне клиента (код python):

tagger = ner.SocketNER(host='localhost', port=8080)
entities = tagger.get_entities(input_text)

Тот же код работает, когда в качестве сервера запускается существующая модель, например english.all.3class.distsim.crf.ser.gz. Но не для пользовательской модели в режиме сервера.

Есть ли какой-то конкретный способ запуска наших пользовательских обучаемых моделей ner в версии сервера?

Может быть, это проблема с обучением пользовательской модели?

спросил(а) 2014-11-14T01:12:00+03:00 5 лет, 11 месяцев назад
1
Решение
58

Спасибо, @ChristopherManning за ответ. Ты прав. модель работает нормально. Пользовательская модель также корректно аннотировала входной текст в формате inlineXML.

Он просто не возвращал объекты в tagger.get_entities(input_text). Вместо этого я должен был использовать другую функцию в интерфейсе python: tagger.tag_text(input_text) а затем с помощью анализатора миниатюр xml для извлечения аннотированных компаний.

Input text : "She is working at facebook"

Received by tagger using tag_text function : "She is working at <B-company>facebook</B-company>"

Разработал этот вывод, чтобы получить список объектов.

ответил(а) 2014-11-14T23:34:00+03:00 5 лет, 11 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема