使用 PyNER 的斯坦福名称实体识别器(NER)无法正常工作
Stanford Name Entity Recognizer(NER) using PyNER not working
我正在尝试使用斯坦福大学的名称实体识别器 (NER)。
我从以下位置下载了 zip 文件:https://github.com/dat/pyner。
安装使用:python setup.py 安装。
现在当我运行下面的命令时,我得到空白输出
import ner
tagger =ner.SocketNER(host='localhost',port=31752,output_format='slashTags')
tagger.get_entities("University of California is located in California, United States")
Output:
{}
我错过了什么吗?
https://github.com/dat/pyner 工具严重过时。
如果您使用的是 NLTK,请先更新您的 nltk
版本:
pip3 install -U nltk
然后还在终端:
wget http://nlp.stanford.edu/software/stanford-corenlp-full-2018-02-27.zip
unzip stanford-corenlp-full-2018-02-27.zip
java -mx4g -cp "*" edu.stanford.nlp.pipeline.StanfordCoreNLPServer -preload tokenize,ssplit,pos,lemma,ner,parse,depparse -status_port 9000 -port 9000 -timeout 15000 &
然后在 Python3:
>>> from nltk.parse import CoreNLPParser
>>> tagger = CoreNLPParser(url='http://localhost:9000', tagtype='ner')
>>> tokens = 'Rami Eid is studying at Stony Brook University in NY'.split()
>>>
>>> tagger.tag(tokens)
[('Rami', 'PERSON'), ('Eid', 'PERSON'), ('is', 'O'), ('studying', 'O'), ('at', 'O'), ('Stony', 'ORGANIZATION'), ('Brook', 'ORGANIZATION'), ('University', 'ORGANIZATION'), ('in', 'O'), ('NY', 'STATE_OR_PROVINCE')]
对于Windows
您可以使用 powershell
(您真的这样做了)来使用上面的内容,但是如果您喜欢单击鼠标。
第 1 步: 从 http://nlp.stanford.edu/software/stanford-corenlp-full-2018-02-27.zip
下载 zip 文件
第 2 步: 解压缩
第 3 步:打开命令提示符并转到解压缩文件所在的文件夹
步骤 4: 运行 命令:pip3 install -U nltk
第 5 步: 现在 运行 命令:
java -mx4g -cp "*" edu.stanford.nlp.pipeline.StanfordCoreNLPServer -preload tokenize,ssplit,pos,lemma,ner,parse,depparse -status_port 9000 -port 9000 -timeout 15000 &
然后在 Python3:
>>> from nltk.parse import CoreNLPParser
>>> tagger = CoreNLPParser(url='http://localhost:9000', tagtype='ner')
>>> tokens = 'Rami Eid is studying at Stony Brook University in NY'.split()
>>>
>>> tagger.tag(tokens)
[('Rami', 'PERSON'), ('Eid', 'PERSON'), ('is', 'O'), ('studying', 'O'), ('at', 'O'), ('Stony', 'ORGANIZATION'), ('Brook', 'ORGANIZATION'), ('University', 'ORGANIZATION'), ('in', 'O'), ('NY', 'STATE_OR_PROVINCE')]
我正在尝试使用斯坦福大学的名称实体识别器 (NER)。
我从以下位置下载了 zip 文件:https://github.com/dat/pyner。
安装使用:python setup.py 安装。
现在当我运行下面的命令时,我得到空白输出
import ner
tagger =ner.SocketNER(host='localhost',port=31752,output_format='slashTags')
tagger.get_entities("University of California is located in California, United States")
Output:
{}
我错过了什么吗?
https://github.com/dat/pyner 工具严重过时。
如果您使用的是 NLTK,请先更新您的 nltk
版本:
pip3 install -U nltk
然后还在终端:
wget http://nlp.stanford.edu/software/stanford-corenlp-full-2018-02-27.zip
unzip stanford-corenlp-full-2018-02-27.zip
java -mx4g -cp "*" edu.stanford.nlp.pipeline.StanfordCoreNLPServer -preload tokenize,ssplit,pos,lemma,ner,parse,depparse -status_port 9000 -port 9000 -timeout 15000 &
然后在 Python3:
>>> from nltk.parse import CoreNLPParser
>>> tagger = CoreNLPParser(url='http://localhost:9000', tagtype='ner')
>>> tokens = 'Rami Eid is studying at Stony Brook University in NY'.split()
>>>
>>> tagger.tag(tokens)
[('Rami', 'PERSON'), ('Eid', 'PERSON'), ('is', 'O'), ('studying', 'O'), ('at', 'O'), ('Stony', 'ORGANIZATION'), ('Brook', 'ORGANIZATION'), ('University', 'ORGANIZATION'), ('in', 'O'), ('NY', 'STATE_OR_PROVINCE')]
对于Windows
您可以使用 powershell
(您真的这样做了)来使用上面的内容,但是如果您喜欢单击鼠标。
第 1 步: 从 http://nlp.stanford.edu/software/stanford-corenlp-full-2018-02-27.zip
下载 zip 文件第 2 步: 解压缩
第 3 步:打开命令提示符并转到解压缩文件所在的文件夹
步骤 4: 运行 命令:pip3 install -U nltk
第 5 步: 现在 运行 命令:
java -mx4g -cp "*" edu.stanford.nlp.pipeline.StanfordCoreNLPServer -preload tokenize,ssplit,pos,lemma,ner,parse,depparse -status_port 9000 -port 9000 -timeout 15000 &
然后在 Python3:
>>> from nltk.parse import CoreNLPParser
>>> tagger = CoreNLPParser(url='http://localhost:9000', tagtype='ner')
>>> tokens = 'Rami Eid is studying at Stony Brook University in NY'.split()
>>>
>>> tagger.tag(tokens)
[('Rami', 'PERSON'), ('Eid', 'PERSON'), ('is', 'O'), ('studying', 'O'), ('at', 'O'), ('Stony', 'ORGANIZATION'), ('Brook', 'ORGANIZATION'), ('University', 'ORGANIZATION'), ('in', 'O'), ('NY', 'STATE_OR_PROVINCE')]