Coder Social home page Coder Social logo

entity_linking's Introduction

实体链接demo

简介

实体链接的demo,暂时支持百度百科的排序。

使用腾讯开源的800万词向量。使用lmdb_embeddings在线对文档进行embedding。

基于wmd距离的baseline方法

基本模块

1实体召回:

3种召回模式。一是召回百科词条/百科多义项/百科搜索的相关词条;二是直接用实体名进行召回,可以根据ES分数进行topN召回;三是根据映射字典对key采用精确匹配或模糊匹配进行召回,映射字典主要是通过规则得到的简称-全称字典。

2文档特征提取:

使用腾讯开源的800万词向量和fastext字向量对词进行embedding。细节:可以载入部分词典辅助jieba分词,这样分词更加准确。词向量读取使用lmdb-embeddings包。 对比:

#sentence='本期看点:杜淳倾情演绎泥石流版傻白甜,一心寻找武功秘籍不问世事,吃瓜群众表示很喜欢这个“追风少年”。大潘带上时尚假发,回>归学生时代猛追靓妹,却遭马苏连连补刀“太丑”。沙溢藏钱都不能走寻常路,程野表演直把自己逗笑场。更多花絮全搜罗,《喜剧艺能榜》与你一起分享。'
#不导入腾讯字典
['本期', '看点', '杜淳', '倾情', '演绎', '泥石流', '版', '傻', '白甜', '一心', '寻找', '武功', '秘籍', '问世', '事', '吃瓜', '群众', '表示', '喜欢', '“', '追风', '少年', '”', '大潘', '带上', '时尚', '假发', '回归', '学生', '时代', '猛追', '靓妹', '遭', '马苏', '连连', '补刀', '“', '太丑', '”', '沙溢藏', '钱', '不能', '走', '寻常路', '程野', '表演', '直', '逗笑', '场', '花絮', '全', '搜罗', '喜剧', '艺能', '榜', '一起', '分享']
#导入腾讯字典
['本期看点', '杜淳', '倾情演绎', '泥石流', '版', '傻白甜', '一心', '寻找', '武功秘籍', '不问世事', '吃瓜群众', '表示', '很喜欢', '“', '追风少年', '”', '大潘', '带上', '时尚假发', '回归', '学生时代', '猛追', '靓妹', '遭', '马苏', '连连', '补刀', '“', '太丑', '”', '沙溢', '藏钱', '都不能', '走', '寻常路', '程野', '表演', '直把', '逗笑', '场', '更多花絮', '全', '搜罗', '喜剧', '艺能', '榜', '与你一起', '分享']
#载入腾讯字典不仅分词更准确,并且还有这些明星们的词向量。

3实体排序

依据输入context和待排序实体的description来计算wmd距离。依赖pyemd包。

运行简单例子

使用前需先把lmdb词向量文件放入data目录下。文件在datanlp01下的/home/luyiming/entity_linking/lmdb_emb路径。

cd entity_rank
python wmd_baseline.py

例子

分值越低越好

