Spacy 动词突出显示?

Spacy Verb highlight?

就像 spacy displacy 在 html 中渲染实体高光一样。

import spacy
from spacy import displacy
nlp = spacy.load('en')
doc1 = nlp(u'This is a google sentence.')
doc2 = nlp(u'This is another sentence.')
html = displacy.render([doc1, doc2], style='ent', page=True)

如何突出显示给定文本中的所有动词。

from __future__ import unicode_literals
import spacy,en_core_web_sm
import textacy
nlp = en_core_web_sm.load()
sentence = 'The cat jumped quickly over the wall.'
doc = textacy.Doc(sentence, lang='en_core_web_sm')
for token in doc:
    if (token.pos_ == 'VERB'):
        print(token.text)

这里输出Jumped要用绿色高亮显示!怎么样?

类似的内容

http://www.expresso-app.org/

您可以通过在 render()serve() 上设置 manual=True 来使用置换界面来突出显示自定义实体。 这是一个简单的例子:

sentence = [{'text': 'The cat jumped quickly over the wall.',
    'ents': [{'start': 8, 'end':14, 'label': 'VERB'}],
    'title': None}]

displacy.render(sentence, style='ent', manual=True)

此外,要获取所需格式的数据,您可以进行依赖项解析并对其使用 PhraseMatcher 以获得 startend 值。

您可以使用带参数 style='ent'manual=True 的 displacy 渲染或服务方法来突出显示自定义实体。

from spacy import displacy
import re
text = 'The quick brown fox jumps over the lazy dog'
match_phrases = ['brown fox','lazy dog']
matches = []

for match_phrase in match_phrases:
    for item in re.finditer(match_phrase,text):
        match = {}
        match['start'], match['end'] = item.span() 
        match['label'] = '\u2713' # The tag/label that you would like to display
        matches.append(match)
        
sentence = [{
    'text': text,
    'ents': matches
}]

displacy.render(sentence, style='ent', manual=True)