Применение векторизации Spacy слова к списку списков кортежей - PullRequest
0 голосов
/ 14 января 2019

Я пытаюсь применить функцию к каждому элементу кортежа в следующей структуре (список списков, содержащих кортежи). Функция является функцией Spacy, и каждый элемент каждого кортежа имеет тип 'spacy.tokens.span.Span'

import spacy
tuple_vectors = []

for list_item in tuples_list: #iterate through list items
    for tuple_ in list_item: #there are sometimes multiple tuples in each list item
        for tuple_element in tuple_: #iterate through tuple elements

            #tuple_element to Spacy doc
            tuple_element_vector = tuple_element.vector #get vector
            tuple_vectors = tuple_vectors.append(tuple_element_vector) #update tuple_vectors

Моя текущая реализация возвращает:

---> 11 tuple_vectors = tuple_vectors.append (tuple_element_vector) #update tuple_vectors

AttributeError: объект 'NoneType' не имеет атрибута 'append'

tuples_list = [[(Sky proposal, is, matter), (Sky proposal, is, Mays 
spokesman)], [(Women, 
lag, Intel report)], [(Amazon, expected, to unveil)], [(Goldman Sachs, raising, 
billion)], [(MHP, opens, books)], [(Disney, hurls, magic), (Disney, hurls, 
moolah)], [(Amazon, offering, loans), (Amazon, offering, to)], [(JPMorgan, 
seeks, billion), (JPMorgan, seeks, WaMu claims)], [(Comcast, accuses, 
Discovery)], [(Boeing, sees, sales)], [(BRIEFNetflix Inc, reports, earnings)], 
[(Broadcom deal, may stunt, Valley investment)], [(Apple, sell, iPads)], [(oil, 
pull, Street)], [(Fed, tells, Goldman), (Fed, tells, to improve)], [(ideas, 
undermine, Brexit), (ideas, undermine, Facebook)] ...

1 Ответ

0 голосов
/ 14 января 2019

Ваш код говорит

tuple_vectors = tuple_vectors.append(tuple_element_vector)

Метод append не возвращает список, он возвращает None, следовательно, ваша ошибка. По сути, вы сбрасываете tuple_vectors на None в этот момент.

Измените это на

tuple_vectors.append(tuple_element_vector)
...