JSTOR/DfR数据的已知问题

托马斯·克莱贝尔

2023-08-15

收集所有怪癖

JSTOR/DfR中的数据与您在以下情况下遇到的大多数其他数据不同进行文本分析。首先,关于文章和书籍来自各种各样的期刊和出版商。的级别因此,细节和某些格式会有所不同。jstor公司尝试用两种策略来处理这种情况:

第一种情况的示例是引用。四种不同的方式此时可以指定的引用是已知的,并且所有引用都被导入以特定的方式处理这种变化。然而,可能还有其他格式,在尝试导入时会导致信息错误它们通过jst_get_references().

后一种情况的一个例子是页码。大多数时候,页码条目很简单42,或61。这与预期的一样,可以解析为整数。有时,会出现一些字符,比如M77型。这个也不会造成任何问题,我们只需通过正则表达式并解析为字符。不幸的是,有时页面是规定如下:v75i2p84。提取所有数字将导致75284这是错误的。从那以后可能是指定页面的其他方式,jstor公司不会导入时尝试将页面解析为整数。然而,它提供了一组方便的函数,用于处理一些常见情况(请参见jst_augment()和以下)。

像这样的问题或特点还有很多。这个vignette试图列出尽可能多的问题,并提供解决方案与他们打交道。不幸的是,我既没有时间也没有有兴趣浏览你可以从DfR获得的所有数据以找出所有可能的怪癖。因此,下面的列表是不可避免的不完整。如果你遇到新的怪癖/怪癖非常感谢你给我发邮件,或者在打开问题github。然后,我会将您的发现包含在未来版本中小插曲,所以这个小插曲可以成为每个人的起点使用JSTOR/DfR的数据进行文本分析。

数据增强

通过导入数据后jst_get_article(),有个您通常至少需要完成两项任务:

有四个功能可以帮助您简化此过程过程:

已知的怪癖

在以下各节中,英国国防部数据的已知问题如下详细描述。

页码

页码乱七八糟。除上述问题外,第页数字有时可能被指定为“第1234-83页”,如本文来自美国社会学杂志。当然,这会导致第一页=1234最后一页=83、和计算的总页数jst_get_total_pages()将为负值。目前没有通用的解决方案问题。

计算总页数

如上所述,页码的形式非常不同。除此之外这个问题,实际上还有另一个问题。想象一下你想量化文章的长度。显然,您需要以下信息文章的第一页和最后一页。此外,页面需要正确解析:如果计算页面,就会遇到麻烦数字,如75284 - 42 + 1,以防数字被解析很糟糕。jst_clean_page()尝试根据一些已知的可能性:

  • “2”->2
  • “A2”->2
  • “v75i2p84”->84

不幸的是,正确解析是不够的。像“勘误表”之类的东西可能会缠着你。例如,可能有一篇文章第一页=42last_page=362,其中会让你疑惑这是不是真的1。可能有简单解释:文章可能从第42页开始,到第42页结束65,第362页还有一个勘误表。从技术上讲,last_page=362是真的,但它会引起问题用于计算总页数。经常会有另一列中可以解决此问题的信息:页面范围(_R),在这种情况下看起来像42 - 65, 362.

处理这些情况的小助手是jst_get_total_pages()。它适用于页面范围,但也适用于对于第一页和最后一页:

图书馆(jstor)
图书馆(dplyr)

输入<-可开采的::三叉戟(
  ~第一页,~最后一页,~页面范围,
  NA_批准_,NA_批准_,NA_字符_,
  1,10,"1 - 10",
  1,10,NA_字符_,
  1,NA_调用_,NA_字符_,
  1,NA_批准_,"1-10",
  NA_批准_,NA_批准_,"1, 5-10",
  NA_批准_,NA_批准_,"1-4, 5-10",
  NA_批准_,NA_批准_,“1-4,C5-C10”
)

输入%>% 
  突变(页码(_pages)= jst_get_total页面(第一页、最后一页、页面范围))
#>#A台:8×4
#>第一页最后一页范围n_pages
#><dbl><dbl><chr><dbl>
#>1不适用不适用
#> 2          1        10 1 - 10           10
#>3 1 10<NA>10
#>4 1不适用
#>5 1北美1-10 10
#>6 NA NA 1,5-10 7
#>7 NA NA 1-4、5-10 10
#>8 NA NA 1-4,C5-C10 10

这实际上与使用jst_add_total_pages()以下为:

输入%>% 
  jst_add_total页面()
