首页 > 解决方案 > 如何使用依赖解析功能进行文本分类?

问题描述

我使用 spacy 对一个句子进行了依赖解析,并获得了句法依赖标签。

import spacy
nlp = spacy.load('en')
doc = nlp('Wall Street Journal just published an interesting piece on crypto currencies')

for token in doc:
    print("{0}/{1} <--{2}-- {3}/{4}".format(
        token.text, token.tag_, token.dep_, token.head.text, token.head.tag_))

输出

华尔街/NNP <--复合-- 街道/NNP

街道/NNP <--复合-- 期刊/NNP

期刊/NNP <--nsubj-- 已发布/VBD

只是/RB <--advmod-- 已发布/VBD

已发布/VBD <--ROOT-- 已发布/VBD

an/DT <--det-- 件/NN

有趣的/JJ <--amod-- 片/NN

片/NN <--dobj-- 已发布/VBD

on/IN <--prep-- 件/NN

加密/JJ <--复合-- 货币/NNS

货币/NNS <--pobj-- on/IN

我不是无法理解,如何使用这些信息为文本分类生成基于依赖的特征从中生成特征用于文本分类的可能方法是什么?

提前致谢............

标签: python-3.xspacytext-classification

解决方案


在 spaCy 中,目前没有直接的方法将依赖项功能包含到textcat组件中,除非您破解代码的内部结构。

通常,您必须考虑哪种功能有助于为您的 textcat 算法提供线索。您可以为数据中任何可能的“依赖路径”生成二进制特征,例如“RB --advmod--VBD”是一个特征,然后计算它出现的次数,但您很快就会拥有一个非常稀疏的数据集.

您可能还对其他功能感兴趣,例如“什么 POS 是根词”,或者该句子是否包含“两个名词由动词连接”之类的模式。但这真的取决于应用程序。


推荐阅读