python-3.x - 如何使用依赖解析功能进行文本分类?
问题描述
我使用 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
我不是无法理解,如何使用这些信息为文本分类生成基于依赖的特征。从中生成特征用于文本分类的可能方法是什么?
提前致谢............
解决方案
在 spaCy 中,目前没有直接的方法将依赖项功能包含到textcat
组件中,除非您破解代码的内部结构。
通常,您必须考虑哪种功能有助于为您的 textcat 算法提供线索。您可以为数据中任何可能的“依赖路径”生成二进制特征,例如“RB --advmod--VBD”是一个特征,然后计算它出现的次数,但您很快就会拥有一个非常稀疏的数据集.
您可能还对其他功能感兴趣,例如“什么 POS 是根词”,或者该句子是否包含“两个名词由动词连接”之类的模式。但这真的取决于应用程序。
推荐阅读
- macos - SCNView 覆盖导致调整大小时撕裂
- c# - 如何在实体框架中基于 2 个外键制作复合键?
- python - 如何将哈希表中的线性探针转换为二次探针?
- vb.net - 如何顺序执行两个命令
- javascript - angular 5 项目中的数组未定义,但不是
- android - 如何在Android中上传图片后更新活动
- c++ - 在矩阵C ++编程中的特定位置插入元素
- intellij-idea - 如何在 WebStorm 中获取 Atom 键绑定?
- react-router - react-router-redux 5.x 与 HashHistory
- react-native - 在本机反应中禁用提交按钮