0

我正在尝试将该textacy.extract.subject_verb_object_triples函数应用于 pandas df 列。该函数返回空的生成器对象,而不是像这样应用时的 subject_verb_object_triples:

sp500news3['title'].apply(lambda x: textacy.extract.subject_verb_object_triples)

或者

sp500news3['title'].apply(textacy.extract.subject_verb_object_triples)

我也试过:

import spacy
import textacy
def extract_SVO1(text):
    new_doc = textacy.extract.subject_verb_object_triples(text)
    new_list = list(new_doc)
    text = new_list

sp500news3['title'] = sp500news3['title'].apply(extract_SVO1)

如何在我的数据框列上实现该函数以返回正确的函数输出?

4

1 回答 1

0

原因是textacy.extract.subject_verb_object_triples返回一个生成器,它必须被转换成某种可迭代的。您的两种方法都是可行的,但需要进行一些修改。

第一种方式:消费生成器

sp500news3['title'].apply(lambda x: textacy.extract.subject_verb_object_triples).apply(pd.Series)

第二种方式:写一个单独的函数来申请

def extract_SVO1(text):
    new_doc = textacy.extract.subject_verb_object_triples(text)
    new_list = list(new_doc)
    return new_list
于 2019-02-05T12:41:03.747 回答