NLP之Stanford Parser using NLTK
来源:互联网 发布:android软件开发项目 编辑:程序博客网 时间:2024/05/22 07:52
因为官网的使用的很不方便,各个参数没有详细的说明,也查不到很好的资料了。所以决定使用python配合NLTK来获取Constituency Parser和Denpendency Parser。
一、安装python
操作系统win10
jdk(版本1.8.0_151)
anaconda(版本4.4.0),python(版本3.6.1)
略
二、安装NLTK
pip install nltk
安装完成之后进入python命令中,输入
import nltknltk.download()
如图所示:
然后就会弹出一个框,具体我目前也不是很懂,大概就是提供的一些资源包,所以我就全部先download
如图所示:
这样就完成了。
三、stanford parser与NLTK
在不设置classpath的情况下,简单实用stanford parser的几个简单的demo
1.Constituency Parser
# -*- coding: utf-8 -*-import osfrom nltk.parse.stanford import StanfordParseros.environ['STANFORD_PARSER'] = './model/stanford-parser.jar'os.environ['STANFORD_MODELS'] = './model/stanford-parser-3.8.0-models.jar'parser = StanfordParser(model_path="edu/stanford/nlp/models/lexparser/englishPCFG.ser.gz")sentences = parser.raw_parse("the quick brown fox jumps over the \" lazy \" dog .")# for line in sentences:# for t in line:# print(t)# GUIfor line in sentences: for sentence in line: sentence.draw()
2.Denpendency Parser
# -*- coding: utf-8 -*-import osfrom nltk.parse.stanford import StanfordDependencyParseros.environ['STANFORD_PARSER'] = './model/stanford-parser.jar'os.environ['STANFORD_MODELS'] = './model/stanford-parser-3.8.0-models.jar'parser = StanfordDependencyParser(model_path="edu/stanford/nlp/models/lexparser/englishPCFG.ser.gz")sentences = parser.raw_parse("the quick brown fox jumps over the lazy dog")# 返回的是tree# for line in sentences:# print(line)res = list(parser.parse("the quick brown fox jumps over the lazy dog .".split()))for row in res[0].triples(): print(row)
这是分割线
最终版的:
# -*- coding: utf-8 -*-import osfrom nltk.parse.stanford import StanfordDependencyParseros.environ['STANFORD_PARSER'] = './model/stanford-parser.jar'os.environ['STANFORD_MODELS'] = './model/stanford-parser-3.8.0-models.jar'parser = StanfordDependencyParser(model_path="edu/stanford/nlp/models/lexparser/englishPCFG.ser.gz")fin = open("./data/raw.clean.test", encoding="utf-8")fout = open("./result/test.txt", "w+", encoding="utf-8")i = 0for line in fin.readlines(): if line is None or line == "": pass else: sentences, = parser.parse(line.split("|||")[0].split(" ")) # print(sentences.to_conll(4)) fout.write(sentences.to_conll(4)) fout.write('\n') fout.flush() i += 1 print(i)fin.close()fout.close()
最终的样子非常符合我的需求
over
阅读全文
0 0
- NLP之Stanford Parser using NLTK
- NLP之Stanford Parser
- NLTK+stanford parser
- NLTK使用Stanford parser方法,可类推Stanford其他nlp工具
- NLTK中使用Stanford parser
- python+nltk+Stanford Parser+snowNLP
- NLTK中使用Stanford parser 构建中文语法树
- 【segmentation & parsing & dependency parsing】nltk调用stanford NLP工具包
- 干货!详述Python NLTK下如何使用stanford NLP工具包
- Python NLTK结合stanford NLP工具包进行文本处理
- http://nlp.stanford.edu:8080/parser/index.jsp
- NLP-python自然语言工具之nltk
- Stanford nlp 初步之词性标注
- 【已解决】win10环境下基于nltk搭建stanford parser环境,进行中文依存句法分析
- 【已解决】win10环境下基于nltk搭建stanford parser环境,进行中文依存句法分析
- NLP之路-实验nltk中的raw 和 words
- NLP:nltk+stanfordNLP
- 【NLP】play with stanford nlp
- Binder通信机制原理解析
- ARM编程寄存器定义
- 被时间遗忘的角落
- 119. Pascal's Triangle II
- 数论——斐波那契练习题二——斐波那契变式
- NLP之Stanford Parser using NLTK
- 贝叶斯(01) 初识贝叶斯
- 蓝桥杯 基础练习 十六进制转八进制
- cin、cin.get()、cin.getline()、getline()、gets()等函数的用法
- ThreadLocal-单例模式下高并发线程安全
- could-not-execute-graphicsmagick-imagemagick-identify-ping-format
- 冈萨雷斯数字图像处理学习7:图像分割 点线和边缘的检测
- window.location.href parent.location.href top.location.href
- lintcode2-2. 尾部的零