TypeError:stat:路径应该是字符串、字节、os.PathLike 或整数,而不是 _io.TextIOWrapper

Gar*_*ava 5 python file-io typeerror stanford-nlp python-3.x

我在一个python教程网站上找到了以下代码:

from nltk.tag import StanfordNERTagger

stanford_classifier = open("english.all.3class.distsim.crf.ser.gz")
stanford_ner_path = open("stanford-ner.jar")

st = StanfordNERTagger(stanford_classifier, stanford_ner_path)
Run Code Online (Sandbox Code Playgroud)

错误如下:

from nltk.tag import StanfordNERTagger

stanford_classifier = open("english.all.3class.distsim.crf.ser.gz")
stanford_ner_path = open("stanford-ner.jar")

st = StanfordNERTagger(stanford_classifier, stanford_ner_path)
Run Code Online (Sandbox Code Playgroud)

Ron*_*eau 2

你的问题

正如您在此文档页面中所看到的,StanfordNERTagger将文件路径作为参数:

StanfordNERTagger(path_to_model, path_to_jar)
Run Code Online (Sandbox Code Playgroud)

您的代码崩溃,因为open()会给您文件对象,而这不是StanfordNERTagger预期的参数。

解决方案

直接将您的路径作为参数提供给StanfordNERTagger,如下所示:

st = StanfordNERTagger("C:\Users\DELL7810\AppData\Local\Programs\Python\Python37\stanford-ner-2018-02-27\classifiers\english.all.3class.distsim.crf.ser.gz", "C:\Users\DELL7810\AppData\Local\Programs\Python\Python37\stanford-ner-2018-02-27\stanford-ner.jar")
Run Code Online (Sandbox Code Playgroud)