在构建一些行业或者事物的模型的时候,需要预先设计好相关的字段或属性,举个例子,比如搭建飞机机型的数据库模型时,它可能有的字段有“重量”、“长度”、“机翼长度”、“动力模式”等等,不过在设定这些字段时,一般需要对该行业或者这类事物有一定的了解,所以后面就在构思一种可以通用的、比较快能查询一个行业的常见属性的方法,后面发现使用一些百科信息的属性来构建这样一个项目是可行,实施之后也能达到不错的效果,下面就分享一下实现步骤。

思路

1、收集一定数量的该行业/类目的根词,一般15-20个根词获得的属性有较好的通用性
以下为一些示例:
(1)、水果类目:苹果、梨子、西瓜、榴莲、葡萄、香蕉....
(2)、大学类目:清华大学、北京大学、复旦大学、浙江大学、中山大学...
(3)、恐龙类目:霸王龙、翼龙、剑龙、三角龙、异齿龙、迅猛龙...
2、然后根据整理好的行业根词,在百度百科中都查询一遍,并收集整理每个百科页面的属性,这里仅保存属性名,不保存属性值,输出一个属性名的list。 属性示例
3、将所有的属性名合并到一个list当中,然后按照出现次数从大到小排序,这样就可以得到一个比较普遍的属性列表了。

操作

1、获取单个根词的属性
编写一个百度百科的爬虫函数,传入参数为关键词,输出该百科的属性名列表,可以多加一个参数用于限制结果,因为有些百度是重名但是意思不同的。

import requests
from lxml import etree

def getBaikeAttrs(keyword,limit=[]):
    #...
    return attr_list

输出结果类似下方

2、合并一系列根词的属性,并按照出现次数排序
编写一个查询一系列根词的函数,然后将获取的所有属性合并,接着使用python的内置函数Counter计算各类属性的出现次数,然后根据出现次数排序,接着将属性与出现频率组合为一个dict返回。

#获取一系列根词的属性
def getTypeAttrs(keywords,limit=[]):
    all_attrs=[]
    for keyword in keywords:
        try:
            attrs=getBaikeAttrs(keyword,limit)
            all_attrs+=attrs
        except:
            pass

    return all_attrs


#按照出现频次排序返回
def sortTypeAttrs(keywords,limit=[]):
    all_attrs=getTypeAttrs(keywords,limit)
    all_attrs_count=Counter(all_attrs)
    all_attrs_sorted=sorted(all_attrs_count.items(),key=lambda x:x[1],reverse=True)
    all_attrs
    return all_attrs_sorted

输出的效果类似下方,这样我们就可以挑选一些频次较高的类目作为模型的字段/属性了

常见事物属性整理

下面整理一些常见事物的属性

恐龙类目属性

属性 属性 属性 属性
拉丁学名
亚目 亚门
亚纲 中文名
别名 中文学名 分布区域 二名法
拉丁名 分类位置 模式种 时代
命名人 亚科 - -

大学类目属性

属性 属性 属性 属性
中文名 外文名 简称 创办时间
办学性质 学校类别 学校特色 主管部门
现任领导 专职院士数 本科专业 硕士点
博士点 博士后 院系设置 校庆日
地址 院校代码 主要奖项 国家重点学科
知名校友 校训 校歌 创办人
占地面积 - - -

中国朝代属性

属性 属性 属性 属性
中文名 外文名 主要城市 货币
主要民族 时间范围 人口数量 别名
都城 语种 开创者 帝王
国土面积 首都 政治体制 国家领袖
官方语言 所属时期 主要宗教 选官制度
所属洲 历史贡献 著名人物 时间
朝代 政治制度 军事制度 中枢机构
监察机构 - - -

其他

了解事物属性、行业属性对于构建行业模型、挖掘行业需求都有一定的作用。比如需要构建一个行业网站,那么使用常见的属性作为模型字段,在后续的功能设计上都能产生作用,最简单的就是可以用于字段筛选,也是最直观的作用。

评论

  • 最新随笔

  • (°ー°〃) (°ー°〃) 看你睡得那么香就不赶你了,整个抬走,换把椅子ㄟ(▔ ,▔)ㄏ
  • 还有这个移动端之前的随笔显示效果图片做对比,现在这样就更方便阅读一些
  • 找了点时间,重新调整了一下随笔的页面,这样看就顺眼多了,附上一张以前的随笔页图片。
  • 对于自己暂时没有能力改变的事情,屏蔽相关信息是保持平常心的方法之一,毕竟人的精力和注意力是有限的,投入眼前的事情反倒能在这个浮躁的世界收获一些自己的东西。专注脚下,偶尔抬头。
  • 这个随笔的页面找时间得改一改,阅读体验不太好......
  • 对于一些娱乐片段或者碎片化阅读的记忆,别穷思竭虑般地唤起回忆,想变得清晰,不能马上想起就放弃。毕竟在信息时代每天接受的信息量级巨大,若想大脑都填满这些碎片化的信息也是天方夜谭,而且在无法想起时也不建议有苦恼的情绪(如:我是不是有健忘症?是不是越来越严重了?之类的),因为频繁给自己这类心理暗示真的很有可能会往相关趋势发展。另外对于一些系统性学习的知识也建议保持类似的态度,因为除了一些频繁使用的知识,人脑真的记忆不过来那么多东西,在想不起时依靠记忆中相关的知识索引在世界中找到对应的内容即可。
  • 发现一个有趣现象,看了看发的文章,我用“我们”比用“我”更频繁,这是为啥。(随便一提,这是2022年第一条随笔,(笑哭))
  • 对我来说,写东西很好的一点是,自己写的东西,后面基本都会再看,一遍或者很多遍。这样就可以很好地发现自己之前的漏洞,并看看现在有什么变化。