我主要根据《中文信息学报》2016年9⽉第30卷第5期中的《基于路径与深度的同义词林词语相似度计算》提及到的计算公式进行了代码实现,并根据其最终的结果对原设计进行了微调。
import os
import csv
import re
class Node(object):
def __init__(self,id,children,parent,words):
self.id = id.copy()
self.children = []
self.parent = None
self.words = words.copy()
self.level = len(id) if len(id) < 5 else 5
def append_node(self,child):
self.children.append(child)
child.parent = self
return
def normalize(cilin):
cilin_to_list = cilin.split()
id_list = re.findall(r"\D|\d\d",cilin_to_list[0].strip())
word_list = cilin_to_list.copy()
del word_list[0]
new_node = Node(id_list,None,None,word_list)
return new_node
def findparent(Root,sub_node,depth):
if len(Root.children) == 0:
retu