【已解决】win10环境下基于nltk搭建stanford parser环境,进行中文依存句法分析
2017-09-28 19:32
781 查看
原文:http://blog.csdn.net/lr231654111/article/details/74129620
NLTK中使用Stanford parser:http://blog.csdn.net/sherrylml/article/details/45197187
但遇到了下面的报错:
参考下面的两篇问答解决了这个问题: https://stackoverflow.com/questions/35624245/java-command-failed-when-running-nltk-stanfordparser https://github.com/nltk/nltk/issues/1239
所用的方法是第二个问答里提到的“hack the stanford parser classpath”,主要的代码是:
[python]
view plain
copy
print?
from nltk.internals import find_jars_within_path
parser._classpath = tuple(find_jars_within_path(stanford_dir))
用stanford处理中文要注意就两点:一是使用中文模型,二是注意编码(unicode输入)。
stanford 提供的中文模型在下面的参数中设置:
[python]
view plain
copy
print?
parser = stanford.StanfordDependencyParser('D:/jars/stanford-parser.jar',
'D:/jars/stanford-parser-3.8.0-models.jar',
'D:/LearnNLTK/stanfordNLTK/stanford-parser-3.8.0-models/edu/stanford/nlp/models/lexparser/chinesePCFG.ser.gz') # 指定使用的模型
主要模型有:chinesePCFG(最简洁快速),chineseFactored(据说更准确,但吃内存),xinhuaPCFG和xinhuaFactored(是根据某个国内的语料库训练的模型)<前面的模型都需要先进行分词>,xinhuaFactoredSegmenting(这个内置分词)。
然而,我最后没能做出stanford parser和LTP的依存分析结果对比,因为stanford parser对句子的完整度要求比较高,对于一些不完整的句子会报错:
the graph doesn't contain a node that depends on the root element.我想这个和我的语料中有大量无主句,不完整句子有关。
Python自然语言处理实践: 在NLTK中使用斯坦福中文分词器:http://www.52nlp.cn/python%E8%87%AA%E7%84%B6%E8%AF%AD%E8%A8%80%E5%A4%84%E7%90%86%E5%AE%9E%E8%
a5ef
B7%B5-%E5%9C%A8nltk%E4%B8%AD%E4%BD%BF%E7%94%A8%E6%96%AF%E5%9D%A6%E7%A6%8F%E4%B8%AD%E6%96%87%E5%88%86%E8%AF%8D%E5%99%A8
【NLP】干货!详述PythonNLTK下如何使用stanfordNLP工具包:http://www.w2bc.com/article/185348
试用Stanford Parser处理中文语句:http://bradyzhu.iteye.com/blog/2271186
采用Stanford Parser进行中文语法解析:http://www.xuebuyuan.com/1789420.html
Stanford Dependency-Parser 分享:http://blog.csdn.net/allenshi_szl/article/details/6093582
基本环境搭建
主要参考下面的文章进行搭建:NLTK中使用Stanford parser:http://blog.csdn.net/sherrylml/article/details/45197187
但遇到了下面的报错:
OSError: Java command failed :
参考下面的两篇问答解决了这个问题: https://stackoverflow.com/questions/35624245/java-command-failed-when-running-nltk-stanfordparser https://github.com/nltk/nltk/issues/1239
所用的方法是第二个问答里提到的“hack the stanford parser classpath”,主要的代码是:
[python]
view plain
copy
print?
from nltk.internals import find_jars_within_path
parser._classpath = tuple(find_jars_within_path(stanford_dir))
from nltk.internals import find_jars_within_path parser._classpath = tuple(find_jars_within_path(stanford_dir))
中文分析
我的目的是比较stanford parser和LTP的依存分析结果的一致性如何。用stanford处理中文要注意就两点:一是使用中文模型,二是注意编码(unicode输入)。
stanford 提供的中文模型在下面的参数中设置:
[python]
view plain
copy
print?
parser = stanford.StanfordDependencyParser('D:/jars/stanford-parser.jar',
'D:/jars/stanford-parser-3.8.0-models.jar',
'D:/LearnNLTK/stanfordNLTK/stanford-parser-3.8.0-models/edu/stanford/nlp/models/lexparser/chinesePCFG.ser.gz') # 指定使用的模型
parser = stanford.StanfordDependencyParser('D:/jars/stanford-parser.jar', 'D:/jars/stanford-parser-3.8.0-models.jar', 'D:/LearnNLTK/stanfordNLTK/stanford-parser-3.8.0-models/edu/stanford/nlp/models/lexparser/chinesePCFG.ser.gz') # 指定使用的模型
主要模型有:chinesePCFG(最简洁快速),chineseFactored(据说更准确,但吃内存),xinhuaPCFG和xinhuaFactored(是根据某个国内的语料库训练的模型)<前面的模型都需要先进行分词>,xinhuaFactoredSegmenting(这个内置分词)。
然而,我最后没能做出stanford parser和LTP的依存分析结果对比,因为stanford parser对句子的完整度要求比较高,对于一些不完整的句子会报错:
the graph doesn't contain a node that depends on the root element.我想这个和我的语料中有大量无主句,不完整句子有关。
主要参考文献
NLTK中使用Stanford parser:http://blog.csdn.net/sherrylml/article/details/45197187Python自然语言处理实践: 在NLTK中使用斯坦福中文分词器:http://www.52nlp.cn/python%E8%87%AA%E7%84%B6%E8%AF%AD%E8%A8%80%E5%A4%84%E7%90%86%E5%AE%9E%E8%
a5ef
B7%B5-%E5%9C%A8nltk%E4%B8%AD%E4%BD%BF%E7%94%A8%E6%96%AF%E5%9D%A6%E7%A6%8F%E4%B8%AD%E6%96%87%E5%88%86%E8%AF%8D%E5%99%A8
【NLP】干货!详述PythonNLTK下如何使用stanfordNLP工具包:http://www.w2bc.com/article/185348
试用Stanford Parser处理中文语句:http://bradyzhu.iteye.com/blog/2271186
采用Stanford Parser进行中文语法解析:http://www.xuebuyuan.com/1789420.html
Stanford Dependency-Parser 分享:http://blog.csdn.net/allenshi_szl/article/details/6093582
相关文章推荐
- 【已解决】win10环境下基于nltk搭建stanford parser环境,进行中文依存句法分析
- 使用Stanford CoreNLP的Python封装包处理中文(分词、词性标注、命名实体识别、句法树、依存句法分析)
- 斯坦福依存句法分析环境的搭建(但没有root提示)
- Stanford3.8.0依存句法分析在java中运行
- 使用opennlp进行依存句法分析
- 中文依存句法分析概述及应用
- 中文依存句法分析概述及应用
- 使用stanford nlp进行依存句法分析
- 为xgboost搭建环境,升级glibc,gcc,和解决升级glibc之后的中文乱码问题
- 利用Python进行数据分析-环境搭建
- 基于神经网络的依存句法分析
- 环境搭建基础知识0(Word无法切换中文输入法的解决方法)
- Win10 64位系统中PLSQL显示乱码-无法进行中文条件查询解决
- nltk对中文进行处理和分析
- Win10下搭建绿色版基于WAMP的PHP开发环境
- zookeeper环境搭建中的几个坑[Error contacting service. It is probably not running]的分析及解决
- 使用NLTK对中文文本进行简单分析
- 【已解决】基于Eclipse的Android开发环境ADT中,中文显示字体很小,很难看
- 【物联网】QCA4010开发环境搭建(二)(解决WIN10下不能驱动问题)
- 解决基于Eclipse的Android开发环境ADT中文显示字体太小