Назначение индексов каждому узлу в связанном компоненте графа networkx - PullRequest
0 голосов
/ 03 мая 2019

У меня отображаются некоторые подключенные компоненты.Один из компонентов имеет пять узлов, в которых средний узел является общим узлом.Как я могу получить индекс каждого узла в этом компоненте, чтобы я мог объединить другие узлы вместе с соединением.

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)

Входное предложение: शर्मान एक विकेट घेतली.100 तीन विकेट घेतली

Вывод: घेतली तीन विकेट घेतली एक विकेट एक शर्मान शर्मान तीन विकेट मयंकान 100

Ожидаемый результат: शर्मान एक विकेट आनी मयंकान तीन विकेट घेतली

101 необходимо добавить для объединения узлов. Выход подключенных компонентов

1 Ответ

0 голосов
/ 07 мая 2019

Вы используете слова в качестве уникальных идентификаторов, поэтому у вас нет индексных данных.Каждый ваш узел закодирован словом.Более того, вы сначала строите график, который не используете должным образом (после всех ваших вопросов, я действительно могу сказать, что он вам не нужен) и теряете информацию о языке, а затем вы пытаетесь воссоздать ваши данные с некоторой потерянной информацией.В своем текущем вопросе вы уже потеряли информацию о положении слов, поэтому вы не можете делать то, что хотите (если вы не индексируете все свои узлы, как я написал в своем ответе на предыдущий вопрос).

Я рекомендую вамиспользуйте NLTK с Индийским корпусом (УЖЕ подготовлено, отфильтровано и помечено):

from nltk.corpus import indian
nltk.corpus.indian.words('hindi.pos')

Имеет хинди, деванагари и другие языки.Вы можете тренировать токенайзер Punkt (он может быть обучен автоматически) и выполнять всю свою работу.Более того, существуют модификации NLTK для индийских языков или специальный токенайзер хинди .Вам не нужно делать всю работу вручную.Вам не нужен networkx.Все уже написано другими программистами.

...