使用ctrailsgov包进行文本分析

Taylor Arnold和Michael J Kane

安装程序

首先,我们将加载包和样本数据集。下面的代码可以用于整个数据集,但可能会慢一些。

图书馆(ctrialsgov)
图书馆(dplyr)
ctgov加载示例()

上下文中的关键字

功能ctgov _ kwic公司突出显示术语在其上下文中的所有出现(术语出现之前和之后的几个单词)。例如,如果我们想在介入试验的标题中显示术语“膀胱”的出现,我们可以这样做:

z(z)<- ctgov查询(study_type(研究_类型)= “干预性”)
ctgov _ kwic公司(“膀胱”,z$简要_标题)
##ible Local Advvanved |膀胱|癌症##膀胱肿瘤化疗中的萝卜硫烷##膀胱充盈与非充盈的比较##过度活动|膀胱|/催尿##在生存期膀胱癌的检测中##A-F贝塔福德对胆囊|膀胱|和肝功能的影响。##非肌肉侵袭性|膀胱|癌症##眼病过度|膀胱|尿失禁##运动过度|膀胱|##癌症或转移|膀胱|癌症##自体Neo-|膀胱|非Ne结构##泌尿过度活跃|膀胱|和催促优势蛋白##AMG 706 on the Gall|膀胱|采用高级实心T##男性膀胱过度活跃。

该函数还有一个选项,可以在每行旁边打印的每个事件中包含一个标题。在这里,我们将打印每个试验的NCT id:

z(z)<- ctgov_查询(study_type(研究_类型)= “干预性”)
ctgov _ kwic公司(“膀胱”,z$简介_标题,z$功能id)
##[NCT04553939]ible Local Advaved|膀胱|癌症##【NCT03517995】磺胺嘧啶在|膀胱|癌症化学预防中的应用##[NCT04210479]膀胱|填充与非填充的比较##[NCT03535857]过度活动|膀胱|尿急失禁##[NCT02560584]在生存期膀胱癌检测中的应用##【NCT01981343】A-F倍他福对胆囊、膀胱和肝功能的影响。##[NCT01625260]非肌肉侵袭性|膀胱|癌症##[NCT00910845]碘缺乏|膀胱|有尿失禁##[NCT00912314]过度活动|膀胱|##[NCT00635726]癌症或转移|膀胱|癌症##[NCT00594139]自体Neo-|膀胱|非Ne构造##[NCT00594139]泌尿过度|膀胱|和催促强迫症##[NCT00448786]AMG 706 on the Gall | ballet | in Advanced Solid T(高级固体T)##[NCT00282932]男性运动过度|膀胱|。

还有一些其他选项可用于更改输出的显示方式。默认值(如上所示)使用功能。其他选项将结果作为数据帧的字符向量返回,这对于进一步的后处理很有用。还有一面旗帜使用_颜色用彩色而不是管道打印术语;它在终端或RStudio中看起来很棒,但在编织到HTML时无法正确显示。

TF-IDF公司

我们可以使用一种称为术语频率反向文档频率(TF-IDF)的技术来确定文本字段集合中最重要的单词。为了在R中实现这一点,我们将使用ctgov_tfidf公司功能:

z(z)<-ctrialsgov公司::ctgov查询()
词频-逆向文件频率<- ctgov_tfidf公司(z)$描述)
打印(tfidf,n个= 30)
###A桥:3074×2##单据条款##<int><chr>##10主动脉|高度| aki |提供|腹部##21污染|毫秒|空气|病毒|法国##3 2 fmt |多样性|微生物群|体重|肠道##4 3条神经|路标|骨骼|指导|膝盖##5 4抗组胺药| h1 |不足|自发|痛苦##6 5绷带|浆膜瘤|引流|分类|变量##7 6迷走神经|地中海|神经|饮食|抑郁症##8 7名退伍军人|同龄人|完整|步骤|结构化##9 8自杀|构思|远程健康|参与|咨询##10 9 bct | ce |乳腺|结构|癌症##11 10名运动员|路径|运动|生物标志物|剧烈运动##12 11乙酰水杨酸|血管|动脉|影响|酸##13 12 m健康|90 |监测|器官|影响##14 13级联|糖|葡萄糖|传感器|医生##15 14变种|b1351|cov2|sars|b16172##16 15个场景|不确定性|肿瘤学|相关|真实##17 16瘙痒|表观遗传|机制|慢性|拮抗剂##18 17 9vhpv | 1526 | hiv |存活|未感染##19 18登革热|发热|渗透性|五种|血管性##2019流感|重症监护室|曲霉病| eortc |病原体##21 20大麻酚| cbg | thc |食欲|刺激##22 21抗生素|决定|如何|父母|处方##23 22咨询|教育|行为|行为|他的##24 23宫内|粘连松解|叶子|薄膜|命名##25 24台净化器|心肺|指标|学生|空气##26 25多奈佩齐|法语|阿尔茨海默|效率|权威##27 26阿维鲁单抗|检查点|乳房|免疫|阿司匹林##28 27 dbs | ps |期望| pd |术前##29 28 brentuximab|vedotin|classic|nivolumab|检查点##30 29 wl |卡路里| aas | ba | crc###…还有3044行

