【问题标题】:TypeError: __init__() got multiple values for keyword argument 'encoding'TypeError:__init__() 为关键字参数“编码”获取了多个值
【发布时间】:2018-04-19 05:03:26
【问题描述】:
from nltk.tag.stanford import CoreNLPNERTagger as POSTagger
english_postagger = POSTagger(RESOURCES_DIR+'jars/english-left3words-distsim.tagger',RESOURCES_DIR+'jars/stanford-postagger.jar', encoding='utf-8')

当我运行上面的代码时,我得到了以下错误。如何解决这个问题?

Traceback (most recent call last):
 File "ILPMod.py", line 44, in <module>
 english_postagger = POSTagger(RESOURCES_DIR+'jars/english-left3words-distsim.tagger',RESOURCES_DIR+'jars/stanford-postagger.jar', encoding='utf-8')
TypeError: __init__() got multiple values for keyword argument 'encoding'

【问题讨论】:

    标签: python python-2.7 nlp nltk stanford-nlp


    【解决方案1】:

    您导入为POSTaggerCoreNLPNERTagger 具有与StanfordPOSTagger 不同的界面。来自文档:

    class nltk.tag.stanford.CoreNLPNERTagger(url='http://localhost:9000', encoding='utf8')

    基地:nltk.tag.stanford.CoreNLPTagger

    这是 CoreNLPTagger 的子类,它围绕 nltk.parse.CoreNLPParser 用于命名实体标记。

    >>> from nltk.tag.stanford import CoreNLPNERTagger
    >>> CoreNLPNERTagger(url='http://localhost:9000').tag('Rami Eid is studying at Stony Brook University in NY'.split())  [('Rami', 'PERSON'),('Eid', 'PERSON'), ('is', 'O'), ('studying', 'O'), ('at', 'O'), ('Stony', 'ORGANIZATION'), ('Brook', 'ORGANIZATION'), ('University', 'ORGANIZATION'), ('in', 'O'), ('NY', 'O')]
    

    对于CoreNLPNERTagger,您应该首先启动一个核心 NLP 服务器并像这样连接到它:

    with CoreNLPServer(port=9000) as server:
        tagger = CoreNLPNERTagger(url=server.url)
        tagger.tag(...)
    

    或者简单地使用StanfordPOSTagger,就像你目前正在尝试的那样。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-28
      • 2018-10-18
      • 1970-01-01
      • 1970-01-01
      • 2022-11-17
      相关资源
      最近更新 更多