Использование ntlk суммировать атрибуты, когда происходит определенная фраза - PullRequest
0 голосов
/ 05 октября 2019

Я новичок в Python, поэтому, пожалуйста, помогите) У меня есть датафрейм, который выглядит следующим образом: dataframe

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

Пробовал перебирать фрейм данных с пользовательским словарем и столкнулся с множеством проблем.

import nltk

nltk.download('averaged_perceptron_tagger')
nltk.download('punkt')
counts = collections.Counter()
for sent in df["Search term"]:
    words = nltk.word_tokenize(sent)
    counts.update(nltk.bigrams(words))

counts.most_common(10)

моя попытка выглядела так, но я не могу перебрать биграммы:

import nltk
nltk.download('punkt')
word_dictionary = dict()

for row in df.itertuples():
  words = nltk.word_tokenize(str(row[0]))
  print(nltk.bigrams(words))
  for bigram in nltk.bigrams(words):
    print(bigram)
    if bigram in word_dictionary:

        word_dictionary[bigram][0], word_dictionary[bigram][1] = (word_dictionary[bigram][0] + row[14]) , (word_dictionary[bigram][1] + row[15])  
    else:
         word_dictionary[bigram]= (row[14]) , (row[15])

print(word_dictionary)

конечный результат должен быть похож на отсортированный словарь (по первому значению,сказать пункты), где меня не волнует форматирование:

перейти к (23, 30) перейти к (10, 15)

и т. д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...