导入 StanfordNER 标记器 Google Colab

rma*_*esh 5 python stanford-nlp google-colaboratory

我在尝试导入 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')
Run Code Online (Sandbox Code Playgroud)

我得到的错误突出显示了告诉我的最后一行代码:

OSError: stanford-corenlp is not a directory.
Run Code Online (Sandbox Code Playgroud)

任何帮助都会很棒!

编辑:这是另一行对我有用的代码。对于 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)
Run Code Online (Sandbox Code Playgroud)

Far*_*zin 3

以下代码下载所有必需的文件并设置环境:

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)
Run Code Online (Sandbox Code Playgroud)