【python 走進NLP】標籤別名語義相似度匹配演算法
阿新 • • 發佈:2019-01-26
標籤別名語義相似度匹配演算法:
# -*- encoding=utf-8 -*-
import pandas as pd
import numpy as np
import time
time1=time.time()
#定義一個標籤有別名的合併函式
def combine_tag_name_alis(data1,data2):
"""
:param data1: 別名集
:param data2:標籤集
:return: 合併後的結果集
"""
# 篩選資料,找到有別名的標籤
data3 = data1[data1['alias' ].isin(data2['key'])]
data4=data2[~data2['key'].isin(data3['alias'])]
#語義相似標籤去重
name1= list(set(data3['name']))
name2=list(set(data4['key']))
name3=name1+name2
name4=list(set(name3))
return name4
if __name__ == '__main__':
# 讀取別名資料集
data1 = pd.read_excel('C:/Users/xiaohu/Desktop/文字挖掘/標籤語義相近發現合併演算法/data/kktribe_tag_1.xlsx' )
# 讀取標籤資料集
data2=pd.DataFrame({'key':['詹皇','小皇帝','內馬爾','世界盃','姆巴佩','詹姆斯','姆巴佩','里奧·梅西','梅西','Lionel Andrés Messi','小老虎','凱文-杜蘭特','凱文·杜蘭特']})
# 合併之後的標籤集
name=combine_tag_name_alis(data1,data2)
print(name)
time2 = time.time()
print('總共耗時:' + str(time2 - time1) + 's' )
['梅西', '沃爾科特', '姆巴佩', '詹姆斯', '內馬爾', '杜蘭特', '世界盃']
總共耗時:0.07813286781311035s
Process finished with exit code 0