1

我使用了 Solomon Messing 的教程(见下面的链接),了解如何将数据从 CAT 导出到 R 并取得了巨大成功。然而,当只有 3/4 的编码人员完成了对数据集的编码时,我遇到了问题。即使我删除了所有编码人员尚未编码的那些文档,R 似乎也无法解析 XML 文件。我的猜测是,来自 CAT 的 XML 文件是为初始数量的文档和编码器设置的,因此当文档和编码器被删除时,R 脚本不再兼容。有没有办法修改 XML 文件,甚至删除某些编码人员的编码?控制台输出如下所示:(当所有编码人员都完成编码时,我对奇数字符没有任何问题。)

doc <- xmlInternalTreeParse(doc, asText=T)

xmlParseCharRef:无效的 xmlChar 值 0

xmlParseCharRef:无效的 xmlChar 值 0

xmlParseCharRef:无效的 xmlChar 值 0

xmlParseCharRef:无效的 xmlChar 值 0

错误:1:xmlParseCharRef:无效的 xmlChar 值 0

2: xmlParseCharRef: 无效的 xmlChar 值 0

3: xmlParseCharRef: 无效的 xmlChar 值 0

4: xmlParseCharRef: 无效的 xmlChar 值 0

5: xmlParseCharRef: 无效的 xmlChar 值 0

6: xmlParseCharRef: 无效的 xmlChar 值 0

http://solomonmessing.wordpress.com/2013/02/04/cat-r-for-content-analysislabels-for-text-mining/

4

2 回答 2

0

我怀疑 R 对您从 Wordpress 复制的文本感到窒息。当我从该博客复制文本时,在 0 和 ; 之间有一个看不见的坏字符。在行中:

grep("", 文档)

doc <- gsub("", "", doc)

确保那里没有坏字符,然后重新运行脚本。当我 grep 为“�​;” (删除不可见的额外字符后)我在您的 xml 文档的第 22443 行找到了其中一个人。删除它后,我没有收到这些错误。

于 2014-05-27T14:26:23.563 回答
0

谢谢所罗门!这解决了我的问题。但是,R 在查找“paragraphCodes”时遇到了一些麻烦,因此我重新排列并稍微修改了初始脚本,如下所示:

paragraphTag <- unlist(xpathApply(doc, "//paragraph", xmlGetAttr, "paragraphTag" ))

paragraphIds <- unlist(xpathApply(doc, "//paragraph", xmlGetAttr, "paragraphId" ))

pgnum <- as.numeric(unlist(lapply(strsplit(paragraphTag, ".txt_"), function(x) x[[2]] )))

alldat$pgnum <- pgnum[match(para, paragraphIds)]

alldat$paragraphTag <- paragraphTag[match(para, paragraphIds)]

现在它完美无缺!

于 2014-05-28T15:51:12.343 回答