wolfram-mathematica - 谁能分享一个使用 Mathematica 和 Google Scholar 提取学术研究信息的简单例子

标签 wolfram-mathematica google-scholar

如何使用 Mathematica 和 Google Scholar 查找某人在 2011 年发表的论文数量?

最佳答案

Google Scholar 不太适合这个目标,因为它没有正式的 API AFAIK。它还不提供结构化(例如 XML)格式的结果。因此,我们必须求助于一种快速(而且非常非常脆弱!)的文本模式匹配技巧,例如:

 searchGoogleScholarAuthor[author_String] := 
 First[StringCases[
   Import["http://scholar.google.com/scholar?start=0&num=1&q=" <> 
     StringDrop[
      StringJoin @@ ("author:" <> # <> "+" & /@ 
         StringSplit[author]), -1] <> "&hl=en&as_sdt=1,5"], ___ ~~ 
     "Results" ~~ ___ ~~ "of about" ~~ Shortest[___] ~~ 
     p : Longest[(DigitCharacter | ",") ..] ~~ ___ ~~ "." ~~ ___ ~~ 
     "(" ~~ ___ :> p]]

In[191]:= searchGoogleScholarAuthor["A Einstein"]

Out[191]= "6,400"

In[190]:= searchGoogleScholarAuthor["Einstein"]

Out[190]= "9,400"

In[192]:= searchGoogleScholarAuthor["Wizard"]

Out[192]= "197"

In[193]:= searchGoogleScholarAuthor["Vries"]

Out[193]= "70,700"

添加ToExpression如果您不喜欢字符串结果。如果你想限制出版年份可以添加&as_ylo=2011&as_yhi=2011&到搜索字符串并更改开始和结束年份 适本地。

请注意,具有流行名字的作者会产生大量虚假点击,因为无法唯一地识别单个作者。此外,Scholar 还返回各种热门内容,包括引文、书籍、重印等。所以,实际上,这对于计数来说并不是很有用。

一些解释:

Scholar 将作者和合著者的姓名首字母和姓名拆分为多个 author:字段与 + 组合。 StringDrop[StringJoin @@ ("author:" <> # <> "+" & /@ StringSplit[author]), -1]部分代码负责处理这个问题。 StringDrop删除最后一个 +

Stringcases部分包含一个大文本模式,它基本上搜索 Scholar 放置在每个结果页面顶部的文本,并包含点击数。然后该号码被隔离并返回。

关于wolfram-mathematica - 谁能分享一个使用 Mathematica 和 Google Scholar 提取学术研究信息的简单例子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6109520/

相关文章:

Java SystemClipboard 包含额外的字节

math - 椭圆的标准形式

wolfram-mathematica - Mathematica 演示模式

python - 如何使用 R 或 Python 通过 Google Scholar 查询下载学术论文的 PDF

Python:如何访问生成器对象中的元素并将它们放入 Pandas 数据框或字典中?

matlab - 谷歌学术与 Matlab

internal-server-error - 谷歌服务器在隐私浏览模式下的第一个请求给出服务器错误

xml - 从 Mathematica 生成 Excel 兼容的 XML 文件

python - 使用 tor 和 python 抓取谷歌学术搜索

wolfram-mathematica - 为什么当我访问我的链表时 Mathematica 内核会崩溃?