将stanford pos标记导入n时出错

2024-05-16 08:10:29 发布

您现在位置:Python中文网/ 问答频道 /正文

这可能是一个很小的问题。我正试图通过nltk使用stanford pos标记,因为here问题是我的nltk库不包含stanford模块。所以我把它复制到了相应的文件夹中并编译了它。现在,当我尝试运行一个示例时,会检测到模块,但不会检测到模块内的类。有人能告诉我哪里做错了吗??再说一次,这可能是非常愚蠢的。

>>> from nltk.tag import stanford 
>>> st = StanfordTagger('bidirection-distsim-wsj-0-18.tagger')

我用py_compile编译了stanford.py文件。我错过什么了吗


Tags: 模块frompy标记posimport文件夹示例
2条回答

您只导入stanford。要访问StanfordTagger,您需要使用以下任一选项:

>>> from nltk.tag.stanford import StanfordTagger

(假设stanfordtager没有进一步嵌套在模块中)或通过

>>> st = stanford.StanfordTagger('bidirection-distsim-wsj-0-18.tagger')

如果要使用Stanford解析器,请使用以下命令:

import os
from nltk.parse import stanford
os.environ['STANFORD_PARSER'] = '/folder/with/standford/jars'
os.environ['STANFORD_MODELS'] = '/folder/with/standford/jars'

parser = stanford.StanfordParser(model_path="/location/of/the/englishPCFG.ser.gz")
print parser.raw_batch_parse(("Hello, My name is Melroy.", "What is your name?"))

输出:

[Tree('ROOT', [Tree('S', [Tree('INTJ', [Tree('UH', ['Hello'])]), Tree(',', [',']), Tree('NP', [Tree('PRP$', ['My']), Tree('NN', ['name'])]), Tree('VP', [Tree('VBZ', ['is']), Tree('ADJP', [Tree('JJ', ['Melroy'])])]), Tree('.', ['.'])])]), Tree('ROOT', [Tree('SBARQ', [Tree('WHNP', [Tree('WP', ['What'])]), Tree('SQ', [Tree('VBZ', ['is']), Tree('NP', [Tree('PRP$', ['your']), Tree('NN', ['name'])])]), Tree('.', ['?'])])])]

注1: 在本例中,解析器和模型jar都在同一个文件夹中。

注2:

  • 斯坦福解析器文件名为:stanford-parser.jar
  • 斯坦福模型文件名为:stanford-parser-x.x.x-models.jar

注3: englishPCFG.ser.gz文件可以在models.jar文件(/edu/stanford/nlp/models/lexparser/englishPCFG.ser.gz)中找到。请使用come archive manager“解压缩”models.jar文件。

相关问题 更多 >