通过NLP技术寻找公司竞品(智能投研)

本文介绍了一种基于BERT模型的文本embedding方法,用于企业服务房产领域的竞品搜索。通过对圆宿外包公寓的描述,计算并展示了与其业务相似度高的前150家竞品公司,包括新起点蓝领公寓、快易名商服务式办公室租赁及配套增值服务等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基于bert模型的文本embedding

【 竞品搜索展示 】

输入公司名:

specific_com = '圆宿外包公寓'

返回竞品结果列表:

com_name:'圆宿外包公寓' 
com_cat:企业服务 房产服务 
com_des:圆宿公寓是一家专业从事企业员工(蓝领)宿舍外包服务的公寓品牌,通过酒店或物业方合作获得目标公寓(轻资产模式),采用集中式物业管理形态,以企业员工酒店化住宿管理服务理念,为企业提供酒店式、连锁化、专业性的“一站式”员工住宿生活服务,并且围绕企业和企业员工的需求提供相关的增值服务。

竞品公司列表:(展示150个,输出的浮点数为竞品指数,降序)
[('新起点蓝领公寓 连锁型员工公寓运营商', 0.9593)
('快易名商 服务式办公室租赁及配套增值服务', 0.9497)
('恩家壹公寓 一家从事公寓管理标准化运营商', 0.9487)
('空间家 企业找家,就上空间家', 0.9472)
('快办公 办公选址服务平台', 0.9461)
('上海一圈团 一家大企员工专享服务平台', 0.9456)
('魔飞公寓 主要经营长租公寓的房产服务行业公司', 0.9452)
('青沐公寓 长租公寓品牌运营商', 0.9445)
('驻客网络 酒店公寓式服务的租房平台', 0.9444)
('鸿鹊科技 酒店行业综合服务', 0.9441)
('E+青年公寓 集中式长租公寓连锁运营商', 0.9431)
('荣尚荟 公寓管理有限公司', 0.9428)
('齐客商业 员工福利、商务馈赠、专属定制', 0.9427)
('蓝立方公寓 青年白领品牌公寓', 0.9423)
('海营之家 一家营业员招聘的服务类公司', 0.9419)
('V客青年公寓 为各类都市人群提供租住服务', 0.9416)
('白领聚乐部 白领人群提供免费礼物的微信平台', 0.9416)
('魔方公寓 都市白领的O2O服务式公寓连锁服务品牌', 0.9416)
('屋媚娘 为成长型企业提供办公室租赁解决方案的公司', 0.9409)
('考研公寓 服务式公寓运营商', 0.9404)
('屋托邦 会员管理营销服务CRM系统供应商', 0.9403)
('悠洗 服务于校园、蓝领工人的洗衣租赁共享平台', 0.9401)
('博派公寓 长租公寓运营商', 0.9401)
('吃和远方 解决中小规模企业员工福利文化需求的服务商', 0.94)
('维初管理 从事大学生兼职行业', 0.94)
('百住科技 为中高端商务人士打造私密,便捷,有品味的公寓住宿', 0.9398)
('微舍公寓 长租公寓品牌运营商', 0.9396)
('易纷享 办公设备租赁解决方案提供商', 0.9396)
('票师付 为集团企业客户提供文化类员工福利综合解决方案', 0.9396)
('红糖里 服务式青年公寓管理平台', 0.9395)
('大圣打工网 专注于蓝领招聘服务的初创公司', 0.9392)
('谷得汇 一家从事酒店管理的公司', 0.9388)
('房算盘 一家办公场所及写字楼租售平台', 0.9388)
('犇客公寓 犇客,让生活更精彩!', 0.9387)
('房利聚 专注出租屋管理软件系统和公寓管理系统研发', 0.9387)
('凤凰巢 企业员工数据管理服务商', 0.9385)
('团建来了 企业团建及出游服务提供商', 0.9382)
('共栈服务 校园专场招聘服务提供商', 0.9379)
('蚂蚁HR 专注于中小企业薪酬外包服务', 0.9379)
('汇杰 人力资源解决方案及咨询服务提供商', 0.9378)
('可遇青年公寓 长租公寓服务商', 0.9377)
('乐华建 一家企业服务公司', 0.9377)
('携程商旅 企业差旅管理公司', 0.9376)
('汇众嘉悦 专注为知名互联网公司提供招聘解决方案', 0.9375)
('后勤小秘书 企业后勤一站式服务平台', 0.9374)
('武汉斯波思 一家为离境打工度假者提供服务的互联网公司', 0.9372)
('公寓家 中小公寓代理运营商', 0.9371)
('海润亨元 一家商业服务公司', 0.9371)
('BOSS汇馆 为创业者创业、企业老板发展公司提供信息服务的公司', 0.9371)
('新派公寓 白领公寓服务提供商', 0.9371)
('好工到 专注于服务行业、蓝领工人的垂直招聘网站', 0.937)
('条码公寓 青年社区白领公寓运营商', 0.9369)
('华翰英腾 实习生招聘与相关服务', 0.9369)
('大佬招聘 专注于校园招聘的服务公司', 0.9369)
('优猎企业 从事高端人才寻访、招聘流程外包(RPO)的一流人力资源服务', 0.9368)
('优可为 企业管理咨询公司', 0.9368)
('Warm+ 为都市青年群体提供长租公寓服务的新兴移动互联网公寓运营商', 0.9364)
('祥卓文化 公寓式酒店管理服务提供商', 0.9364)
('乐窝公寓 公寓品牌运营商', 0.9363)
('未来公社 企业及高校职业培训服务提供商', 0.9362)
('蛋壳公寓 互联网长租公寓运营商', 0.9362)
('睿文宏欣 房地产行业高品质招聘服务的供应商', 0.9362)
('摩玛公寓 青年公寓运营商', 0.936)
('东方汇佳 一个人才服务机构', 0.9359)
('眷舍微型酒店 特色民宿运营商', 0.9359)
('果壳公寓 连锁青年公寓运营商', 0.9359)
('90优家 提供可定制的房屋租赁服务', 0.9357)
('五谷厨艺 饮食服务平台', 0.9357)
('领先未来 全国大型企业办公物资采购服务商', 0.9357)
('和谐大观 为本地餐饮服务业商家提供基于SaaS的创新型综合服务平台', 0.9356)
('库房无忧 工业地产租赁运营服务商', 0.9355)
('桃李街 提供校园服务的企业', 0.9355)
('奥廷高端团建 高端互联网团建公司', 0.9352)
('点创力 服务于创业公司的人力资源解决方案提供商', 0.9352)
('轻松钻 综合企业服务公司', 0.9351)
('逸悦家公寓 长租公寓服务平台', 0.9351)
('民生英才 金融外包服务公司', 0.935)
('富悦公寓 长租公寓运营商', 0.9349)
('自由聘 连接互联网创业者和自由职业者', 0.9349)
('热聘网 专注制造业工厂蓝领的招聘平台', 0.9349)
('奋青邦 一家针对家庭的家电家具的互联网租赁平台', 0.9348)
('小微蜂 商业办公室租赁云服务平台', 0.9348)
('E客公寓 一家互联网长租公寓营运商', 0.9347)
('瑞联易 现代办公IT设备综合租赁服务商', 0.9347)
('乐活家 主推时尚白领公寓租赁服务的项目', 0.9347)
('芋头公寓 长租公寓与租住服务', 0.9347)
('巧寓青年公寓 专注于时尚青年公寓经营领域的平台', 0.9346)
('金扇子 一家传统酒店行业服务企业', 0.9346)
('天御建筑 专注办公室装修和升级', 0.9346)
('匠寓科技 长租公寓', 0.9346)
('杭州出彩 专注办公室保洁灵活托管', 0.9345)
('震旦办公 办公自动化销售服务提供商', 0.9345)
('企团游 一家从事旅游行业的定制平台', 0.9344)
('团服网 是一家提供企业着装解决方案的供应商', 0.9344)
('九好 一家后勤托管服务的公司', 0.9344)
('华寓HYCRE 办公楼宇租赁服务平台', 0.9343)
('拎包住 装修与租房服务商', 0.9341)
('加家联盟 一家家庭旅馆服务企业', 0.9341)
('租霸 租房分期服务提供商', 0.934)
('YOU+国际青年社区 一个面向青年白领的新品牌公寓', 0.9339)
('点晴信息 综合企业服务', 0.9339)
('小璞家 公寓整体运营服务商', 0.9339)
('昔舍公寓 高端分散式公寓综合运营商', 0.9339)
('大象公寓 长租公寓服务平台', 0.9338)
('乐窝 一家房屋出租服务的企业', 0.9338)
('趣团餐 为企业与团队提供用餐方案', 0.9337)
('EASIN亦旅义行 义工旅行项目平台', 0.9337)
('好同志 短工招聘平台', 0.9337)
('匠心阁 一个企业办公服务O2O平台', 0.9337)
('木兰花 家政服务及劳务派遣公司', 0.9337)
('如意聘 立足服务城市蓝领人群', 0.9336)
('满租 SaaS房屋管理系统供应商', 0.9335)
('相寓公寓 一家从事房屋管家业务的互联网公司', 0.9334)
('仁厚敬诚 职业化教育产品开发平台', 0.9334)
('悦顺餐饮 餐饮管理公司', 0.9334)
('艾特工社 一家从事IT人员服务的公司', 0.9333)
('佑鱼HR 为中小企业提供薪酬福利解决方案的公司', 0.9333)
('毕度海 企业人力资源培训机构', 0.9333)
('悦租房 房租分期服务提供商,支持按月交房租', 0.9332)
('拟好美家 从事家庭、办公工程等装修服务的公司', 0.9332)
('行李旅宿 民宿酒店运营商', 0.9332)
('锦上云宿 高端民宿管理品牌', 0.9331)
('原筑民 建筑劳务实名制管理服务', 0.9331)
('竞优 商业地产信息化整体解决方案提供商', 0.9331)
('盛世智源 企业诚信,优质服务', 0.9331)
('斜号 为中小企业快速匹配开发人员', 0.933)
('房大办公 一家弹性办公空间智能租赁平台', 0.933)
('Learnerbly 为中小企业员工规划职业发展', 0.933)
('屋术 分散式公寓软装服务商', 0.933)
('绿稻信息 从事服务外包工作', 0.933)
('园墅 一家从事房地产经纪的企业', 0.9329)
('毕业升 学生职业教育平台', 0.9328)
('趣实习 高效的实习生招聘平台', 0.9328)
('快乐沃客 一家智能HR管理系统', 0.9328)
('睿陟体育 团队野外拓展培训机构', 0.9327)
('客如归 客栈微营销服务商', 0.9327)
('易拓商旅网 企业差旅管理服务商', 0.9327)
('新墨科技 专注大中型机构费用、报销及消费解决方案', 0.9326)
('Open+ 工位、办公场地共享租赁O2O服务品牌', 0.9326)
('津旅商务 差旅业务自动化电子平台', 0.9326)
('壹点红软件 管理咨询及软件企业', 0.9326)
('鼎鸿汇业 专注服务领域', 0.9325)
('游心商旅 游心商旅-商务人士的差旅管家', 0.9324)
('天元圣丰 装修服务平台', 0.9324)
('珠海大湾时代 企业人力资源租赁服务商', 0.9323)
('速卖通 联营电商渠道建设整体解决方案提供商', 0.9323)
('御书房 办公用品供应商', 0.9323)
('中天冠捷 一家软件外包服务公司', 0.9323)
('行政联盟 企业行政人员服务商', 0.9322)
('果甸 一家白领上班族的鲜果服务商', 0.9322)]

