Python 调用 Stanford Parser 两种方法
来源:互联网 发布:日文汉化软件 编辑:程序博客网 时间:2024/05/16 09:34
本人操作环境:
windows7,64位操作系统
64位Python2.7.6
jython2.5.2
NLTK-3.0.4
JAVA 8
方法一:官网推荐的Jython接口
参考:
http://nlp.stanford.edu/software/lex-parser.shtml#Download
https://github.com/vpekar/stanford-parser-in-jython
第一,将stanford.py放到F:\jython2.5.2\Lib;
第二,在文件test_stanford.py中将englishPCFG.ser.gz的完整路径作为StanfordParser的参数,如下:
PARSER = StanfordParser('E:\jcode\englishPCFG.ser.gz')
第三,将stanford-parser.jar的完整路径添加到jython的classpath中,在stanford.py的文件头部添加如下代码:
sys.path.append('F:\jython2.5.2\extlibs\stanford-parser.jar')
第四,在cmd中运行test_stanford.py
结果如下图:
第五,注意这三个软件的版本,Stanford parser v.3.5.0(我试了高版本3.6.0,会报错), Java 8, Jython 2.5.2
注:关于Jython的安装和配置环境变量很简单,请自行百度。
方法二:调用NLTK中的stanford parser接口
参考:
http://stackoverflow.com/questions/13883277/stanford-parser-and-nltk
http://blog.csdn.net/qq_19670461/article/details/42681551
第一,修改F:\Python2.7.6\Lib\site-packages\nltk-3.0.4-py2.7.egg\nltk\parse\stanford.py文件中的如下代码:
# Run the tagger and get the output. stdout,stderr=java(cmd, classpath=(self._stanford_jar, self._model_jar,'E:/jars/slf4j-api-1.7.17.jar'), stdout=PIPE, stderr=PIPE) stdout = stdout.decode(encoding)将slf4j-api-1.7.17.jar的完整路径加入到classpath中,这样就可以解决如下异常
java.lang.ClassNotFoundException: org/slf4j/LoggerFactory
slf4j下载地址:http://www.slf4j.org/download.html
第二,运行如下demo
# -*- coding: cp936 -*- import os from nltk.parse import stanford #添加stanford环境变量,此处需要手动修改,jar包地址为绝对地址。 os.environ['STANFORD_PARSER'] = 'E:/jars/stanford-parser.jar' os.environ['STANFORD_MODELS'] = 'E:/jars/stanford-parser-3.6.0-models.jar' #为JAVAHOME添加环境变量 java_path = "C:/Program Files/Java/jdk1.8.0_51/bin/java.exe" os.environ['JAVAHOME'] = java_path #句法标注 parser = stanford.StanfordParser(model_path="E:/jcode/englishPCFG.ser.gz") print list(parser.raw_parse("the quick brown fox jumps over the lazy dog"))运行结果如下:
其他功能参考Python2.7.6\Lib\site-packages\nltk-3.0.4-py2.7.egg\nltk\parse\stanford.py文件中头部示例。
第三,注意nltk的版本3.0版本,3.1版本用法可能与上述不同。
- Python 调用 Stanford Parser 两种方法
- python 借用Jpype调用stanford parser
- Stanford parser java+eclipse调用
- 借用jython调用stanford parser
- python+nltk+Stanford Parser+snowNLP
- Python中使用stanford parser(一)
- Python对象方法两种调用方式
- Stanford Parser (1)
- Stanford Parser (2)
- stanford parser 使用
- Stanford Dependency-Parser 分享
- stanford parser使用
- stanford parser使用参数
- stanford parser 使用教程
- Stanford Parser 使用方法
- stanford parser 使用
- stanford parser使用工具
- stanford parser 使用说明
- IOS字体模糊
- 保存自定义对象 archivedDataWithRootObject unarchiveObjectWithData
- mysql修改root密码
- gets() - fgets() & strcpy() - strncpy()
- 多媒体
- Python 调用 Stanford Parser 两种方法
- 分布式锁实现(基于redis)
- full screen video background
- Android自动开关机实现
- https安全协议
- Android工程师面试题大全
- js常用方法(正则工具类)
- ucos 多任务操作系统 无法仿真 系统不运行的调试方法
- 百度语音sdk授权问题