###Third code of Transn Internship

def detect_contains_term(input_src, input_target):

detect_result = {}

# print('原文不存在')

data_contains_src = dot_term_info[dot_term_info['src_text'].str.contains(input_src)] # 查找src_text中包含input_src字符串的行

# print(len(data_contains_src))

if len(data_contains_src) > 0: # contains包含字符串查找

# 包含

detect_result['term_input_result'] = '存在相似术语'

data_contains_src = data_contains_src.drop_duplicates() # 去重

# data_contains_src_tran = pd.unique(data_contains_src['target_text'])

data_contains_src_tran = data_contains_src['target_text'].to_numpy() # 转为numpy格式,便于后续求相似度

# 求max_distance

distance = []

for contains_target_text in data_contains_src_tran:

distance.append(cal_distance(contains_target_text, input_target))

max_distance = max(distance)

max_distance_target = data_contains_src_tran[distance.index(max_distance)] # max_distance对应的译文

max_distance_target_src = data_contains_src[data_contains_src['target_text'] == max_distance_target]['src_text'].tolist() # max_distance对应的译文对应的原文,可能有重复

max_distance_target_term_id = data_contains_src[data_contains_src['target_text'] == max_distance_target]['term_id'].tolist() # max_distance对应的译文对应的term_id,可能有重复

# print(max_distance_target_src, max_distance_target)

detect_result['term_id'] = [i for i in max_distance_target_term_id]

detect_result['term_tran_text'] = max_distance_target

# input_src与取出的src_text的distance取average

src_distance = 0

for j in max_distance_target_src:

src_distance += cal_distance(input_src, j)

src_distance = src_distance/len(max_distance_target_src)

# 计算正确率

acc_pro = (max_distance+src_distance)/2

detect_result['term_ratio'] = acc_pro

else:

# 不包含

detect_result['term_input_result'] = '不存在相似的术语'

detect_result['term_id'] = ''

detect_result['term_tran_text'] = ''

detect_result['term_ratio'] = ''

# acc_pro = 'Non_existent,Non_contains,to be continue...'

return detect_result

###Third code of Transn Internship

def detect_match_term(input_target, data_match_src):

detect_result = {}

# print('原文存在')

data_match_src_tran = pd.unique(data_match_src['target_text']) # 取出原文对应的译文的行,去重

# [2.1.1] 计算input_target和target_text之间的max_distance

distance = []

for target_text in data_match_src_tran:

distance.append(cal_distance(target_text, input_target))

max_distance = max(distance) # when max_distance==1,input_target exist,else not exist

if max_distance == 1:

# print('原文存在')

detect_result['term_input_result'] = '存在一样术语'

else:

# print('译文不存在')

detect_result['term_input_result'] = '存在译文不一样术语'

max_distance_target = data_match_src_tran[distance.index(max_distance)] # 取出max_distance对应的译文

max_distance_target_term_id = dot_term_info.loc[dot_term_info['target_text'] == max_distance_target]['term_id'].tolist() #取出max_distance对应的译文的term_id

detect_result['term_id'] = [i for i in max_distance_target_term_id]

detect_result['term_tran_text'] = max_distance_target

# print('术语库中存在的原文及与输入译文最相近对应的译文为:', input_src, max_distance_target)

# max_distance_target

# [2.1.2]

conditional_pro = len(data_match_src.loc[data_match_src['target_text'] == max_distance_target]) / len( data_match_src) # 计算条件概率

# [2.1.3]

acc_pro = (max_distance + conditional_pro) / 2 # 计算正确率

detect_result['term_ratio'] = acc_pro

return detect_result

###Third code of Transn Internship

import pandas as pd
import jieba
from utils.distance_util import cal_distance

# term_info

dot_term_info = pd.read_csv(r'C:\Users\Administrator\Desktop\艾佳\Internship\Detect_term\dot_term_info.csv',

names=['term_id','src_text', 'target_text'], na_filter=False)

# dot_term_info.info()

def detect_term(input_src, input_target):

# [2.1]查找原文是否存在

data_match_src = dot_term_info.loc[lambda x: x['src_text'] == input_src] # 精确查找
# print(len(data_match_src))

if len(data_match_src) >= 1:

# print('原文存在')

detect_result = detect_match_term(input_target, data_match_src)

else:

# print('原文不存在,将查找包含原文字符串的术语')

detect_result = detect_contains_term(input_src, input_target)

return detect_result


