【7-1】实验——实体统一和歧义消除

2024-02-19 13:28

本文主要是介绍【7-1】实验——实体统一和歧义消除,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、使用jieba完成公司名的实体统一

#核心代码:建立main_extract,当输入公司名,返回会被统一的简称
def main_extract(company_name,d_4_delete,stop_word,d_city_province):  """ company_name  输入的公司名 stop_word 停用词 d_4_delete 后缀名 d_city_province 地区 """  company_name_list = pseg.cut(company_name)  # 前置获取到的地名  company_name_list = city_prov_ahead(company_name_list, d_city_province)  # 去除通用后缀  company_name_list = delete_suffix(company_name_list, d_4_delete)  # 其他自定义function  company_name_list = my_function(company_name_list)  company_name = ''.join(company_name_list)  return company_name  
#核心代码:初始化加载步骤,输出需要使用的词典
def my_initial():  #加载城市名、省份名  d_city_province = set()   with open("../data/dict/co_City_Dim.txt", encoding='utf-8') as cts:  for ct in cts.readlines():  d_city_province.add(ct[:-1])  with open("../data/dict/co_Province_Dim.txt", encoding='utf-8') as prvs:  for prv in prvs.readlines():  d_city_province.add(prv[:-1])  #加载公司后缀  d_4_delete = set()  with open(r"../data/dict/company_suffix.txt", encoding='utf-8') as sfs:  for sf in sfs.readlines():  d_4_delete.add(sf[:-1])  #加载停用词  stop_word = set()  with open(r"../data/dict/stopwords.txt", encoding='utf-8') as sts:  for st in sts.readlines():  stop_word.add(st[:-1])  return d_4_delete,stop_word,d_city_province  

二、使用tf-idf完成实体消歧

#建立关键词组,将需要进行实体消歧的实体存进keyword_list
import collections  s = ''  
keyword_list = []  
for i in entity_data['entity_name'].values.tolist():  s += i + '|'  
for k,v in collections.Counter(s.split('|')).items():  if v > 1:  keyword_list.append(k) 
#生成tfidf矩阵
from sklearn.feature_extraction.text import TfidfVectorizer  train_sentence = []  
for i in entity_data['desc'].values:  train_sentence.append(' '.join(jieba.cut(i)))  vectorizer = TfidfVectorizer()  
X = vectorizer.fit_transform(train_sentence) 
#获取包含关键词的句子中关键词所属的entity_id
import numpy as np  
from sklearn.metrics.pairwise import cosine_similarity  def get_entityid(sentence):  id_start = 1001   a_list = [' '.join(jieba.cut(sentence))]  res = cosine_similarity(vectorizer.transform(a_list),X)[0]  top_idx = np.argsort(res)[-1]  return id_start + top_idx 

这篇关于【7-1】实验——实体统一和歧义消除的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/724803

相关文章

深入理解数据库的 4NF:多值依赖与消除数据异常

在数据库设计中, "范式" 是一个常常被提到的重要概念。许多初学者在学习数据库设计时,经常听到第一范式(1NF)、第二范式(2NF)、第三范式(3NF)以及 BCNF(Boyce-Codd范式)。这些范式都旨在通过消除数据冗余和异常来优化数据库结构。然而,当我们谈到 4NF(第四范式)时,事情变得更加复杂。本文将带你深入了解 多值依赖 和 4NF,帮助你在数据库设计中消除更高级别的异常。 什么是

STM32(十一):ADC数模转换器实验

AD单通道: 1.RCC开启GPIO和ADC时钟。配置ADCCLK分频器。 2.配置GPIO,把GPIO配置成模拟输入的模式。 3.配置多路开关,把左面通道接入到右面规则组列表里。 4.配置ADC转换器, 包括AD转换器和AD数据寄存器。单次转换,连续转换;扫描、非扫描;有几个通道,触发源是什么,数据对齐是左对齐还是右对齐。 5.ADC_CMD 开启ADC。 void RCC_AD

消除安卓SDK更新时的“https://dl-ssl.google.com refused”异常的方法

消除安卓SDK更新时的“https://dl-ssl.google.com refused”异常的方法   消除安卓SDK更新时的“https://dl-ssl.google.com refused”异常的方法 [转载]原地址:http://blog.csdn.net/x605940745/article/details/17911115 消除SDK更新时的“

HNU-2023电路与电子学-实验3

写在前面: 一、实验目的 1.了解简易模型机的内部结构和工作原理。 2.分析模型机的功能,设计 8 重 3-1 多路复用器。 3.分析模型机的功能,设计 8 重 2-1 多路复用器。 4.分析模型机的工作原理,设计模型机控制信号产生逻辑。 二、实验内容 1.用 VERILOG 语言设计模型机的 8 重 3-1 多路复用器; 2.用 VERILOG 语言设计模型机的 8 重 2-1 多

华为OD机试真题-学生方阵-2024年OD统一考试(E卷)

题目描述 学校组织活动,将学生排成一个矩形方阵。 请在矩形方阵中找到最大的位置相连的男生数量。这个相连位置在一个直线上,方向可以是水平的,垂直的,成对角线的或者呈反对角线的。 注:学生个数不会超过10000 输入描述 输入的第一行为矩阵的行数和列数, 接下来的 n行为矩阵元素,元素间用""分隔。 输出描述 输出一个整数,表示矩阵中最长的位

UML- 统一建模语言(Unified Modeling Language)创建项目的序列图及类图

陈科肇 ============= 1.主要模型 在UML系统开发中有三个主要的模型: 功能模型:从用户的角度展示系统的功能,包括用例图。 对象模型:采用对象、属性、操作、关联等概念展示系统的结构和基础,包括类图、对象图、包图。 动态模型:展现系统的内部行为。 包括序列图、活动图、状态图。 因为要创建个人空间项目并不是一个很大的项目,我这里只须关注两种图的创建就可以了,而在开始创建UML图

BERN2(生物医学领域)命名实体识别与命名规范化工具

BERN2: an advanced neural biomedical named entity recognition and normalization tool 《Bioinformatics》2022 1 摘要 NER和NEN:在生物医学自然语言处理中,NER和NEN是关键任务,它们使得从生物医学文献中自动提取实体(如疾病和药物)成为可能。 BERN2:BERN2是一个工具,

61.以太网数据回环实验(4)以太网数据收发器发送模块

(1)状态转移图: (2)IP数据包格式: (3)UDP数据包格式: (4)以太网发送模块代码: module udp_tx(input wire gmii_txc ,input wire reset_n ,input wire tx_start_en , //以太网开始发送信

LTspice模拟CCM和DCM模式的BUCK电路实验及参数计算

关于BUCK电路的原理可以参考硬件工程师炼成之路写的《 手撕Buck!Buck公式推导过程》.实验内容是将12V~5V的Buck电路仿真,要求纹波电压小于15mv. CCM和DCM的区别: CCM:在一个开关周期内,电感电流从不会到0. DCM:在开关周期内,电感电流总会到0. CCM模式Buck电路仿真: 在用LTspice模拟CCM电路时,MOS管驱动信号频率为100Khz,负载为10R(可自

SpringDataJPA系列(7)Jackson注解在实体中应用

SpringDataJPA系列(7)Jackson注解在实体中应用 常用的Jackson注解 Springboot中默认集成的是Jackson,我们可以在jackson依赖包下看到Jackson有多个注解 一般常用的有下面这些: 一个实体的示例 测试方法如下: 按照上述图片中的序号做个简单的说明: 1处:指定序列化时候的顺序,先createDate然后是email