如何解决有人可以分享使用Mathematica和Google学者提取学术研究信息的简单示例
| 如何使用Mathematica和Google学术搜索来查找一个人在2011年发表的论文数量?解决方法
Google学术搜索没有正式的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\"
如果您不喜欢字符串结果,请加1。如果要限制发布年份,可以在搜索字符串中添加“ 2”并更改开始和结束年份
适当地。
请注意,使用流行名称的作者会产生很多虚假的点击,因为无法唯一标识单个作者。此外,Scholar还返回了多种热门内容,包括引文,书籍,再版等。因此,实际上,这对计数不是很有用。
一点解释:
Scholar将作者和合著者的姓名缩写和名字分成几个author:
字段,并加上+。代码的“ 4”部分负责解决这一问题。 StringDrop
删除最后一个+
。
“ 7”部分包含一个大文本模式,该模式主要搜索Scholar放置在每个结果页面顶部的文本,并包含命中数。然后隔离此编号并返回。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。