#>#A台:8×4
#>第一页最后一页范围n_pages
#><dbl><dbl><chr><dbl>
#>1不适用不适用
#>2 1 10 1-10 10
#>3 1 10<NA>10
#>4 1不适用
#>5 1北美1-10 10
#>6 NA NA 1,5-10 7
#>7 NA NA 1-4、5-10 10
#>8 NA NA 1-4,C5-C10 10

日志标识符

日记账的标识符通常分为三列:

示例_文章<- jst_get_文章(jst示例(“article_with_references.xml”))

针织物时间:卡布尔的(示例_文章)
文件名 日志doi 日志jcode 日志_子id 日志_标题 文章_目录 文章_订阅id 文章j代码 文章类型 文章_标题 体积 问题 语言 公共日 公共_月 公共年度 第一页(_P) 最后_页 页面范围(_R)
有参考文献的文章 不适用 tranamermicrsoci公司 不适用 美国微观学会会刊 10.2307/3221896 不适用 不适用 研究论文 青蛙寄生原生动物的研究 41 2 发动机 1 4 1922 59 76 59胜76负

从我的样本来看日志_子id通常会丢失journaldoi。这个因此,最重要的标识符是日志jcode.在案例中其中两者都是日志jcode日志_子id至少在我的示例中日志jcode是不同的。为了保持一致性,jst_unify_journal_id()因此需要内容日志_子id如果存在,以及日志jcode否则。

使用此算法,应该可以将它们可靠地匹配到各期刊的一般信息jst_get_journal_overview()以下为:

示例_文章%>% 
  jst_unify_journal_id()%>% 
  left_join(左_连接)(jst_get_journal概述())%>% 
第三年::聚集(变量,值)%>% 
针织物::卡布尔的()
#>加入,by=“journal_id”
变量 价值
文件名 有参考文献的文章
日志_标题 美国微观学会会刊
文章_ doi 10.2307/3221896
文章_订阅id 不适用
文章j代码 不适用
文章类型 研究论文
文章_标题 青蛙寄生原生动物的研究
体积 41
问题 2
语言 发动机
公共日 1
公共_月 4
公共年度 1922
第一页(_P) 59
最后_页 76
页面范围(_R) 59-76
日志id tranamermicrsoci公司
标题 美国微观学会汇刊
国际标准化组织 00030023
艾森 不适用
国防部 10.2307/j100072
网址 https://www.jstor.org/journal/tranamermicrsoci
学科 生物科学;科学与数学;动物学
出版商 美国微观学会;威利
覆盖范围 1878-1994
oclc_目录标识符 61241470
lccn目录标识符 2005 237209
存档释放日期 2005-08-10
收藏 生物科学文集;公司&营利获取倡议收集;JSTOR档案期刊&主要来源收集;生命科学收藏

重复的ngrams

来源 时间跨度 部分
美国社会学杂志 未知 书评

对于AJS,书评的ngram是按每期计算的。那里每个问题都有很多评论,并且每个评论都有一个相同的文件包含本期所有书评的ngram。

处理这一问题的一个可能策略是要么不使用ngram,因为它们是根据问题中的所有评审计算的,无论给定问题的所有审查是否都在样品与否。或者,可以按问题分组,并且只能每期取一套ngram。

语言代码

语言信息不一致。对于样品,语言发动机.

示例_文章%>% 
  (语言)
#>[1]“eng”(英语)

在其他情况下可能是英语因此,建议通过快速查看不同的变体不同(元数据,语言)计数(元数据,语言).

不正确/奇怪的参考

在分析参考文献和脚注的数据时,您将遇到许多不一致和错误。其中大多数不是由于来自英国国防部的错误,但仅仅源于人类创作手稿时的错误,并非所有参考文献的错误在打印之前被捕获。

非英语字符问题

一个常见的问题是名称中包含非英语字符,如德语umlauts(Ferdinand Tönnies)或北欧名字(Gösta Esping-Andersen)。这些将以许多不同的变体出现:Tonnies、Tönnies、Gosta、,哥斯塔等。

OCR问题

对于较旧的文章,您可能会遇到以下问题使用OCR软件数字化文本。一个常见的问题是区分就像“恋爱中”这个短语。根据数据中出现的名称,这可能会导致不一致。

文章作者的错误

有许多作者犯错误的例子和你的总结统计数据最终被歪曲了。这个文章关于“职场道德教育”,引用了同样的话项目多次,这可能是一个工件。的优势使用JSTOR/DfR数据,您可以检查所有源并检查,如果你看到的特定图案是人造的或真的。


  1. 虽然这听起来很荒谬,但实际上可能是真的。有一些200页长的文章。显然,他们是不是标准的研究文章。你需要决定他们是否会摔倒你的样品中。