Я хочу создать график для предложения, назначив слова узлам на основе тега, назначенного каждому слову.Если слово является собственным существительным, оно будет назначено предметному списку, если слово является существительным, оно будет назначено списку объектов, а если слово является глаголом, оно будет назначено списку глаголов.
Я использую Python 2.7 в Jupyter Notebook.
sentence_list=['Arun Mehta drinks milk']
tag_list={'Arun':'NP','Mehta':'NP','drinks':'VF','milk':'NN'}
tag_list_keys = tag_list.keys()
subject_list=[]
object_list=[]
verb_list=[]
def classify(item):
if item in tag_list_keys:
if tag_list[item] == 'NP': subject_list.append(item)
if tag_list[item] == 'NN': object_list.append(item)
if tag_list[item] == 'VF': verb_list.append(item)
def extract(item):
item_split = item.split(' ')
map(classify, item_split)
map(extract, sentence_list)
print('SUBJECT:',subject_list)
print('OBJECT',object_list)
print('VERB',verb_list)
%matplotlib notebook
import networkx as nx
import matplotlib.pyplot as plt
G = nx.Graph()
for i in range(3):
G.add_node(object_list[i])
G.add_node(verb_list[i])
G.add_node(subject_list[i])
G.add_edge(verb_list[i],object_list[i])
G.add_edge(subject_list[i],verb_list[i])
nx.draw(G, with_labels= True)
plt.show()
Ожидаемый результат должен иметь три узла, состоящих из 'Arun Mehta' в качестве одного узла, 'пить' во втором узле и 'молоко' втретий узел.Может кто-нибудь предложить, что нужно сделать, чтобы получить два или более слов в одном узле?