1. Tagme工具的介绍
TagMe目前是科学界最好的实体链接工具之一,具有非常好的性能,特别是在注释短文本时(即由几十个术语组成的那些)。
简单来讲这个工具主要解决一段文本当中的概念标注问题,任意一段文本当中需要提取相关的概念来对整段文本进行分析,因此筛选出来的概念既要满足“可查询”还要满足“无二义性”,可查询在这里本文要保证概念可以在维基百科当中找到对应的页面,例如概念“Artificial neural network”其实就是概念“Neural Network”更正式的定义,也就是概念“Neural Network”在维基百科当中没有其页面,但是“Artificial neural network”有,因此当文章当中出现概念“Neural Network”时我们要想办法把它转化成“Artificial neural network”使之能够查询和计算。再者就是无二义性,例如概念“Apple”包含的含义有很多,其中就有指代“水果苹果”或者“苹果公司”,要想知道其真正含义要结合其上下文,如果指代苹果公司,那么应该把该概念转化成“Apple Inc.”,该概念就可以明确表达苹果公司的含义。
2. 安装过程
使用该工具有多种多样的方式,在本文我们选择Python语言来调用对应的API进行,还有一种方法是直接通过Http请求来访问获取到json数据的格式,但是个人感觉不太方便。
既然使用Python,那就说明该工具有对应的第三方的包可以下载,我在这里使用Pychram来进行安装,包名“tagme”,细节就不多介绍了。安装完后还不能用,因为还要有个号,对,没错,你还要去注册一个账号使其拥有一个叫“Authorization Token”的序列号,当然注册是免费的。
注册的话就去这里(https://services.d4science.org/group/tagme),注册完毕后进入你的主页,即你的Tagme Home(如果找不到就去这个页面:https://sobigdata.d4science.org/home 登陆后选择Applications中的TagMe,在网页左下角会显示personal token的信息),类似于下面的页面
在左下角会看到你的“Your Token”,把它复制出来就可以了,具体使用见后面。
3. 使用过程
def entity_get(tweet):
s = requests.session()
# #这里的gcube-token,需要注册才有,也就是上面的标注的“Authorization Token”
url = 'https://tagme.d4science.org/tagme/tag?lang=en&gcube-token=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx-xxxxxxxxx&text='+tweet
headers = {
"Accept": "*/*",
"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8",
"Accept-Encoding": "gzip,deflate,br",
# "User-Agent":"python-requests/2.22.0",
"Accept-Language": "zh-CN,zh;q=0.8",
"Connection": "keep-alive",
# "Cookie":"############################"
}
cookie = {
'JSESSIONID': '##########################'
}
# entity_list = []
count = 0
text = tweet
params = {'text': text, 'rho': '50'}
r = s.post(url, data=params, headers=headers, cookies=cookie)
dict_text = r.json()
# print(dict_text)
sub_entity = []
for anno in dict_text['annotations']:
# print(anno['title'])
if 'title' in anno:
sub_entity.append(anno['title'])
return sub_entity
可以看见你的“Authorization Token”就放在上面代码的第3行引号内即可