【 项目简介 】  
公司竞品搜索,提供以下两种方案:  
METHOD 1: 通过公司的描述文本直接计算公司竞品(采用roberta预训练模型)  
METHOD 2: 通过公司简介为公司打标签,然后基于标签寻找公司竞品  

【 METHOD 1 执行步骤 】  
通过公司简介结合roberta预训练模型计算consine余弦相似度,以搜索出对应的竞品公司

STEP1:  
加载roberta预训练模型,将各公司的description简介文本转化为512长度的embedding向量表达  

STEP2:  
通过公司描述的embedding向量,采用余弦相似度cosine可计算出公司竞品,即公司描述文本embedding最相似的公司列表。  
(增加功能:可指定特定公司名,输出其对应公司竞品列表)  

import csv
# 忽略 warnings
import warnings
warnings.filterwarnings('ignore')

df = pd.read_csv('com_des_with_cat.csv',usecols=['com_name','com_id','com_cat','com_des','com_slogan'])

# 去除空值
df.dropna(subset=['com_des'],inplace=True)
df.reset_index(inplace=True,drop=True)

# 读取step1已保存的公司简介文本的的bert_embedding
f = open('embedding_dict.txt','r')
reader = csv.reader(f, delimiter="\t", quotechar=None)
lines,ebds = [],[]
for line in tqdm(reader):
    lines.append(line)
    ebds.append(list(map(eval,line[1].split(','))))