context : 小米的用户忠诚度明显回升,但华为吸引力依旧是第一
mention : 小米
{
 "current_semantic": "",
 "tags": [
  "网站",
  "组织机构",
  "社会",
  "公司"
 ],
 "infobox": {
  "公司名称": "北京小米科技有限责任公司[7]",
  "外文名称": "MI",
  "总部地点": "北京市海淀区清河中街68号 华润五彩城写字楼[8]",
  "成立时间": "2010年3月",
  "经营范围": "电器,数码产品及软件",
  "公司类型": "有限责任公司",
  "公司口号": "探索黑科技,小米为发烧而生[9]",
  "年营业额": "1146亿元(2017年)[5]",
  "员工数": "约14000人(2017年)[10]",
  "董事长兼CEO": "雷军",
  "总裁": "林斌",
  "市值": "4309.64亿[11]",
  "股票代码": "01810[11]",
  "企业类型": "民营企业"
 },
 "description": "北京小米科技有限责任公司成立于2010年3月3日,是一家专注于智能硬件和电子产品研发的移动互联网公司,同时也是一家专注于高端智能手机、互联网电视以及智能家居生态链建设的创新型科技企业。为发烧而生”是小米的产品概念。小米公司创造了用互联网模式开发手机操作系统、发烧友参与开发改进的模式。小米还是继苹果、三星、华为之后第四家拥有手机芯片自研能力的科技公司。“让每个人都能享受科技的乐趣”是小米公司的愿景。小米公司应用了互联网开发模式开发产品的模式,用极客精神做产品,用互联网模式干掉中间环节,致力让全球每个人,都能享用来自**的优质科技产品。小米已经建成了全球最大消费类IoT物联网平台,连接超过1亿台智能设备,MIUI月活跃用户达到1.9亿。小米系投资的公司接近400家,覆盖智能硬件、生活消费用品、教育、游戏、社交网络、文化娱乐、医疗健康、汽车交通、金融等领域。2018年2月,Google 联合 WPP 和凯度华通明略发布的《2018 年**出海品牌 50 强报告》显示,小米在**出海品牌中排名第四,仅次于联想、华为和阿里巴巴。小米已进入74个国家,2017年底,在15个国家处于市场前5位。2018年第一季度,小米在印度的市场份额已超过30%,遥遥领先,成为第一名。2018年7月9日,正式登陆香港交易所主板。小米2018年出货量1.2亿台以上,占比8.7%,排名全球第四、**厂商第二,逆势上扬32.2%。",
 "related_entry": [
  "产品",
  "教育",
  "联想",
  "手机操作系统",
  "苹果",
  "游戏",
  "互联网电视",
  "智能硬件",
  "阿里巴巴",
  "MIUI",
  "生活消费",
  "智能家居",
  "娱乐",
  "社交网络",
  "小米科技有限责任公司",
  "文化",
  "物联网",
  "金融",
  "汽车",
  "三星",
  "发烧友",
  "华为",
  "创新",
  "Google",
  "小米公司",
  "医疗",
  "健康",
  "互联网",
  "交通"
 ]
}
score:0.5363
{
 "current_semantic": "禾本科狗尾草属一年生草本",
 "tags": [
  "生物物种"
 ],
 "infobox": {
  "中文名": "小米",
  "外文名": "Millet",
  "别称": "粟米",
  "主要原料": "谷子",
  "是否含防腐剂": "否",
  "主要营养成分": "蛋白质,脂肪,可溶性淀粉,胡萝卜素",
  "主要食用功效": "养胃,健脾",
  "适宜人群": "所有人群",
  "储藏方法": "阴凉干燥处",
  "界": "植物界",
  "门": "被子植物门 Angiospermae",
  "纲": "单子叶植物纲 Monocotyledoneae",
  "目": "禾本目 Graminales",
  "科": "禾本科 Gramineae",
  "属": "狗尾草属 Setaria",
  "种": "粱 Setaria italica"
 },
 "description": "小米,原名:粟,也称作粱、狗尾草、黄粟、粟米,拉丁文名:Setaria italica (L.) Beauv. var. germanica (Mill.) Schrad. 禾本科、狗尾草属一年生草本,须根粗大,秆粗壮,粟是谷子去皮后的结果,谷子是谷类植物,禾木本的一种,粟的营养价值很高,含丰富的蛋白质和脂肪和维生素,它不仅供食用,入药有清热、清渴,滋阴,补脾肾和肠胃,利小便、治水泻等功效,又可酿酒。其茎叶又是牲畜的优等饲料,它含粗蛋白质5-7%,超过一般牧草的含量1.5-2倍,而且纤维素少,质地较柔软,为骡、马所喜食;其谷糠又是猪、鸡的良好饲料。(文中图片均取自**植物图库)",
 "related_entry": [
  "狗尾草",
  "粟",
  "谷子",
  "禾本科"
 ]
}
score:0.5532
{
 "current_semantic": "电影《美食总动员》中角色",
 "tags": [
  "电影形象",
  "电影",
  "人物"
 ],
 "infobox": {
  "中文名": "小米",
  "外文名": "Remy",
  "角色性格": "执着、聪明",
  "出处": "《美食总动员》"
 },
 "description": "英文名称:Remy 中文名称:小米(大陆、**),味王(香港) 角色性格:执着、聪明 小米这只灰色的小老鼠是《料理鼠王》又名《美食总动员》的主角,他与众不同,一心想成为一个大厨,像他的偶像厨神那样,可是他的家人都不支持理解他,而他也会经历来自人类的各种困难。和小宽的偶遇让他有机会实现这个梦想…… 小米平时在老鼠部落中无法发挥他的才智,只能担当“毒性检测专家”,帮助鼠帮检测哪些垃圾是可以吃的,哪些是有毒的……而他想做的是做人类的大厨。 小米的爸爸是米爸,他还有一个哥哥叫大米",
 "related_entry": [
  "美食总动员",
  "料理鼠王"
 ]
}
score:0.5738

问题

1.使用jieba分词加载腾讯的字典作辅助词典时导入很慢。现在暂时注释掉了导入字典的那一行。见doc_fe/doc_process.py

2.使用代理ip进行百科页面爬取时速度较慢。现在暂时直接爬取html页面。若启用代理池,注释entity_recall/baike_recall.pyBaiduBaikeget_html方法即可。

entity_linking's People

Contributors

currylym avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

entity_linking's Issues

关于data文件夹

您好,我正在做实体链接的相关实践,请问方便发一下您的data文件夹吗?仅给出示例文件也可以,谢谢!

寻求帮助,缺少文件

大神,能否把你的缺失文件发一份给我,需要entity_recall/abbreviation_alignment.json,还有我想请教下你的data/wv_lmdb是用什么方法生成的。希望能够得到你的帮助,我的邮箱是[email protected],非常感谢。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.