pandas SVO中动词的词形化

7dl7o3gd  于 2022-12-17  发布在  其他
关注(0)|答案(1)|浏览(137)
  • 我看过建议的类似问题,我认为这个问题有足够的具体性,值得问,但如果有人能指出一个已经回答过的问题来解决我的问题,我完全可以接受。*

我有一个文本语料库,我已经将其呈现为(文本特征)SVO,然后保存到数据框架中,结果发现如果将所讨论的动词进行词形化,以便“talk”、“talked”、“was talking”、“is talking”等呈现为相同的动词而不是4个或更多不同的动词,那会更好。
当前代码从数据框中获取文本并将其放置在列表中:

texts_women = talks_f.text.tolist()
texts_w = [text.lower() for text in texts_women]

然后它创建一个空间管道并通过它运行文本:

nlp = spacy.load('en_core_web_sm')
docs_w = list(nlp.pipe(texts_w))

在意识到动词可以被规范化之前,我已经编写了下面的代码:

def createSVOs(doc, svo_list):
    # Create the list of tuples for the document
    svotriples = list(textacy.extract.triples.subject_verb_object_triples(doc))
    # Convert to list of dictionaries
    for item in svotriples:
        svo_list.append(
            {
                'subject': item[0][-1], 
                'verb': item[1][-1], 
                'object': item[2]
            }
        )

最初我们将字典值转换为字符串--'subject':str(item[0][-1])--然后这个字典列表被转换成一个Pandas Dataframe ,在这个 Dataframe 中我们做了很多其他事情。
回溯代码,我首先尝试对df ['verb']列进行lemmatize,根据我的尝试,出现了各种错误,其中大部分是:

TypeError: 'spacy.tokens.token.Token' object is not subscriptable

我最终决定在把文档输入到文本SVO创建器之前,尝试对文档进行lemmatize,但随后我得到:

AttributeError: 'str' object has no attribute 'sents'

有没有可能同时得到SVO和引理?也就是说,一个SVO中的V,动词,是引理的?我错过了什么?

83qze16e

83qze16e1#

目前,这个问题的有效答案是在动词被编译到数据框架中之后对其进行lemmatize,Matias的答案可以在这里找到:如果以后遇到这个问题的人对从spare/textacy SVO三元组中得到一个词形化动词的问题有答案,我肯定想知道。

相关问题