默认使用小写形式的术语,但(尤其是缩写词)最好保留术语的大写形式。在这个例子中,我们可以这样做:

词频-逆向文件频率<- ctgov_tfidf公司(z)$描述,托洛尔= 错误的)
打印(tfidf,n个= 30)
###A桥:3074×2##文档术语##<int><chr>##1 0高度| AKI |提供|腹部|系统##2 1污染| MS |空气|病毒|法国##3 2 FMT |多样性|微生物群|体重|肠道##4 3条神经|路标|骨骼|指导|膝盖##5 4 H1 |不充分|自发|痛苦|比较##65个血清瘤|引流|分类|变量|回归##7 6地中海|迷走神经|神经|饮食|抑郁##8 7整体|退伍军人|套装|健康|心理##9 8自杀|意念|远程医疗|参与|咨询##10 9 BCT | CE |乳腺|结构|癌症##11 10名运动员|路径|运动|生物标志物|剧烈运动##12 11乙酰水杨酸|酸|血管|动脉|影响##13 12 m健康|90 |监测|器官|影响##14 13糖|葡萄糖|传感器|医生|静脉##15 14变种|冠状病毒2型|非典型肺炎|β|疫苗##16 15个场景|不确定性|肿瘤学|相关|真实##17 16瘙痒|表观遗传|机制|慢性|类似##18 17 9vHPV | 1526 | HIV |活的|未感染##19 18登革热|发热|渗透性|五种|血管性##20 19流感| ICU | EORTC |曲霉病|病原体##21 20 THC |食欲|刺激|主观|镇痛##22 21抗生素|决定|如何|处方|肺炎##23 22咨询|教育|行为|他的行为##24 23宫内|薄膜|命名|粘连|屏障##25 24台净化器|心肺|空气|学生|指标##26 25法语|阿尔茨海默症|效率|争议|报销##27 26检查点|免疫|乳房|免疫|阿司匹林##28 27 DBS | PS |期望| PD |术前##29 28 vedotin|brentuximab|nivolumab|classic|检查点##30 29 WL |卡路里| AAs | BA | CRC###…还有3044行

我们还可以通过包含更少的稀有项来改进结果。争论最小(_D)指定必须包含术语才能作为关键字返回的文档的最小比例;上限也可以用参数指定最大df.

词频-逆向文件频率<- ctgov_tfidf公司(z)$描述,最小(_D)= 0.02,最大df= 0.2)
打印(tfidf,n个= 30)
###A可移植:3072×2##文档术语##<int><chr>##10人受伤|支持|心血管|表现|可行性##2 1影响|护理|健康|风险|更好##3 2体重|减重|身体| 10 |最少##4 3但是|这些|比较|两个|哪个##54名成人|耐受性|慢性|安慰剂|参与者##6 5个结果|多项|分析|评估|执行##76抑郁症|功能|评估|疗效##8 7支持|健康|级别|护理|初级##9 8改善|支持|高|干预|护理##10 9乳房|外|正在执行|如果##11 10项运动|事件|相关|比较|炎症##12 11条件|心脏|信息|血液|何时##13 12个影响|天|目标|结果|次要##14 13级|糖尿病|血液|级别|设备##15 14疫苗|新颖|包括|标签|开放##16 15关于|新|研究|免费|福利##17 16慢性|检查|测试|紊乱|同时##18 17种疫苗|女性|在这些剂量中|##19 18例死亡|治疗|综合征|试点|评估##20 19肺|发病率|观察|多|识别##21 20单独|组合|评估|效果##22 21儿童的频率##23 22种疾病|慢性|跟随|改变##24 23个新目标|受控|随机|疗效##25 24探索|目标|变化|功能|健康##26 25非疾病认知方法##27 26乳腺|免疫|约|称为癌症##28 27术后|改善|结果|大脑|特异性##29 28个接受治疗的细胞|可能|癌症|能力##30 29预防|干预|体重| its |否###…还有3042行

可以将任意数量的文本字段传递给ctgov标记功能;特定试验的所有字段都被粘贴在一起,并被视为一个文本块。

文档相似性

最后,该包还提供了一个基于研究的文本字段生成相似性分数的功能。在这里,我们将根据干预性、工业赞助、第2阶段试验的描述字段生成相似矩阵。

z(z)<- ctgov查询(
  study_type(研究_类型)= “干预性”,赞助商类型= “行业”,相位= “第2阶段”
)
分数<- ctgov文本相似性(z)$描述,最小(_D)= 0,最大df= 0.1)
昏暗的(分数)
## [1] 147 147

返回值是一个方形矩阵,其中每组临床试验有一行和一列。我们可以使用这些分数来查找在描述中使用的单词中彼此特别接近的研究。例如,我们可以看到五项研究在描述中使用了类似的术语:

指数<- 秩序(得分[,100],减少= 真的)[1:5]
z(z)$简要标题[索引]
##[1]“AL-38583过敏性结膜炎相关炎症眼科溶液”##[2]“BRM421治疗干眼症的安全性和疗效”##[3]“脂蛋白a升高受试者的磷酰胆碱PC-mAb效应”##[4]“增加剂量gpASIT+TM的安全性、临床耐受性和免疫原性”##[5]“CartiLife在美国的第2阶段临床试验”

进一步的后处理可以通过相似性得分来完成,例如谱聚类和降维。