nlp - 有没有一种简单的方法可以按spacy顺序获取 token 的位置?

标签 nlp spacy

我想要序列中每个标记的起始索引和结束索引。有没有一种简单的方法可以用 spacy 做到这一点?

例如:

text='Brown is a nice guy'
spacy_doc=nlp(text)

for sent in spacy_doc.sents:
    for token in sent:
        print(token.text, token.i)

    
Brown 0
is 1
a 2
nice 3
guy 4

这不是我需要的。我需要

Brown 0,4
is 6,7
a 9,9
nice 11,14
guy 16,18

最佳答案

import spacy

text = 'Brown is a nice guy'
nlp = spacy.load("en_core_web_sm")
doc = nlp(text)

for token in doc:
  print(token.text, token.idx, token.idx + len(token.text) - 1)

输出

Brown 0 4
is 6 7
a 9 9
nice 11 14
guy 16 18

关于nlp - 有没有一种简单的方法可以按spacy顺序获取 token 的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62766608/

相关文章:

python - 是否可以从 python 中的句子语料库重新训练 word2vec 模型(例如 GoogleNews-vectors-negative300.bin)?

python - 使用 unicode 撇号正确标记英语缩写

python - 使用 spacy 从数据框中提取实体

python - “string”的类型不正确(预期为 str,得到了 spacy.tokens.doc.Doc)

Java 与 C++ 的自然语言处理

python - 调用 tf.session.run 变慢

machine-learning - 朴素贝叶斯有偏见吗?

python-3.x - 加载 spacy.load ('en_core_web_md' 时出现问题)

python - 为Textacy中的单个单词计算TF-IDF

java - 训练斯坦福 postagger 模型