def rungraphorg(line,display_name='SemanticNet'): semantic_net = Graph() line = np.array(pd.Series(line).reset_index()) for node2node in line: semantic_net.add_edge(node2node[0], node2node[2], type=node2node[1],weight = node2node[3]) semantic_net.export(display_name, directed=True, weighted=0.3) webbrowser.open('file://' + os.path.realpath(display_name+'/index.html'))
def rungraph3(line,display_name='SemanticNet'): semantic_net = Graph() line = pd.Series(line).reset_index() line.columns = ['s','v','o','weight'] s_count = line['s'].value_counts() o_count = line['o'].value_counts() line = np.array(line) for node2node in line: if (node2node[0] in total and node2node[2] in total) or (s_count[node2node[0]] > 1 and o_count[node2node[2]] > 1): semantic_net.add_edge(node2node[0], node2node[2], type=node2node[1],weight = node2node[3]) semantic_net.export(display_name, directed=True, weighted=0.3) webbrowser.open('file://' + os.path.realpath(display_name+'/index.html'))
best_o, best_o_dist = '', 100 for (o, o_index) in o_tuple: o_dist = abs(best_v_index - o_index) if o_dist < best_o_dist: best_o = o best_o_dist = o_dist best_svo.append((s, best_v, best_o)) return best_svo # ***** Main Functions for Creating Semantic Network in English ***** # semantic_net = Graph() nlp = spacy.load("en_core_web_sm") SUBJ = ["nsubj", "nsubjpass"] VERB = ["ROOT"] OBJ = ["dobj", "pobj", "dobj"] modifier = [ 'amod', 'nounmod', 'nummod', 'quantmod', 'compound', 'relcl', 'neg', 'advmod' ] stopwords = open('/users/emilywang/shihao yang/stopword.txt').read().split( '\n') # 自定义去除词库 stopwords.append("\n") text = open('/users/emilywang/shihao yang/beef_english.txt').read()