nltk 问题:使用maltParser和RegexpTagger进行语篇测试时出现问题,

hof1towb  于 4个月前  发布在  其他
关注(0)|答案(2)|浏览(35)

在尝试应用话语测试器时,遇到了一个问题:
rc = DrtGlueReadingCommand(depparser=MaltParser(tagger=tagger))
Traceback (most recent call last):
File "", line 1, in
TypeError: init() 需要至少2个参数(给了2个)

lnlaulya

lnlaulya1#

嘿,@michalstepniewski
看起来MaltParser的__init__函数需要参数parser-dirname,该参数描述了maltparser jar文件的位置。你可以在这里看到:

:param parser_dirname: The path to the maltparser directory that
        contains the maltparser-1.x.jar
        :type parser_dirname: str

大约在malt.py的第117行附近。
看起来discourse.doctest文档中大约第520行附近的内容需要更新以反映这一点。
此外,discourse.py文件的演示也应该在大约第609行附近更新,以反映parser_dirname参数是必需的。
在更新此后,我遇到了一些关于malt_train.conll文件的其他错误,但请尝试将该参数放入其中并查看结果。

b4qexyjb

b4qexyjb2#

MaltParser看起来也被移动到了nltk.parse.malt.MaltParser[source]。我不确定我们将如何进行,但如果我们要更新示例,那么maltparser必须涉及:

import nltk
from nltk.parse import malt

# Specify the path to the MaltParser executable
malt_path = '/path/to/maltparser-1.9.2/maltparser-1.9.2.jar'

# Specify the path to the MaltParser model file
model_path = '/path/to/maltparser-1.9.2/engmalt.linear-1.7.mco'

# Create a MaltParser object
malt_parser = malt.MaltParser(malt_path, model_path)

# Example sentence for parsing
sentence = "The quick brown fox jumps over the lazy dog."

# Tokenize the sentence
tokens = nltk.word_tokenize(sentence)

# Perform dependency parsing
result = malt_parser.parse_one(tokens)

# Display the parsed result
print(result.to_conll(10))  # Print the result in CoNLL format

或者为了简单起见,完全删除maltparser。

相关问题