joh*_*_28 6 python text nlp spacy
我试图从被 spacy 认为是命名实体的文档中删除单词,因此基本上从字符串示例中删除了“瑞典”和“诺基亚”。我找不到解决实体存储为跨度的问题的方法。因此,当将它们与 spacy 文档中的单个标记进行比较时,它会提示错误。
在后面的步骤中,这个过程应该是一个应用于存储在一个 Pandas 数据框中的几个文本文档的函数。
我很感激任何关于如何更好地发布问题的帮助和建议,因为这是我在这里的第一个问题。
nlp = spacy.load('en')
text_data = u'This is a text document that speaks about entities like Sweden and Nokia'
document = nlp(text_data)
text_no_namedentities = []
for word in document:
if word not in document.ents:
text_no_namedentities.append(word)
return " ".join(text_no_namedentities)
Run Code Online (Sandbox Code Playgroud)
它会产生以下错误:
类型错误:参数“其他”的类型不正确(预期 spacy.tokens.token.Token,得到 spacy.tokens.span.Span)
这将为您带来您所要求的结果。查看命名实体识别应该有助于您继续前进。
import spacy
nlp = spacy.load('en_core_web_sm')
text_data = 'This is a text document that speaks about entities like Sweden and Nokia'
document = nlp(text_data)
text_no_namedentities = []
ents = [e.text for e in document.ents]
for item in document:
if item.text in ents:
pass
else:
text_no_namedentities.append(item.text)
print(" ".join(text_no_namedentities))
Run Code Online (Sandbox Code Playgroud)
输出:
This is a text document that speaks about entities like and
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3836 次 |
| 最近记录: |