发布     👍 0 举报 写留言 🖊   
✋热门推荐
  • 现在东北楼市那么冷,不管是沈阳,还是长春,又或者是哈尔滨,房价都在下跌,而且二手房也很不好卖。大连的平均房价都在15000多元,这么高的房价,如果说不把以前的房
  • 想家了想回我自己的家想回到那个不算房间的小房间想抱抱我的狗狗想藏进回忆小盒子里待一下午想在纸上写写画画想在街里买买逛逛想隐于雨中看神仙打架也想躲在树下玩过家家想
  • 我就想问问,杨树是哪个瘪犊子[发怒]为哪个神经病种的[抓狂],刮的满脸树毛这个刺挠,害的我一个劲挠[捂脸]哈哈我又回来啦[耶][耶][耶] 那一年,嬛嬛喜欢合欢
  • 结束的这一天好像从漫长的期待变成了突然发生 很快 很快 从十月底开始的经历让人觉得世界都翻转了 其实回想起来 也没有那么夸张 只是崩溃了无数次 不管是个人生活还
  • #宋亚轩[超话]##宋亚轩##王牌主唱宋亚轩# 有一次和我妈聊起追星的事 妈妈问我 追宋亚轩是追星的那种喜欢还是说你想和他在一起 我沉默了 妈妈说 如果你是后者
  • 今年4月5日,阿森纳客场0-3惨败,如今时隔123天之后终于完成复仇,也送给水晶宫新赛季首败。最终阿森纳把2-0保持到比赛结束,取得新赛季英超开门红。
  • 而去年 完工的峨眉山叠川⻨芽威士忌酒厂,更因为「天圆地方」的概念组合、建筑与自然的和谐共鸣入围 多个国际奖项。#威士忌##叠川麦芽威士忌##麦卡伦##威士忌#大
  • 老板说都是自己手工做的,随意品尝,喜欢就买,一一吃得很欢乐,都是他的爱。还有招牌——手扒肉,反正来这里的人都会点的,我也来试试呗,另外又点了烤羊腿~一一还给自己
  • 朋友自已的女装店将于8.8日试营业 特注:(老板是个大美女)地点(在二条街东税务局对面) 维多利亚VICTORIA精品女装店 感兴趣的盆友们扫二维码加群哦✨或
  • 想起了江西景德镇的朋友,告诉我别买古董陶瓷的故事。 说就景德镇这一个地方,一个景陶大学外加各种大专中专,还有无数官方非官方的研究院。不晓得多少代人,从文化历史物
  • #突然觉得读书真有用的瞬间#【铁汉普京多柔情?给默克尔披毛毯,相守30年的妻子改嫁,他送祝福】 年近七十的普京,现如今走起路来依旧虎虎生风。 外表一副硬汉模
  • (来源:司法部)【#加拿大鹅因虚假宣传被罚# ,媒体:在中国经营就要遵守中国法律】近日,据上海市市场监督管理局,加拿大鹅关联公司希计(上海)商贸有限公司因在广告
  •   晋中市委社情民意办公室对该网民回复中表示,经了解,榆次区田森新晋福邸项目属寇村整村改造项目,存在不符合商品房销售条件销售商品房的违法行为,工程还未动工。爱企
  • 就来找小编,每天都会带来新鲜好看的娱乐八卦哦~虽然宋小宝看起来不太好看,但他走到舞台上,带给我们太多的欢乐。就来找小编,每天都会带来新鲜好看的娱乐八卦哦~虽然宋
  • #2PM[超话]# [心]#张祐荣[超话]# 220802【图片】张祐荣和高中老师的对话老师:你生病的话会有很多人心疼的,所以要好好管理身体,早日康复!有你这么
  • 会问到你窒息不回答或者搪塞就会一直问(妈妈应该也是全职带娃)我承认我不太会应付小孩子,反正总觉得要让着她,哄着她玩开心就好了…… 直到有一天她跑过来“捞”走了我
  • 《大佛顶首楞严经》卷六之四种清净明诲 原文 阿难整衣服。于大众中。合掌顶礼。心迹圆明。悲欣交集。欲益未来诸众生故。稽首白佛。大悲世尊。我今已悟成佛法门。是中修
  • 我也来不及截图 我也不是说非要你喜欢稚楚啊 你说推文我就推一下我犯什么错了 我真的是坠了腾讯大幅减持华谊,眼看他起高楼,眼看他宴宾客,眼看他楼塌了;在中国,即
  • 我总在为过去的选择而后悔 我总说这次一定行过程依旧努力不够我总说过去了但真的过去了吗我总在不停的反思自己为什么我总以开朗乐观带给所有人那是我吗我总想得很多但做的
  • 一个故事结束便有另外一个故事开始嘉陵江对面的那座写字楼,又开始了新的故事,夜晚的南滨路灯火通明,依旧照耀着长江大门 路灯下 又有一群奔跑的少年, 同样地点,但走