python - Spacy 添加自定义组件,重写 doc.text
问题描述
我正在尝试在 spacy 的管道上创建一个自定义组件。我想将我的文本转换为更低。
我的代码:
nlp = spacy.load('en_core_web_sm')
def lower_component(doc):
doc.text = doc.text.lower
return doc
nlp.add_pipe(lower_component, first=True)
print('Pipeline:', nlp.pipe_names)
doc = nlp("Hello world!")
doc
我有一个
AttributeError:“spacy.tokens.doc.Doc”对象的属性“文本”不可写
你有解决我的问题的方法吗?
解决方案
我发现 !只是通过一个类:
class Lower(object):
name = "Lower"
nlp: Language
def __init__(self, nlp: Language):
self.nlp = nlp
def __call__(self, doc: Doc) -> Doc:
text = doc.text
return self.nlp.make_doc(text.lower())
和以下 :
nlp.add_pipe(Lower(nlp), first=True)
推荐阅读
- javascript - XmlHttpRequest 不工作,说模块未定义
- c# - 如何使用随机数据 c# 自动填充类?
- swift - ARKit:不在视图中时停止 AVPlayer 音频
- micronaut - Micronaut 中的基类注入何时发生
- python - 给定根节点,是否有一种遍历路径的新模型方法?
- javascript - 如何在 Angular 循环中运行下一个服务调用之前等待对我的控制器的每个服务调用?
- excel-formula - Sumif 行并向下拖动以增加列(索引 - 匹配)
- python - 我可以在条件后使用熊猫提取行吗?
- javascript - 如何每 6 小时执行一次函数?
- python - 使用 asyncpg 限制与 Postgres 数据库建立的连接数?