python中使用NLTK中的stanford parser进行句法分析

Amina_L 2017-07-07 03:14:06
我在网络上搜到用nltk同样可以使用stanford parser,代码如下:
import itertools
#import nltk
from nltk.tokenize import StanfordSegmenter
from nltk.tokenize import StanfordTokenizer
from nltk.tag import StanfordPOSTagger
from nltk.parse.stanford import StanfordParser
from nltk.parse import stanford
from nltk.tag.api import TaggerI
parser = StanfordParser(
path_to_jar='C:\\ProgramData\\Anaconda3\\stanfordparser\\stanford-parser.jar',
path_to_models_jar='C:\\ProgramData\\Anaconda3\\stanfordparser\\stanford-parser-3.6.0-models.jar',
model_path='C:\\ProgramData\\Anaconda3\\stanfordparser\\stanford-parser-3.6.0-models\\edu\\stanford\\nlp\\models\\lexparser\\englishPCFG.ser.gz')
#parser = StanfordParser('C:\\ProgramData\\Anaconda3\\stanfordparser\\stanford-parser.jar','C:\\ProgramData\\Anaconda3\\stanfordparser\\slf4j-api.jar','C:\\ProgramData\\Anaconda3\\stanfordparser\\data\\english-onesent.txt')
lt = parser.parse("the quick brown fox jumps over the lazy dog".split())
print(list(lt))

但是问题出现了

import itertools#import nltkfrom nltk.tokenize import StanfordSegmenterfrom nltk.tokenize import StanfordTokenizerfrom nltk.tag import StanfordPOSTaggerfrom nltk.parse.stanford import StanfordParserfrom nltk.parse import stanfordparser = StanfordParser( path_to_jar='C:\\ProgramData\\Anaconda3\\stanfordparser\\stanford-parser.jar', path_to_models_jar='C:\\ProgramData\\Anaconda3\\stanfordparser\\stanford-parser-3.6.0-models.jar', model_path='C:\\ProgramData\\Anaconda3\\stanfordparser\\stanford-parser-3.6.0-models\\edu\\stanford\\nlp\\models\\lexparser\\englishPCFG.ser.gz')#parser = StanfordParser('C:\\ProgramData\\Anaconda3\\stanfordparser\\stanford-parser.jar','C:\\ProgramData\\Anaconda3\\stanfordparser\\slf4j-api.jar','C:\\ProgramData\\Anaconda3\\stanfordparser\\data\\english-onesent.txt')lt = parser.parse("the quick brown fox jumps over the lazy dog".split())from nltk.tag.api import TaggerIprint(list(lt))


\
第 1 个(共 60 个)


\\

问题
输出
调试控制台
终端
Traceback (most recent call last):
File "g:\chromedownload\textrank-master\new.py", line 12, in <module>
model_path='C:\\ProgramData\\Anaconda3\\stanfordparser\\stanford-parser-3.6.0-models\\edu\\stanford\\nlp\\models\\lexparser\\englishPCFG.ser.gz')
File "C:\ProgramData\Anaconda3\lib\site-packages\nltk\parse\stanford.py", line 51, in __init__
key=lambda model_name: re.match(self._JAR, model_name)
TypeError: '>' not supported between instances of 'NoneType' and 'NoneType'
这个是什么原因?看出错的函数定义是

def __init__(self, path_to_jar=None, path_to_models_jar=None,
model_path='edu/stanford/nlp/models/lexparser/englishPCFG.ser.gz',
encoding='utf8', verbose=False,
java_options='-mx1000m', corenlp_options=''):

# find the most recent code and model jar
stanford_jar = max(
find_jar_iter(
self._JAR, path_to_jar,
env_vars=('STANFORD_PARSER', 'STANFORD_CORENLP'),
searchpath=(), url=_stanford_url,
verbose=verbose, is_regex=True
),
key=lambda model_name: re.match(self._JAR, model_name)
)

请问该如何解决这个问题?
...全文
585 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

37,720

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