Python pytext中的Dict[str,Any]或Dict[str,Field]
我正在阅读pytext(基于PyTorch构建的NLP建模框架)的文档,这个简单的方法是从配置创建组件的工厂方法,它的行类似于Python pytext中的Dict[str,Any]或Dict[str,Field],python,pytorch,pytext,Python,Pytorch,Pytext,我正在阅读pytext(基于PyTorch构建的NLP建模框架)的文档,这个简单的方法是从配置创建组件的工厂方法,它的行类似于Dict[str,Field]={ExtraField.TOKEN\u RANGE:RawField()} 及 一本字典怎么能有两个项目的键?这到底是什么 如果有任何指示,我将不胜感激 您看到的是python类型的注释。您可以阅读语法、设计和基本原理以及实际实现(可能的类型、如何构造自定义类型等)。注意这里的List和Dict是大写的-Dict[str,Any]用于构造类
Dict[str,Field]={ExtraField.TOKEN\u RANGE:RawField()}
及
一本字典怎么能有两个项目的键?这到底是什么
如果有任何指示,我将不胜感激 您看到的是python类型的注释。您可以阅读语法、设计和基本原理以及实际实现(可能的类型、如何构造自定义类型等)。注意这里的
List
和Dict
是大写的-Dict[str,Any]
用于构造类型“带字符串键和任何值的字典”,而不是访问该类型的实例
这些是可选的,默认情况下不用于任何用途(因此在阅读代码时可以忽略它们,因为python也可以)。但是,有一些工具可以解释这些类型注释并检查它们是否一致
我不知道它们在
torchtext
中是如何使用的-我自己没有使用它,也没有在文档中快速搜索到任何东西-但它们可能对使用某些特殊工具的开发人员很有帮助。但它们也可以对你有所帮助!从您的角度来看,最好将它们作为注释而不是代码处理。读取预处理
的签名,您知道数据
应该是一个列表
,包含dict
s,带有str
键和任何值类型。如果您的代码中有bug,并且发现data
本身就是一个str
,那么您肯定知道这是一个bug(可能不是唯一的一个)。回答得很好。谢谢
@classmethod
def from_config(cls, config: Config, model_input_config, target_config, **kwargs):
model_input_fields: Dict[str, Field] = create_fields(
model_input_config,
{
ModelInput.WORD_FEAT: TextFeatureField,
ModelInput.DICT_FEAT: DictFeatureField,
ModelInput.CHAR_FEAT: CharFeatureField,
},
)
target_fields: Dict[str, Field] = {WordLabelConfig._name: WordLabelField.from_config(target_config)}
extra_fields: Dict[str, Field] = {ExtraField.TOKEN_RANGE: RawField()}
kwargs.update(config.items())
return cls(
raw_columns=config.columns_to_read,
targets=target_fields,
features=model_input_fields,
extra_fields=extra_fields,
**kwargs,
)
def preprocess(self, data: List[Dict[str, Any]]):
tokens = []
for row in data:
tokens.extend(self.preprocess_row(row))
return [{"text": tokens}]