f.close()
print(len(lines))

# 定义cosine函数,以计算sentence embedding之间的相似度
cos=lambda v1,v2: np.dot(v1,v2)/(np.linalg.norm(v1)*(np.linalg.norm(v2)))

from collections import defaultdict
# 每个分类对应公司的index
cat_index = defaultdict()
for c in tqdm(set(df['cat_name'])):
    list_index = []
    for i in range(len(df)):
        if c in df.ix[i,'nlp_cat']:
            list_index.append(i)
    cat_index[c] = list_index
    # print(c)

# show specific com competitor
## to print!
specific_com = '圆宿外包公寓'
df[df['com_name']==specific_com]
for xxx in df[df['com_name']==specific_com].index:
    cat_indexes = []

    for c in list(df.ix[xxx,'nlp_cat'].split(' ')):
        cat_indexes.extend(list(cat_index[c]))
    
    cat = df.ix[xxx,'cat_name']

    # define xxx company
    print(df.ix[xxx,'com_name'],df.ix[xxx,'com_cat'],df.ix[xxx,'com_des'])


    out = defaultdict()
    for i in range(len(df)):
        if i != xxx:
            sim_prob = cos(ebds[xxx],ebds[i])
            if sim_prob >0.9:
                out[df.ix[i,'com_name']+ ' ' + df.ix[i,'com_slogan']] = round(sim_prob,4)

    res=sorted(out.items(), key=lambda obj: obj[1],reverse=True)
    if len(res)>150:
        res=res[:150]

    # res = [i[0] for i in res[:25]]
    print(res)

