我显示了一些连接的组件。组件之一具有五个节点,其中中间节点是公共节点。如何获取该组件中每个节点的索引,以便可以将其他节点与连接符合并。
for component in nx.connected_components(graph):
num_nodes=len(component)
print num_nodes
g=(
filter(
lambda x: x[0] in component and x[1] in component,
graph.edges
)
)
if num_nodes == 5:
pl = []
pl = ''.join(item for tuple_ in g for item in tuple_)
print 'Merged nodes'
print pl
sentences.append(pl)
输入句子是:शर्मानएकविकेटघे가ली。 >ा
输出为:घेलीीेटेटलीलीेटेटमममम
预期输出:
आनी来组合节点。 Output of connected components
答案 0 :(得分:0)
您将单词用作唯一标识符,因此没有索引数据。您的每个节点均由单词编码。此外,您首先要构建未正确使用的图形(在回答所有问题后,我真的可以说您不需要),然后丢失语言信息,然后尝试使用丢失的信息重新创建数据。在您当前的问题中,您已经失去了单词位置信息,因此您无法做自己想要做的事情(除非您正在索引所有节点,如我在上一个问题的答案中所写)。
我建议您将NLTK与Indian corpus一起使用(它已经准备好,已经过过滤和标记):
from nltk.corpus import indian
nltk.corpus.indian.words('hindi.pos')
它具有北印度语,梵文和其他语言。您可以train Punkt tokenizer(它是可自动训练的)并完成所有工作。此外,存在NLTK修改for Indian languages或特殊的Hindi tokenizer。您无需手动完成整个工作。您不需要networkx。一切都已经由另一个程序员编写。