Импорт теггера StanfordNER Google Colab

#python #stanford-nlp #google-colaboratory

#python #stanford-nlp #google-совместная лаборатория

Вопрос:

У меня возникли некоторые проблемы при попытке импортировать StanfordNER Tagger для использования для NER. Вот мой код (взял фрагменты этого из других сообщений здесь):

 import os
def install_java():
  !apt-get install -y openjdk-8-jdk-headless -qq > /dev/null
  os.environ["JAVA_HOME"] = "/usr/lib/jvm/java-8-openjdk-amd64"
  !java -version
install_java()

!pip install StanfordCoreNLP
from stanfordcorenlp import StanfordCoreNLP
nlp = StanfordCoreNLP('stanford-corenlp', lang='en', memory='4g')
  

Ошибка, которую я получаю, высвечивает последнюю строку кода, сообщающую мне:

 OSError: stanford-corenlp is not a directory.
  

Любая помощь была бы отличной!

Редактировать: Вот еще одна строка кода, которая сработала у меня. Для того, что внутри StanfordNERTagger, загрузите эти файлы в Colab и укажите путь. Сделайте то же самое для того, что я изначально задал в качестве моей проблемы выше. У меня сработало.

 from nltk.tag import StanfordNERTagger
from nltk.tokenize import word_tokenize



st = StanfordNERTagger('/content/english.muc.7class.distsim.crf.ser.gz',
                   '/content/stanford-ner.jar',
                   encoding='utf-8')

text = 'While in France, Christine Lagarde discussed short-term stimulus efforts in a recent interview with the Wall Street Journal.'

tokenized_text = word_tokenize(text)
classified_text = st.tag(tokenized_text)

print(classified_text)
  

Комментарии:

1. Каков ! синтаксис? недопустимо для меня в Ubuntu 16.04

2. @C.Nivs «!» — это метод для запуска pip в Google Colab. Для установки любого пакета Pip требуется это (насколько мне известно).

3. Вы нашли ответ на этот вопрос? Я хочу использовать модель Stanford в Google Colab, и у меня такая же проблема!

4. @Paniz только что добавлен при редактировании!

Ответ №1:

Следующий код загружает все необходимые файлы, а также устанавливает среду:

 from nltk.tag.stanford import StanfordNERTagger
from nltk.tokenize import word_tokenize
import nltk

!wget 'https://nlp.stanford.edu/software/stanford-ner-2018-10-16.zip'
!unzip stanford-ner-2018-10-16.zip

nltk.download('punkt')

st = StanfordNERTagger('/content/stanford-ner-2018-10-16/classifiers/english.all.3class.distsim.crf.ser.gz',
                       '/content/stanford-ner-2018-10-16/stanford-ner.jar',
                       encoding='utf-8')

text = 'While in France, Christine Lagarde discussed short-term stimulus efforts in a recent interview with the Wall Street Journal.'

tokenized_text = word_tokenize(text)
classified_text = st.tag(tokenized_text)