【 METHOD 2 执行步骤 】  
通过公司简介为公司打标签,然后基于标签寻找公司竞品 

STEP1:  
采集标签名,存成.txt文件,也就是后续需要加载的自定义vocabulary。

STEP2:  
调用add_tags(df,topk_percent=0.2,keyword_extract_method='tfidf')函数,对单条文本或文本csv提取关键词。可选tfidf或textrank模型。采用w2v模型计算两公司各标签词的相关度或者仅采用相同tag个数以表征两公司的业务重合度。代码已实现多进程并行处理。  

# 简单实现通过公司tags计算公司间的相似度,以搜索竞品公司
def tags_similarity_same(self,tagA, tagB):
    '''
    基于标签集的"相同"tag个数
    公司A,B之间基于标签列表tagA,tagB的竞品度
    注:A->B,与B->A非对称
    '''
    if len(tagA)==0 and len(tagB)==0:
        return 0, 0
    else:
        tt = set(tagA) & set(tagB)
        sim_prob1 = len(tt) / len(tagA)
        sim_prob2 = len(tt) / len(tagB)
        return sim_prob1, sim_prob2

def tags_similarity_w2v(self,tagA, tagB):
    '''
    基于标签集的"w2v的相似度"
    公司A,B之间基于标签列表tagA,tagB的竞品度
    注:A->B,与B->A非对称
    '''
    if len(tagA)==0 or len(tagB)==0:
        return 0, 0
    else:
        tag_dict1 = {}
        for a in tagA:
            sim_score1 = []
            for b in tagB:
                # print(a,b)
                sim_score1.append(model.wv.similarity(a, b))
                # print(a,b,model.wv.similarity(a,b))
            tag_dict1[a] = max(sim_score1)
        sim_prob1 = sum(list(tag_dict1.values())) / len(tag_dict1)

        tag_dict2 = {}
        for b in tagB:
            sim_score2 = []
            for a in tagA:
                sim_score2.append(model.wv.similarity(a, b))
                # print(a,b,model.wv.similarity(a,b))
            tag_dict2[b] = max(sim_score2)
        sim_prob2 = sum(list(tag_dict2.values())) / len(tag_dict2)

    # print(sim_prob1,sim_prob2)
    return sim_prob1, sim_prob2

STEP3:  
搜索公司竞品,Calculate_Company_Similarity()为计算竞品的类,需定义其功能项,调用.run_all()可实现功能  

目前正在研究智能投研领域,欢迎留言交流。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值