Stanfordnlp 安装及使用

简介

StanfordCoreNLP提供了一系列用于自然语言的技术工具。它可以给出不管是公司名还是人名亦或标准化日期、时间和数量等单词的基本形式,词性等。如下图所示它还可以根据短语和句法依存关系标记句子结构,指明哪些名词短语表示相同的实体,指明情感,提取实体及之间的特定或开放类关系,获取名人名言等等。

Stanfordnlp 安装及使用_第1张图片

StanfordCoreNLP适用于以下情形:

一个具有广泛语法分析工具集成的NLP工具包;

一种广泛应用于生产中的快速、健壮的任意文本注释器;

一个现代化的具有全面高质量的文本分析功能的、定期更新的软件包;

支持多种人类自然语言(e.g英语中文);

支持大多数编程语言的可扩展API;

能够作为简单的web服务运行。

StanfordCoreNLP是一个集成的框架。它的目标是使得应用一大堆语言分析工具分析大量的文本变得简单。Pipeline工具可以仅仅通过两行命令执行大量的文本分析工作。框架设计的初衷是高度灵活的可扩展性的,可以通过一个选项设置启用和禁用哪些工具。StanfordCoreNLP集成了许多斯坦福的NLP工具,包括词性( POS )标记器、命名实体识别器( NER )、解析器、共指解析系统、情感分析、自举模式学习和开放信息提取工具。此外,注释器管道可以包括额外的定制或第三方注释器。CoreNLP的分析为更高级别和特定领域的文本理解应用程序提供了基础构件。

Part1 安装及配置

1) 提前安装jdk1.8,并配置好java路径。确保在cmd中输入命令java, java -version, javac的时候显示正常。详情可见参考文献1.

2) pip install stanfordnlp

3) pip install stanfordcorenlp

4)下载https://stanfordnlp.github.io/CoreNLP/的CoreNLP 3.9.2以及模型jar包,这里下载了英文和中文模型jar包。Stanfordnlp 安装及使用_第2张图片

5)将jar包放到解压缩后的coreNLP3.9.2的文件夹(!!!),如果不放在一起后面执行如下两行命令的时候会卡住。

若运行下述两行命令没有异常则表明coreNLP安装成功了。

from stanfordcorenlp import StanfordCoreNLP

nlp = StanfordCoreNLP(r'E:\stanford_nlp',lang='zh') 

其中两个参数分别表示解压缩的文件夹目录以及语言选择,如果是英文则lang='en',其他语言以此类推。

Part2 使用StanfordCoreNLP

1) 对一段句子进行分词(word_tokenize)、词性标注(pos_tag)、命名实体识别(ner)、句法依存分析(dependency_parse)、句法解析(parse)

Stanfordnlp 安装及使用_第3张图片

Stanfordnlp 安装及使用_第4张图片

2)对一个文本进行词性标注(pos_tag)、命名实体识别(ner)

from  stanfordcorenlp import StanfordCoreNLP
nlp=StanfordCoreNLP(r'E:\stanford_nlp',lang='zh')


fin=open('news.txt','r',encoding='utf8')
fner=open('ner.txt','w',encoding='utf8')
ftag=open('pos_tag.txt','w',encoding='utf8')
 
for line in fin:
    line=line.strip()
    if len(line)<1:
        continue
    
    fner.write(" ".join([each[0]+"/"+each[1] for each in nlp.ner(line) if len(each)==2 ])+"\n")
    ftag.write(" ".join([each[0]+"/"+each[1] for each in nlp.pos_tag(line) if len(each)==2 ]) +"\n")
fner.close()
ftag.close()
Stanfordnlp 安装及使用_第5张图片

结果如下:

Stanfordnlp 安装及使用_第6张图片

参考文章:

1. https://blog.csdn.net/qq_40426415/article/details/80994622

2. https://zhuanlan.zhihu.com/p/35811856

3. https://blog.csdn.net/android_ruben/article/details/54600716

4. https://stanfordnlp.github.io/CoreNLP/

5. https://www.cnblogs.com/renyang/p/10184444.html

你可能感兴趣的:(python,machine,learning,NLP)