我在运行我几周前写的脚本时遇到了问题,它当时运行时没有错误。脚本将读取数千个文件并从中创建一个语料库。但是现在,我不知道为什么,相同的代码在脚本开始时返回一个不同的对象类,结果是代码中断的以下部分。
我想读的文件是国际条约。以前,当我应用quanteda::corpus时,它返回全局环境中"Data“下的S3语料库列表对象。但是现在,当我应用这个函数时,我得到了“值”下的语料库类字符对象。
下面是代码中的一个示例,目的是只阅读一份条约来说明这个问题:
> #This is the link to the file to be read:
> [https://investmentpolicy.unctad.org/international-investment-agreements/treaty-files/5908/download][1]
> mar_jp_txt<- readtext("/Desktop/mar_jp.pdf")
> corpus_txt_mjp <- corpus(mar_jp_txt) %>%
corpus_reshape(to = "sentences")
> class(corpus_txt_mjp)
[1] "corpus" "character"但是,我有一个先前保存的工作区映像,在那里我也有corpus_txt_mjp对象。当我检查它的类时,它是不同的:
> class(corpus_txt_mjp)
[1] "corpus" "list" 考虑到我在去年10月开始了这个项目,从那时起我应该使用相同版本的quanteda。然而,即使我在脚本中没有什么改变,我现在得到了一个不同的结果。当时,我在小样本上运行脚本,以查看它是否有效。现在,当我尝试在整个示例上运行它时,我就会遇到这个问题。这样做的原因是什么,谁能给我一个解决方案?
非常感谢!
编辑
我想我意识到了这个问题。我不知道为什么和如何,但上个月我使用了一个更老版本的quanteda。当我安装最近的版本时,代码停止工作。因此,在本例中,我要么安装旧版本,要么根据新版本更改脚本。
发布于 2021-01-13 00:28:34
在v2.0中,语料库对象的结构已经从一个列表变成了字符向量。但是,您可以运行as.corpus(corpus_txt_mjp)来升级对象。
https://stackoverflow.com/questions/65693727
复制相似问题