薿薿爱 2022-05-05 01:30 采纳率: 0%
浏览 671
已结题

bibliometrix的有偿提问(问题第三次修改,并附上了报错代码,请指导)

用的bibliometrix包做文献计量学研究,目前的问题是:1.做共词分析的时候固定的词组都被分割成独立的单词(如life satisfaction这个词组被分割成了life 和satisfaction两个),请问该如何解决?2.如何合并(如单复数)、删除(无意义的单词)术语词?有偿提问,恳请各位的帮助,谢谢!
问题已解决

  • 写回答

13条回答 默认 最新

  • 歇歇 2022-05-10 12:43
    关注

    将原始矩阵中的列重命名

    评论
  • 吕布辕门 后端领域新星创作者 2022-05-11 01:06
    关注

    ibliometrix 包主要支持4种数据库:SCOPUS, Web of Science,Cochrane Database of Systematic Reviews(CDSR) 和RISmed PubMed/MedLine。
    功能:
    Bibliometrix能够转换上述4种数据库下载数据的格式,使其能够在R环境中被运用。Bibliometrix包括2大系列功能,基本包括了文献计量学所涉及的分析技术:1)文献计量学基础分析和分析指标的提取;2)文献相关的概念、知识和社会结构的挖掘

    评论
  • 废品回收工 2022-05-12 01:32
    关注

    R语言可惜语法太难

    评论
  • 星空 | 永恒 2022-05-12 02:54
    关注

    非常建议使用自然语言处理

    评论
  • 不会长胖的斜杠 后端领域新星创作者 2022-05-05 09:58
    关注

    不行的话可以考虑深度学习方法,用自然语言处理来解决

    评论
  • _PowerShell 网络安全领域优质创作者 2022-05-07 02:13
    关注

    之前好像学过R,但学的比较简单。这个的话还真不能直接回答你的问题,离R距离有点远了,哈哈哈哈哈哈
    但是你可你看看网上相关的教程肯定能解决的。类似于https://zhuanlan.zhihu.com/p/369572069

    评论
  • 吴维炜 前端领域优质创作者 2022-05-07 03:45
    关注
    评论
  • 仰望星空的代码 博客专家认证 2022-05-09 01:25
    关注

    synonyms = synonyms,值换成具体数试试。

    评论
  • Qt历险记 嵌入式领域新星创作者 2022-05-05 04:55
    关注
    评论
  • hyh123a 全栈领域新星创作者 2022-05-05 07:24
    关注
    评论
  • 鑫鑫缺点金 2022-05-06 05:26
    关注

    菜鸟教程啥都有

    评论
  • 太空眼睛 Java领域新星创作者 2022-05-07 16:05
    关注

    一、数据导入与处理

    pacman::p_load(bibliometrix, tidyverse, pluralize, do) 
    D <- "E:/精鼎统计/savedrecs.txt "
    M <- convert2df(D, dbsource = 'wos', format = 'plaintext')
    M$DEID <- merge_field(M$DE,M$ID)#合并DE和ID,系列27内容封装成函数,具有简单清洗功能,如去重,复数变单数
    m <- M[-which(is.na(M$DEID)),]#去除DEID为空值的行,并赋值给新数据m
    

    二、自定义函数构建
    由于我们需要逐步合并,需要多次运行相同的代码。如果一段代码需要重复运行三次及以上,那么我们就可以考虑封装这段代码,使其成为一个函数。
    (一)合并函数Synonyms_merge

    Synonyms_merge <- function(Terms, synonyms, sep = ';'){
     listTERMS = strsplit(Terms,split= sep)
     synonyms = toupper(synonyms)
     listTERMS = lapply(listTERMS,function(l){
     s = strsplit(synonyms,split=";")
     for (i in 1:length(synonyms)){
     ind = which(l %in% trim(s[[i]]))
     if (length(ind)>0){l[ind] = trim(s[[i]][1])}
     }
     return(l)
     })
     TM = unlist(lapply(listTERMS,function(l){
     l = paste0(l,collapse=";")
     }))
     return(TM)
    }
    

    Terms:关键词向量
    synonyms: 同/近义词向量,大小写均可
    sep: 关键词和同/近义词分隔符

    (二)关键词词组转为多个关键词函数Phrases2keywords

    Phrases2keywords <- function(Terms, phrases2keywords, sep = ';'){
     listTERMS = strsplit(Terms,split= sep)
     phrases2keywords = toupper(phrases2keywords)
     listTERMS = lapply(listTERMS,function(l){
     l = Replace(l,pattern = phrases2keywords)
     l = unique(l)
     return(l)
     })
     TM = unlist(lapply(listTERMS,function(l){
     l = paste0(l,collapse=";")
     }))
     return(TM)
    }
    

    Terms:关键词向量
    phrases2keywords:词组转为多个关键词向量,大小写均可
    sep: 关键词分隔符

    三、特殊的同/近义词合并

    所谓特殊的同/近义词即其带有特殊的字符,比如“AND”、“&”、“/”,或者是带有数字等。不同的专业特殊字符可能不一样,这些字符在专业内是有意义的,在清洗当中不能去除。接下来专门针对这些关键词进行处理。

    m$DEID <- gsub("[^[:alnum:][:blank:]\\/\\;\\&]", "", m$DEID) #除字母数字空格/“;”&”外,去除其他所有字符
    

    除分隔符“;”一定也要保留外,其他符号是否需要保留,根据专业或需要确定。一般“AND”或“&”可以保留。因为,带有“AND”或“&”符号的关键词词组可能是多个关键词的组合,需要分开。接下来探索将带有“AND”的关键词分开。

    DEID[grep(' AND ',DEID$Tab),]#查看带有“AND”的词组 
    # Tab Freq
    # 397 O AND H ISOTOPE 2
    # 441 STABLE HYDROGEN AND OXYGEN ISOTOPE 2
    # 495 18O 2H AND 3H 1
    # 686 DELTA D AND DELTA O 18 1
    # 692 DEUTERIUM AND OXYGEN ISOTOPE 1
    # 766 EVENT AND PRE EVENT WATER 1
    # 851 GROUNDWATER AND SURFACE 1
    # 895 HYDROGEN AND OXYGEN 1
    # 937 INFILTRATION AND INFLOW 1
    # 956 ISOTOPIC AND GEOCHEMICAL TRACER 1
    # 959 ISOTOPIC EXCHANGE BETWEEN LIQUID AND ICE 1
    # 1009 LOW TECH AND LOW COST 1
    # 1282 SNOW AND ICE MELT 1
    # 1291 SNOWMELT AND GLACIER MELT DYNAMIC 1
    # 1335 STABLE AND RADIOACTIVE ISOTOPE 1
    # 1341 STABLE OXYGEN AND HYDROGEN ISOTOPE 1
    # 1405 TEMPORAL AND SPATIAL VARIATION 1
    # 1498 WATER ISOTOPES AND ELECTRICAL CONDUCTIVITY 1
    

    我们发现“STABLE HYDROGEN AND OXYGEN ISOTOPE”、“O AND H ISOTOPE”、“DELTA D AND DELTAO 18”、“DEUTERIUM AND OXYGEN ISOTOPE”、“STABLE OXYGEN AND HYDROGEN ISOTOPE”词组代表了相同的意思,均是由“DEUTERIUM”和“OXYGEN STABLEISOTOPE”关键词及其同/近义词组成的。因此,我们先要将这些词合并,然后再将其分开成这2个关键词。

    synonyms_and <- 'STABLE HYDROGEN AND OXYGEN ISOTOPE;O AND H ISOTOPE;DELTA D AND DELTA O 18;DEUTERIUM AND OXYGEN ISOTOPE;STABLE OXYGEN AND HYDROGEN ISOTOPE'#需要合并的关键词向量
    m$DEID <- Synonyms_merge(Terms = m$DEID, synonyms = synonyms_and) #所有的关键词统一转化为第一个“;”之前的关键词,即“STABLE HYDROGEN AND OXYGEN ISOTOPE”
    

    然后将带有“AND”的关键词词组分开成多个关键词。

    phrase2words <- c('STABLE HYDROGEN AND OXYGEN ISOTOPE:DEUTERIUM;OXYGEN STABLE ISOTOPE',
     '18O 2H AND 3H:OXYGEN STABLE ISOTOPE;DEUTERIUM;TRITIUM',
     'EVENT AND PRE EVENT WATER:ENENT WATER;PRE EVENT WATER',
     'GROUNDWATER AND SURFACE:GROUNDWATER;SURFACE-WATER',
     'ISOTOPIC AND GEOCHEMICAL TRACER:ISOTOPIC TRACER;GEOCHEMICAL TRACER',
     'LOW TECH AND LOW COST:LOW TECH;LOW COST',
     'SNOW AND ICE MELT:SNOWMELT;ICE MELT',
     'SNOWMELT AND GLACIER MELT DYNAMIC:SNOWMELT;GLACIER MELT',
     'STABLE AND RADIOACTIVE ISOTOPE:STABLE ISOTOPE;RADIOACTIVE ISOTOPE',
     'TEMPORAL AND SPATIAL VARIATION:TEMPORAL VARIATION;SPATIAL VARIATION',
     'WATER ISOTOPES AND ELECTRICAL CONDUCTIVITY:WATER ISOTOPES;ELECTRICAL CONDUCTIVITY'
     ) #构建词组转多个关键词向量
    
    m$DEID <- Phrases2keywords(Terms = m$DEID, phrases2keywords = phrase2words)#“:”前面的关键词转为“:”后面的关键词,即“STABLE HYDROGEN AND OXYGEN ISOTOPE”转变为“DEUTERIUM;OXYGEN STABLE ISOTOPE”。
    

    至此,我们完成了带有“AND”特殊关键词的处理与合并。在此,我们再进一步探索带有数字的特殊关键词的处理。做此类关键词处理时,我们先看数字是否具有特殊意义,有意义的需要根据专业背景知识进行转换,没有意义的或不是专业内主要的或词频较低的关键词均可暂时保留,之后再统一处理。

    DEID[grep('\\d',DEID$Tab),]#查看带有数字的关键词
    # Tab Freq
    # 23 O 18 32
    # 25 OXYGEN 18 30
    # 53 DELTA O 18 14
    # 130 2 COMPONENT 6
    # 136 HYDROGEN 2 6
    # 178 3 COMPONENT 4
    # 186 DELTA H 2 4
    # 321 CARBON 13 2
    # 356 GLACIER NO 1 2
    # 492 1/F 1
    # 493 18O 1
    # 494 2 AGRICULTURAL HILLSLOPE 1
    # 495 2 FORESTED 1
    # 496 3 COMPONENT TRACER MODEL 1
    # 606 CARBON 14 1
    # 648 CO2 OUTGASSING 1
    # 684 DELTA18O 1
    # 888 HYDROGEN 3 1
    # 1090 NO 1 1
    # 1106 O 18 ISOTOPE 1
    # 1119 OXYGEN 18 COMPOSITION 1
    # 1127 PART 2 1
    # 1218 RN 222 1
    # 1247 SEAWATER SR 87/SR 86 1
    # 1258 SF6 1
    # 1327 SR 87/SR 86 RATIO 1
    # 1376 SURFACE PARAMETERIZATION SIB2 1
    

    带有数字的关键词多数是我们需要的,我们据此构建一个带数字的关键词转换向量。

    # Synonyms_number <- c("OXYGEN STABLE ISOTOPE;O 18;OXYGEN 18;DELTA O 18;18O;DELTA18O;O 18 ISOTOPE;OXYGEN 18 COMPOSITION",
    # "TWO COMPONET;2 COMPONENT", 
    # "DEUTERIUM;HYDROGEN 2;DELTA H 2", 
    # "THREE COMPONENT;3 COMPONENT;3 COMPONENT TRACER MODEL", 
    # "CARBON STABLE ISOTOPE;CARBON 13", 
    # "CARBON FOURTEEN;CARBON 14", 
    # "TRITIUM;HYDROGEN 3", 
    # "RADON ISOTOPE;RN 222", 
    # "SR ISOTOPE;SEAWATER SR 87/SR 86;SR 87/SR 86 RATIO")#数字关键词转换向量
    # 
    # m$DEID <- Synonyms_merge(Terms = m$DEID,synonyms = Synonyms_number)#所有数字关键词均转换为第一个关键词
    

    如有帮助,请采纳,十分感谢!

    展开全部

    评论
    1人已打赏
  • 木希.MX 2022-05-10 03:52
    关注

    https://wenku.baidu.com/view/038e59296f85ec3a87c24028915f804d2b1687b5.html
    文献计量分析中CiteSpace,VOSviewer是很好的工具。

    Bibliometrix是可以在R中实现文献计量分析,以下是简要的个人实操笔记:

    CNKI
    1 在CNKI上导出所选文献的Refworks格式文件,重命名为download_*.txt,同时下载所选文献的CNKI-.xls,
    2 用citespace将所下载的download_*.txt,转换格式为download_*convert.txt,即WOS导出的plain text,
    3 将download
    *_convert.txt作为WOS 中的plain text格式,导入biblioshiny中,中文会出现空格或无显示,
    4 在biblioshiny中将这个内容不完整的文件导出为Bibliometrix-Export-File-.xls,
    5 把导出的xls中字段与从CNKI上下载的xls字段进行匹配,补充Bibliometrix-Export-File-.xls无中文的内容,
    6 补充完整的Bibliometrix-Export-File-.xls,作为bibliometrix格式文件,导入biblioshiny分析。

    WOS
    因WOS现在无法导出keywords,所以分析时选择Abstract。
    ---------------上图文献-----

    评论
编辑
预览

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 5月12日
  • 修改了问题 5月12日
  • 修改了问题 5月10日
  • 修改了问题 5月10日
  • 展开全部

悬赏问题

  • ¥15 设计一个光控计数器,全部用ttl芯片
  • ¥15 vscode platformio
  • ¥15 代写uni代码,app唤醒
  • ¥15 全志t113i启动qt应用程序提示internal error
  • ¥15 ensp可以看看嘛.
  • ¥80 51单片机C语言代码解决单片机为AT89C52是清翔单片机
  • ¥60 优博讯DT50高通安卓11系统刷完机自动进去fastboot模式
  • ¥15 minist数字识别
  • ¥15 在安装gym库的pygame时遇到问题,不知道如何解决
  • ¥20 uniapp中的webview 使用的是本地的vue页面,在模拟器上显示无法打开
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部