Spacy中有二字或三字语法功能吗? [英] Is there a bi gram or tri gram feature in Spacy?

查看:95
本文介绍了Spacy中有二字或三字语法功能吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

下面的代码将句子分解为单独的标记,输出如下所示

The below code breaks the sentence into individual tokens and the output is as below

 "cloud"  "computing"  "is" "benefiting"  " major"  "manufacturing"  "companies"


import en_core_web_sm
nlp = en_core_web_sm.load()

doc = nlp("Cloud computing is benefiting major manufacturing companies")
for token in doc:
    print(token.text)

我理想地想要的是一起阅读云计算",因为从技术上讲这是一个词.

What I would ideally want is, to read 'cloud computing' together as it is technically one word.

基本上,我正在寻找一个双字母组. Spacy中是否有任何允许Bi gram或Tri gram的功能?

Basically I am looking for a bi gram. Is there any feature in Spacy that allows Bi gram or Tri grams ?

推荐答案

Spacy允许检测名词块.因此,要将您的名词短语解析为单个实体,请执行以下操作:

Spacy allows detection of noun chunks. So to parse your noun phrases as single entities do this:

/1.检测名词块 https://spacy.io/usage/linguistic-features#noun-chunks

/2.合并名词块 /3.再次进行依赖关系解析,它将现在将云计算"解析为单个实体.

/2. Merge the noun chunks /3. Do dependency parsing again, it would parse "cloud computing" as single entity now.

>>> import spacy
>>> nlp = spacy.load('en')
>>> doc = nlp("Cloud computing is benefiting major manufacturing companies")
>>> list(doc.noun_chunks)
[Cloud computing, major manufacturing companies]
>>> for noun_phrase in list(doc.noun_chunks):
...     noun_phrase.merge(noun_phrase.root.tag_, noun_phrase.root.lemma_, noun_phrase.root.ent_type_)
... 
Cloud computing
major manufacturing companies
>>> [(token.text,token.pos_) for token in doc]
[('Cloud computing', 'NOUN'), ('is', 'VERB'), ('benefiting', 'VERB'), ('major manufacturing companies', 'NOUN')]
>>> 

这篇关于Spacy中有二字或三字语法功能吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